✳ OMNIVIEWER.ORG

Drop a GIF. Any size.

safe · secure · no server · works offline · fast

…or paste a file you copied in Finder, or just start typing at the cursor.

Or try it now

↓ scroll for about & FAQ

Preview

Drop a CSV file, or use the file picker.

A GIF editor that never uploads your GIF

The usual way to reverse a GIF, make it black and white or turn it into an MP4 is to upload it to a site that does the work on its server and hands you back a file, often with a watermark. OmniViewer does all of it on your computer. The GIF is decoded by a small GIF decoder written for this page: it walks the file’s blocks, unpacks each frame’s LZW data and applies the disposal rules the way a browser does. The TRANSFORM tab stacks edits on top — colour, shape and time — and plays the result while you change it. Hold original to compare.

GIF to MP4, WebP and GIFV

A GIF stores 256 colours per frame with LZW compression from 1987. The same animation as an MP4 is usually five to twenty times smaller, in full colour. GIFV is what image hosts and chat apps serve when you post a GIF: a silent MP4 that loops. The card gives you the <video autoplay loop muted playsinline> embed to paste. Animated WebP and APNG keep transparency, and a sprite sheet lays every frame out in one PNG for CSS or a game engine. The video encoders are ffmpeg, compiled to WebAssembly and downloaded once the first time you use one; the GIF and APNG writers are our own.

Compare two GIFs by what they show

Two GIFs that look identical can share almost no bytes, because one changed pixel shifts every LZW code after it. The DIFF tab decodes both files and compares the pictures, frame by frame. Side B can be another GIF or the PNG, APNG or WebP you exported, which is how you check that a conversion kept every frame. A strip over the timeline shows which frames differ and by how much, and the red overlay marks the pixels. Read inside a GIF file: blocks, LZW and disposal.

Why a huge GIF still opens

A GIF has no index. Nothing says where frame 10,000 starts, and an image’s data has no length field, only a chain of sub-blocks of at most 255 bytes. The only way through is to hop every one of them. OmniViewer does that in one pass, reading one length byte in every 256, and keeps the result as a list of numbers rather than pixels. A multi-gigabyte GIF indexes at the speed of your disk, and frames are decoded one at a time when you look at them. Detection is by the GIF8 signature, never the extension. Powered by the same engine as fastjsonviewer.com; OmniViewer opens every file format.

FAQ

Is my GIF uploaded anywhere?

No. OmniViewer is a static page with no server-side processing. The GIF is decoded on your computer by the page’s own decoder; GIF and APNG are written by the page itself, and MP4, GIFV, WebM and WebP by ffmpeg compiled to WebAssembly, running in your browser. Nothing leaves your computer and nothing is watermarked.

How do I convert a GIF to MP4?

Drop the GIF, open CONVERT and click Convert to MP4. Each GIF frame keeps its own duration, the picture is full colour instead of 256, and the file is usually five to twenty times smaller. Transparent areas are filled with a colour you choose, because MP4 has no transparency. The first video conversion downloads the encoder (about 31 MB) once; after that it is cached.

What is a GIFV?

GIFV is not a file format. It is the name imgur gave to a short, silent MP4 that loops, served in place of a GIF because it is far smaller. The GIFV card writes exactly that: an H.264 MP4 at a steady 30 frames per second with the index at the front so it starts streaming at once, and it gives you the video tag that makes it autoplay and loop like a GIF.

How do I reverse a GIF?

Open TRANSFORM and tick Reverse. The preview plays it backwards straight away. Boomerang plays it forwards then backwards, and Speed, Frames and Keep change its pace and length. Save as GIF writes the result; CONVERT writes the same edits to MP4, WebP or APNG. Frames are reversed after the disposal rules are applied, so a GIF that only redraws small patches still reverses correctly.

How do I make a GIF black and white?

Open TRANSFORM and choose Grayscale for shades of grey, or Black & white for pure black and white with a threshold you set. Tick dither for a pattern that suggests grey; it is an ordered pattern fixed to the canvas, so it does not crawl from frame to frame the way error-diffusion dithering does in an animation.

How do I compare two GIFs?

Open the DIFF tab and drop the second file. Both are decoded and compared frame by frame, pixel by pixel. You see which frames differ and by how much, the two frames side by side and a red overlay of the changed pixels, with a tolerance for near-identical colours. The second file can also be a PNG, APNG or WebP, so you can check an export against its GIF. The raw byte comparison is still available under BYTES.

Can I extract the frames of a GIF?

Yes. FRAMES steps through every frame, composited by the GIF disposal rules; Save frame as PNG downloads the one you are looking at. To get all of them at once, CONVERT makes a sprite sheet: every frame in one PNG, laid out in a grid.

Does a GIF carry hidden metadata?

It can. A GIF may hold comment blocks, an XMP packet that names an author, a place or the software that made it, and application blocks only one program understands. BLOCKS shows them all in full. Download clean copy writes a copy without them; the frames, palette, loop count and any colour profile are copied byte for byte, so nothing is re-encoded.

How large a GIF can I open?

Any size. A GIF has no index, so OmniViewer walks its blocks once, hopping from one sub-block length byte to the next in large reads, and keeps only numbers for each frame. That runs at the speed of your disk. Frames are decoded one at a time when you look at them, and conversions process one frame at a time too. The PREVIEW tab uses the browser’s own decoder, which loads the whole file, so above 64 MB it asks first.