Initializing, please wait a moment

FFmpeg online vs local FFmpeg - when each wins


FFmpeg is the universal video and audio toolkit that every streaming service, every content creator, and every backend pipeline quietly depends on. You can run it in a browser tab via WebAssembly (our FFmpeg online is one such implementation) or install it locally and invoke from a terminal. The "right" choice depends on file size, privacy posture, codec coverage, and whether you want to learn the CLI. This guide covers what each surface can and cannot do, with concrete recipes for when each wins.


What each surface actually is

FFmpeg online (ffmpeg.wasm) is a port of FFmpeg compiled to WebAssembly that runs inside a browser tab. The video file you pick is read into an in-memory file system inside the tab; FFmpeg runs against that virtual file system; the output is written back to memory and offered as a download. Nothing leaves your device.

Local FFmpeg is the native binary installed via your package manager (brew install ffmpeg, apt install ffmpeg, Chocolatey, scoop). The binary runs with full OS access: reads from disk, writes to disk, uses every CPU core, taps hardware encoders (NVENC, QSV, VideoToolbox) when available.


Side-by-side comparison

AttributeFFmpeg online (browser wasm)Local FFmpeg
Install effortZero - open the pageModerate - package manager + PATH
Maximum input size~1-2 GB in practice (browser tab RAM cap)Limited only by disk
PrivacyFiles never leave the device (nothing uploaded)Files never leave the device
Encode speed (1080p H.264, 1-minute clip)~60-90 seconds (wasm, single-threaded or SharedArrayBuffer)~15 seconds (multi-core) or ~3 seconds (hardware encoder)
Hardware accelerationNo (runs in software via wasm)Yes (NVENC, QSV, VideoToolbox, AMD AMF)
Codec coverageWide but limited by build (H.264, VP9, AAC, Opus, AV1 in newer builds)Every codec FFmpeg supports (depends on build flags)
Filters / effectsMost common filters workAll FFmpeg filters
Scripting / batchLimited to what the UI exposesFull shell scripting, batch processing
UpdatesShips with the page; always currentManual (package manager update)

When FFmpeg online wins

One-off conversion of a single file under 2 GB. You have a single MOV from your phone that needs to be MP4 for an email. Opening the browser page is faster than installing a CLI tool you'll use once this year.

Privacy-sensitive content. A draft video you don't want to upload to a free online converter. In-browser wasm is the only way to guarantee the file stays on your device short of installing FFmpeg locally.

Using a machine where you can't install software. A work laptop with locked-down install permissions, a school lab, a library kiosk. If the browser can load the page, FFmpeg runs.

Teaching or demonstrating a specific FFmpeg command. The in-browser console shows the FFmpeg log output in real time; students can see the same pipeline that runs locally.


When local FFmpeg wins

Files over 2 GB. A browser tab's heap is capped at 4 GB on most platforms; ffmpeg.wasm running inside that tab typically has 1.5-2 GB headroom after the code and metadata. Longer 4K footage, concatenating multiple source files, or high-bitrate source video will blow past that limit. Local FFmpeg streams from disk and never loads the full file into RAM.

Batch processing. A folder of 200 videos to re-encode, a cron job that transcodes uploaded footage, a CI pipeline that generates thumbnails. Shell scripts + xargs or find -exec handle batches trivially; the browser UI handles one file at a time.

Hardware encoders. Encoding an hour of 1080p H.264 with NVENC takes 2-5 minutes on a modern NVIDIA GPU. The same hour via wasm takes 1-2 hours. For anyone processing more than a few minutes of video regularly, local FFmpeg with hardware acceleration is 20-30× faster.

Uncommon codecs or experimental filters. If you need a filter that requires a specific FFmpeg build flag (libx265 with x265 tuning, libfdk_aac, libaom-av1), local FFmpeg installed from source with the required flags is the only path.


What "online" means in our tool

Our FFmpeg online runs entirely in your browser. The FFmpeg code is WebAssembly compiled from the same source as the CLI. When you pick a file, it's read into an emscripten-emulated file system inside the tab. When FFmpeg runs, it reads from that virtual file system and writes to it. When it finishes, the output file is handed to you as a download via a Blob URL. At no point does the file travel over the network.

The page shows the actual FFmpeg command line and the live FFmpeg log - so you can copy the exact command to run it later on the CLI for larger files, see our MP4 vs WebM guide for format-level decisions.


Five concrete recipes that work on both surfaces

Convert MOV to MP4 (H.264). ffmpeg -i in.mov -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k -movflags +faststart out.mp4 - works identically in the browser and the CLI.

Trim a clip between two timestamps. ffmpeg -ss 00:00:30 -to 00:01:45 -i in.mp4 -c copy out.mp4 - -c copy avoids re-encoding, making this instant.

Extract audio as MP3. ffmpeg -i in.mp4 -vn -c:a libmp3lame -q:a 2 out.mp3.

Resize to 720p preserving aspect ratio. ffmpeg -i in.mp4 -vf "scale=-2:720" -c:a copy out.mp4.

Generate a thumbnail at 5 seconds. ffmpeg -ss 00:00:05 -i in.mp4 -vframes 1 -q:v 2 thumb.jpg.


The decision rule in one sentence

If the file is under ~1 GB, you need it converted right now, and you don't process video regularly - use FFmpeg online. If you're processing batches, large files, or regularly touching video - install local FFmpeg.


Related tools


← Back to Video Tools

Why trust these tools

  • Ten-plus years of web tooling. The freetoolonline editorial team has shipped browser-based utilities since 2015. The goal has never changed: get you to a working output fast, without an install.
  • Truly in-browser - no upload. Every file-processing tool on this site runs in your browser through modern Web APIs (File, FileReader, Canvas, Web Audio, WebGL, Web Workers). Your photo, PDF, audio, or text never leaves your device.
  • No tracking during tool use. Analytics ends at the page view. The actual input you paste, drop, or capture is never sent to any server and never written to any log.
  • Open-source core components. The processing engines underneath (libheif, libde265, pdf-lib, terser, clean-css, ffmpeg.wasm, and others) are public and audit-able. We link to each one in its tool page's footer.
  • Free, with or without ads. All tools are fully functional without sign-up. The Disable Ads button in the header is always available if you need a distraction-free run.