# What Is ffmpeg and Why Do Downloaders Need It?

Source: https://b-roll-6hk.pages.dev/compare/what-is-ffmpeg/
Published: 2026-09-25
Updated: 2026-09-25
Author: Ema Zamboni, video editor (https://b-roll-6hk.pages.dev/about/)
Section: Compare (https://b-roll-6hk.pages.dev/compare/)

**In short:** ffmpeg is a free, open-source toolkit to record, convert and stream audio and video. YouTube downloaders need it to merge the separate video and audio streams behind 1080p and 4K, to cut sections and to convert formats. B-ROLL downloads ffmpeg on first launch and uses it for merging, clips, audio formats and ProRes or DNxHR conversion.

## What does ffmpeg do in a YouTube download?

ffmpeg is a free, open-source toolkit to record, convert and stream audio and video. In a YouTube download, ffmpeg is the part that turns fetched streams into the file you import: it merges video and audio, cuts sections, converts audio and re-encodes video.

The [About FFmpeg](https://ffmpeg.org/about.html) page lists what the framework can do: "decode, encode, transcode, mux, demux, stream, filter and play". The project ships three command-line tools: `ffmpeg`, `ffplay` and `ffprobe`.

The job table lists each step of a B-ROLL download and the tool that performs it.

| Job | Tool that does it | Why |
| --- | --- | --- |
| Read the format list and fetch the chosen streams | yt-dlp | yt-dlp knows how YouTube delivers video and picks the best streams for your quality cap |
| Run YouTube's JavaScript challenges | Deno, called by yt-dlp | As of September 2026, yt-dlp needs a JavaScript runtime for full YouTube support |
| Merge video and audio into MP4, MKV or WEBM | ffmpeg, called by yt-dlp | 1080p and 4K arrive as a video-only stream plus a separate audio stream |
| Cut a section between in and out points | yt-dlp with ffmpeg | Only the range you marked is written; a fast cut snaps to keyframes, an exact frame cut re-encodes around the cuts |
| Convert audio to MP3, M4A, WAV, FLAC or OPUS | ffmpeg, called by yt-dlp | YouTube's own audio is usually Opus or AAC, so every other format is a conversion |
| Embed subtitles in the file | ffmpeg, run by B-ROLL | Tracks are muxed as `mov_text` in MP4 and MOV, as SRT in MKV; not for WEBM or clips, where `.srt` files stay beside the video |
| Convert to a ProRes or DNxHR `.mov` | ffmpeg, run by B-ROLL | Intraframe codecs scrub and cut smoothly on a timeline |
| Measure the real bitrate of the saved file | ffmpeg, run by B-ROLL | ffmpeg reads the duration, and B-ROLL divides the file size by it |

The conversion rows are why B-ROLL exists. On Ema Zamboni's own DaVinci Resolve Studio timeline on Windows 11, 4K60 AV1 footage downloaded from YouTube was heavy to play back, and AV1 or VP9 downloads crashed Resolve at times.

[Download B-ROLL for Windows](https://b-roll-6hk.pages.dev/download/): free, Windows 10 and 11 today, macOS and Linux planned. No account, no ads.

## Who makes ffmpeg and how is it licensed?

ffmpeg is made by the FFmpeg project, a community-driven open-source effort that takes patches, pull requests and bug reports from anyone. The About page says the code compiles and passes the project's tests on Linux, macOS, Windows and the BSDs, among other systems.

ffmpeg's license depends on how a build is configured. The [FFmpeg license and legal page](https://ffmpeg.org/legal.html) says ffmpeg is licensed under the LGPL version 2.1 or later, and that when optional parts covered by the GPL version 2 or later are used, the GPL applies to all of ffmpeg.

The ffmpeg that B-ROLL uses is the win64 GPL build published in yt-dlp's FFmpeg-Builds repository on GitHub, and the app credits it as FFmpeg under the GPL v2 or later. B-ROLL itself is a free app built on open-source tools. Every component and its license is listed on the [open-source credits and licenses](https://b-roll-6hk.pages.dev/open-source/) page.

## Why do YouTube downloaders need ffmpeg?

YouTube downloaders need ffmpeg because the high-resolution streams do not arrive as one ready file. As of September 2026, YouTube serves 1080p, 1440p and 4K as video-only streams with the audio in a separate stream, and something has to join them.

Joining two streams is a remux: ffmpeg copies the compressed video and audio into one container, so the merge costs no quality. A downloader without ffmpeg falls back to a combined stream, which is why some tools stop at 360p or 720p or save a 1080p file with no sound. The symptoms and fixes are in [YouTube download only 360p or 720p? How to get 1080p and 4K](https://b-roll-6hk.pages.dev/troubleshooting/download-only-360p-720p/).

Remuxing and transcoding are the two kinds of ffmpeg job, and the difference is what happens to the picture.

| ffmpeg job | What ffmpeg does | Picture quality | What the editor gets |
| --- | --- | --- | --- |
| Remux | Copies the compressed streams into a new container: MP4, MKV or WEBM | Unchanged, no re-encode | The same codec YouTube used, often AV1 or VP9 |
| Transcode | Decodes the picture and encodes it again in a new codec, such as ProRes or DNxHR | Re-encoded, no detail added | A larger intraframe file that scrubs and cuts smoothly |

Converting a YouTube download to ProRes or DNxHR does not add detail; it makes the file cheap to scrub and cut in an editor.

yt-dlp, the downloader that calls ffmpeg for these jobs, is explained in [what is yt-dlp and is it safe to use](https://b-roll-6hk.pages.dev/compare/what-is-yt-dlp/).

## What does ffmpeg do inside B-ROLL?

B-ROLL uses ffmpeg twice: yt-dlp calls it to merge, cut and convert audio during the download, and B-ROLL runs it again afterwards for the ProRes or DNxHR conversion. B-ROLL downloads a single `ffmpeg.exe` on first launch and keeps it in `%LOCALAPPDATA%\Broll`. How the app's own license relates to ffmpeg and the other tools it is built on is answered in the [B-ROLL FAQ](https://b-roll-6hk.pages.dev/faq/#getting-b-roll).

The edit-ready path works in three steps:

1. yt-dlp merges the best video and audio streams into an MKV master.
2. ffmpeg converts the master into a `.mov` with the same name, keeping the source resolution and frame rate, with uncompressed 16-bit PCM audio.
3. B-ROLL deletes the MKV after a successful conversion, or keeps it if the conversion fails.

For ProRes, B-ROLL tries ffmpeg's `prores_aw` encoder first, then `prores_ks`, then plain `prores`, and the first two write 10-bit 4:2:2. The [ffmpeg codecs documentation](https://ffmpeg.org/ffmpeg-codecs.html) describes the ProRes encoders and the private options of `prores_ks`. For DNxHR, B-ROLL uses ffmpeg's `dnxhd` encoder with the DNxHR profiles LB, SQ and HQ at 8-bit 4:2:2, and HQX at 10-bit for 10-bit sources.

B-ROLL picks the lightest tier that still preserves the source and runs one conversion at a time on every CPU core. The tier rule and the file sizes it produces are in [download YouTube videos in ProRes or DNxHR](https://b-roll-6hk.pages.dev/features/youtube-to-prores-dnxhr/).

## What is Deno and why does B-ROLL install it too?

Deno is an open-source runtime for JavaScript, TypeScript and WebAssembly, described in the [Deno runtime documentation](https://docs.deno.com/runtime/).

B-ROLL installs Deno for yt-dlp, not for ffmpeg. As of September 2026, yt-dlp needs an external JavaScript runtime for full YouTube support, and Deno is the one it uses by default. B-ROLL downloads `deno.exe` from Deno's GitHub releases on first launch, and the log confirms it with `✓ JS runtime ready (no more YouTube warnings).`

The three tools are updated differently. B-ROLL updates yt-dlp to the latest nightly build at every launch, while ffmpeg and Deno stay as installed until you click **Reinstall tools** in the sidebar Advanced panel, which downloads both again. The whole tool set compared with the command line is in the [ways to download YouTube videos, compared](https://b-roll-6hk.pages.dev/compare/) hub.

## What does "ffmpeg not found" mean?

"ffmpeg not found" means the downloader looked for `ffmpeg.exe` in its own folder and on the Windows PATH and found nothing. Without ffmpeg, a command-line download still runs, but it cannot merge separate streams, so it saves a combined low-resolution format or stops with an error.

B-ROLL never asks you to install ffmpeg, but its TOOLS status in the sidebar Advanced panel tells you when ffmpeg is absent. The messages to look for:

- `ffmpeg: missing` in TOOLS, or `⚠ ffmpeg download failed: <reason>` in the log: the first-launch download did not finish. Click **Reinstall tools**.
- `JS runtime: missing` in TOOLS: an ffmpeg was already on your PATH at first launch, so B-ROLL used it and skipped the Deno download. **Reinstall tools** fetches B-ROLL's own ffmpeg and Deno.
- `⚠ No DNx encoder available in ffmpeg; keeping MKV.` in the log: the ffmpeg in use could not write DNxHR, so the MKV master stays. **Reinstall tools** replaces it.

A download that sits near the end without an error is usually ffmpeg at work, merging streams or converting to ProRes or DNxHR. What to check before you stop it is in [YouTube download stuck at 0% or 99%? What to check](https://b-roll-6hk.pages.dev/troubleshooting/download-stuck-0-or-99/).

> **Careful:** Download only footage you have the right to use: your own uploads, Creative Commons, licensed or permitted material.

## Frequently asked questions

Q: Is ffmpeg safe?
A: Yes. The real risk is a repackaged copy from an unknown download site, not ffmpeg itself, which a community project develops in public. B-ROLL fetches its ffmpeg from yt-dlp's FFmpeg-Builds repository on GitHub and never from a third-party mirror, so you do not have to pick a download site yourself.

Q: Do I need to install ffmpeg for B-ROLL?
A: No. B-ROLL downloads ffmpeg.exe on first launch, from the win64 GPL build in yt-dlp's FFmpeg-Builds on GitHub, and keeps it in its own data folder under %LOCALAPPDATA%. You never edit your PATH. If an ffmpeg is already on your PATH at first launch, B-ROLL uses that copy instead, and Reinstall tools in the sidebar Advanced panel fetches its own.

Q: Can ffmpeg make ProRes on Windows?
A: Yes. ffmpeg ships its own ProRes encoders, named prores, prores_aw and prores_ks, and they run on Windows without any Apple software. B-ROLL uses them to write 10-bit 4:2:2 ProRes files in a .mov container, and uses ffmpeg's dnxhd encoder for DNxHR. How B-ROLL picks the tier is explained in [download YouTube videos in ProRes or DNxHR](https://b-roll-6hk.pages.dev/features/youtube-to-prores-dnxhr/).

## Sources

1. [About FFmpeg](https://ffmpeg.org/about.html)
2. [ffmpeg codecs documentation](https://ffmpeg.org/ffmpeg-codecs.html)
3. [FFmpeg License and Legal Considerations](https://ffmpeg.org/legal.html)
4. [Deno runtime documentation](https://docs.deno.com/runtime/)

---

B-ROLL is a free, donation-supported desktop YouTube downloader for video editors: it downloads videos, clips, playlists and channels, converts them automatically into edit-ready ProRes or DNxHR (or saves MP4, MKV, WEBM or audio), and includes built-in trimming, subtitles and automatic creator credit files. Part of [Ways to Download YouTube Videos, Compared](https://b-roll-6hk.pages.dev/compare/) on the B-ROLL website. Download B-ROLL, free for Windows 10 and 11 (macOS and Linux planned): https://b-roll-6hk.pages.dev/download/
