Feeds

back to article Developer codes VNC-over-GIF tool

However you choose to pronounce GIF, developer Andrey Sidorov has found a great new use for the recently-resurgent-thanks-to-Tumblr file format: displaying a remote device. Sidorov used the weekend just passed to unleash a tool called VNC-over-GIF that does what is says on the can. For the uninitiated, Virtual Network Control ( …

COMMENTS

This topic is closed for new posts.

Can't help thinking

There musy be some nasty potential - or at least inspiration -for malware here...

2
0

Re: Can't help thinking

Half the time spent hacking is all about "just watching" (when you are not a script kiddie)

2
0
Silver badge
Coat

Sidorov doesn't feel it solves any particular problem...

Bit of a GIF lemon then?

13
0
Happy

Re: Sidorov doesn't feel it solves any particular problem...

Good work!

(pretend there's a GIF animation of slow hand-clapping here)

1
0
Silver badge

@Robin

It's a jift I have

1
0
Silver badge

VNC over GIF?

So probably about as efficient as VNC on its own then.

Bloody awful protocol, and usually used on systems that are running an Xorg/X11 server. Wasn't that originally designed to be a multi-user GUI anyway?

4
5
Silver badge

Re: VNC over GIF?

Oh come on downvoter, let's compare VNC with RDP shall we?

I'm the last person to cheer on Microsoft (okay, maybe Eadon is), but VNC is a shit protocol.

Not detracting from the amazingly hackerish thing this guy did, but VNC is still shit.

8
0
h3
Bronze badge

Re: VNC over GIF?

VNC is ok in certain situations when it is optimised properly.

(The Sun Visualisation thing using the XVR1000 / Turbo VNC / VirtualGL worked pretty well).

It is ok on a fast lan as well.

Xvnc works ok with xrdp.

VNC works much faster than remote X

3
1
Anonymous Coward

Re: VNC over GIF?

As I understand it, RDP is more like X than VNC - the drawing commands are sent across the wire, not the results of the drawing. So comparing RDP to VNC is like comparing apples to DRAMs.

Again, I cannot speak for RDP, but I know that X does better over lower bandwidth links with low latency, but VNC works where X falls down, which is links with insufficient bandwidth to carry all the drawing commands. X will just die on such a link, RDP will just update slowly.

3
0

Re: VNC over GIF?

"Bloody awful protocol"

That it may be - but it's also well documented, open and simple.

1
0

Re: VNC over GIF?

I don't know what Apple have done to VNC with their OSX builtin Screen Sharing feature, but it's damn near realtime for fullscreen updates.

It's still a basically rubbish bitmap-based brute-force method though, unlike the relative elegance of RDP or X.

0
0
Silver badge
WTF?

"I had to add code to allow the GIF library to stream data"

If he's had to change the decoding library then it's not really GIF.

3
1

Re: "I had to add code to allow the GIF library to stream data"

GIF supports custom data blocks so you can easily embed extra information into the file without breaking other readers.

GIF allows you to build up changes ontop of a previous image so is naturally quite suited to this sort of application. Though it's still limited to 256 colours

0
0
Anonymous Coward

Re: "I had to add code to allow the GIF library to stream data"

Probably he had to change the ENCODER library, not the decoder. The encoder had to be changed to accept a potentially endless stream of delta frames.

The decoder already has that, as there is nothing in the GIF header that tells the decoder how big the image will be - you decode until you hit EOF>.

3
0
Thumb Up

... watching a remote device may come in handy ...

... well, he is certainly correct with that remark.

1
0
Silver badge
Holmes

Umm..

What's the advantage over the ancient already MJPEG (NOT MPEG) format?

I suppose 256 colours + palette is acceptable instead of full colour and no palette.

Of course MJPEG was designed for files not streaming, but unlike GIF was envisaged to be used for video.

This is unlikely to work with any GIF viewer as they expect a file and can't read a stream. Also there is a hardly used animated version of PNG, The APNG format supports 24 bit and transparency as well as 256 colour palettes. Surely a better starting point if you don't like MJPEG (i.e. licence conditions or content non-photographic)?

An MPEG-TS can in theory be used for streaming M-APNG or M-GIF variant, MJPEG etc and not just MPEG1, MPEG2, MPEG4 etc as it's just a multiplex envelope and has advantage it can do sound, non-image data (IP Broadcast or non-IP, even Unicast using DOCSIS) etc all in same stream.

At least he admits he can't see the point of it!

0
0
Silver badge

Re: Umm..

As far as I'm aware, MJPEG is basically a whole shatload of jpeg pictures arranged in a container. So, for every new frame, you have to send the whole screen. IIRC animated GIFs are, in most cases, sent as a bunch of delta values, so only what has changed since the last frame is sent over the wire.

If you were streaming video, then MJPEG would probably be better (though nowhere near as good as one of the MPEG standards). For something where the only thing that might have changed is the mouse pointer though, animated GIF is probably better.

Though yes, the whole thing seems to have been "because it's cool" rather than "because it makes sense."

1
0
jai
Silver badge

Re: Umm..

doing things because they're cool rather than because they make sense used to be what mucking about on computers was all about, wasn't it?

11
0
Anonymous Coward

MJPEG: JPEG sucks for text

JPEG assumes an image has few high frequency components. Images like this text look very ugly on JPEG as you lose the high frequency components that make the letter sharp.

GIF, PNG, and such make no such assumptions - so yes, they don't compress as much, but you don't turn letters into artifact soup.

4
0

Gif colour limits

It's not well known, but gifs *can* contain more than 256 colours. The restriction is that the image be divided into contiguous rectangles (pixel dimensions of your choice) and *these* should have the same (max 256 colour) palette. So the top half of the gif could be greyscale and the bottom half could be 'vivid' or whatever those funny old names for cluts were. You can have as many of these blocks as you want. Presumably you could have 1x1 pixel blocks, each with their own palette but then it would scarcely be efficient compression. Still it's a nice hack not a million miles from Amiga's ingenious HAM. Unfortunately there are very few tools which support the export of such exotic objects. Browser support is pretty good however. There's a page on the web which shows off the technique. Can't be arsed to google for it though.

3
0
Anonymous Coward

I've often wondered about VNC over MPEG

Give the plethora of devices that can render an MPEG2 or MPEG4 stream, I've wondered about making a VNC to MPEG[2|4] over uPnP stream tool - that would allow a device such as a Box Office Patriot to display (though not interact with) a client running a reasonable OS, without modifying the software on the device.

And if the VNC server were able to "see" the drawing instruction stream (e.g. xvnc), then the generation of the MPEG stream could be optimized using that information (e.g. moving a window could just generate the needed MPEG4 motion vectors rather than generating a pixel block update).

1
0

interaction...

in theory I wonder if interaction would be possible from javascript tracking mouse clicks etc, grabbing the X and Y and pushing it back.

though why you'd want to is beyond me!

1
0
Silver badge

Ok

I propose that the GIF version be pronounced vee-en-ke, as rightly it should.

0
0
Gold badge
Thumb Up

So roughly it sends a *picture* of a (notional) vaule of a gauge, rather than the actual number

Which suggests that for control you'd send back a "picture" of a control dial or a picture of a switch setting.

Handy if you don't have any normal control or monitoring protocol, or perhaps you don't want whose being monitored to know they are being monitored.

Thumbs up for general cleverness.

But I don't know what it's for either.

0
0
Holmes

Sidorov , Y U NO HTML5?

Gif? What's wrong with the canvas tag?

0
1
Bronze badge
Boffin

Re: Sidorov , Y U NO HTML5?

*COUGH*NoVNC*COUGH*

0
0
Bronze badge

Does this mean

that an ordinary web browser - for instance - can be used to view the output from VNC? That could be useful, in an office where you may not be allowed to install the VNC client.

0
0
Anonymous Coward

Re: Does this mean

Install the VNC client on a USB stick and... Oh, hang on, it's against policy to plug those in too.

0
0
Anonymous Coward

Chrome remote desktop

Chrome remote desktop does something similar, only with WebP instead of GIF. And more HTML5, because that's good stuff, right?

0
0
This topic is closed for new posts.