Urgent.News

What's breaking now, across thousands of outlets.

Tech

How OmniGIF converts Live Photos to GIF entirely in the Browser

iPhone Live Photos are not a single GIF-ready file. They are a still image plus a short video clip. Most "Live Photo to GIF" tools ask you to upload that clip to a server. OmniGIF's Live Photo to GIF converter does the opposite: the MOV/MP4 never leaves the device. This post walks through how that pipeline is built — from Apple's export format, through engine selection, to palette-based GIF…

OmniGIF is a browser-based tool that converts Live Photos, which are actual still images paired with short video clips, into GIFs without uploading the video clip to a server. The conversion process starts when the user exports the Live Photo as a MOV/MP4 file. The browser then analyzes the container, duration, and resolution of the exported file.

Users are guided to save the video before opening the file picker to prevent confusion with the still image in narrow viewports. The high-level architecture of OmniGIF's Live Photo to GIF converter includes exporting the Live Photo, analyzing the container, duration, and resolution, previewing and cropping the video, selecting a conversion engine, and generating the GIF.

Two conversion engines are used: WebCodecs + Mediabunny, which is preferred, and FFmpeg.wasm in a Worker, which is a fallback for Safari or when hardware decoding is not reliable. The WebCodecs path, which is compatible with Chrome, Safari, and Firefox, decodes the container and takes the primary video track. It verifies if the video can be decoded, samples frames at the target FPS between the start and end seconds, applies crop and circular mask using Canvas, and encodes the frames into GIF with palette-based encoding.

The FFmpeg path uses a worker with the @ffmpeg/core build to avoid SharedArrayBuffer and cross-origin isolation conflicts. The worker lazy-loads FFmpeg, writes the uploaded buffer to a virtual file system, builds the ffmpeg command line arguments, executes the command, transfers the output GIF back to the UI thread, and deletes temporary files.

Both engines have the same interface and can handle the conversion locally, without the need for a server to receive the file.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Daylight Saving Time 2026: Why Modern Time Tracking Shouldn’t Fear the Repeated Hour

On October 25, 2026 , Germany will switch from daylight saving time back to standard time. For people, that means one extra hour of sleep.

  • Germany reverts to standard time on October 25, 2026, adding an extra hour of sleep
  • Daylight saving shift serves as test for software's time management capabilities
  • Time-tracking systems must differentiate between time points, durations, and displayed local times

The $10 Canonical Loop: How Expired Domains Are Outranking You in Every Market

A domain name costs about $10. That is the entire marginal cost of the spam that is outranking legitimate sites in every market Timothy Malmros has checked.

  • Expired domains with accumulated authority outrank legitimate sites for $10 each
  • Timothy Malmros, with 20+ years of gambling affiliate SEO experience, explains the loop
  • Canonical tag benefits from Google's grace period, ranking despite being spam

Two Transactions, One Row: What Does MySQL Actually Let You See ?

Two users, One database row, Both reading and writing at almost exactly the same time. Who sees what ? Can one transaction see another transaction’s uncommitted changes ?

  • MySQL transactions ensure either full success or full rollback of multiple operations.
  • ACID properties maintain data integrity in transactions.
  • Four isolation levels in MySQL: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE.

More from Sunday 13 September →