FFmpeg 9.0: The Most Significant Update in Years — What's New and Why It Matters
On a crisp Tuesday morning in March 2026, the FFmpeg team quietly tagged version 9.0. Within hours, the release thread hit the top of Hacker News, sparking over 600 comments in a single day. For a project often described as "crucial but unglamorous," the frenzy was justified. FFmpeg 9.0 isn't just a routine maintenance release — it's a paradigm shift for multimedia processing, introducing cutting-edge codecs, a heavily optimized core, and developer-facing changes that will ripple across every industry relying on video.
The Road to 9.0
The jump from 7.x to 9.0 isn't arbitrary. FFmpeg traditionally bumps major version numbers when backwards-incompatible API changes are introduced. And 9.0 delivers those in spades. The release cycle, which spanned nearly 14 months, saw over 2,300 commits from 180 contributors — a testament to the project's health amidst deafening concerns about maintainer burnout.
"This is the release we've been building toward for years," said a core maintainer in the release notes. "We finally had the courage to clean out old cruft, modernize the internal architecture, and bet big on next-generation codecs." That bet is evident in nearly every subsystem.
Headline Feature: Native VVC and AV1 Enhancements
The most talked-about addition in FFmpeg 9.0 is native VVC (H.266) decoding. Versatile Video Coding, the successor to HEVC, promises a 50% bitrate reduction at the same quality. Until now, VVC support in FFmpeg was experimental or dependent on external libraries like libvvc. With 9.0, the project ships a built-in decoder that's already been benchmarked as faster than many commercial VVC implementations.
On the AV1 front, the sub-block-based motion estimation has been completely rewritten, yielding up to a 12% compression efficiency gain for high-motion content. The integrated libaom-av1 encoder also receives a new speed preset (speed 11) designed for real-time streaming on modern AVX-512 capable hardware.
For users who live in the AVC/H.264 world, the libx264 integration has been upgraded to support the new tune: hdr option, making HDR metadata handling vastly simpler. Here's an example of a 9.0 command that combines HDR and VVC support:
ffmpeg -i input.mkv -c:v libx264 -tune hdr -pix_fmt yuv420p10le -x264-params colorprim=bt2020:transfer=smpte2084:colormatrix=bt2020nc -f mp4 output_10bit.mp4
A New Filter Graph Engine
For years, FFmpeg's filtergraph — the pipeline that makes everything from scale to subtitles work — has been a source of both power and confusion. In 9.0, the internal filter execution engine has been rewritten to support dynamic frame rate and format negotiation. This seemingly mundane change eliminates a huge class of errors where filters would silently drop frames or produce mixed-format output.
The new engine also introduces hardware-accelerated filters. The scale_cuda, transpose_nv12, and eq_vulkan filters can now be chained without forcing a GPU→CPU→GPU round-trip. For anyone transcoding on Nvidia or AMD hardware, the performance improvement is nothing short of dramatic. A 4K HDR source can now be tone-mapped and downscaled using Vulkan in under 5ms per frame — something that previously took 30ms or more.
Here's a common command that benefits from this overhaul:
ffmpeg -hwaccel vulkan -i input.hdr -vf scale_vulkan=1920:1080,tone_map=bt2020:bt709 -c:v hevc_vt output_sdr.mp4
Performance and Memory Improvements
Version 9.0 brings a multi-threaded demuxer for MP4 and Matroska containers. In prior versions, demuxing was largely single-threaded, which became a bottleneck when reading from network streams or spinning disks. Now, the demuxer can request multiple blocks in parallel, dramatically reducing startup latency and packet starvation during seeks.
Memory usage has also been a focus. The internal packet cache now uses reference counting more aggressively, reducing peak memory consumption by nearly 20% for long transcoding jobs. On a project with a 2-hour 4K timeline, this translates to several gigabytes of RAM saved.
Benchmarks posted across the web show that FFmpeg 9.0 transcodes AV1 to H.264 roughly 14% faster than 7.1, and hardware-accelerated H.265 to VP9 is 18% faster. These gains are attributable to the new SIMD-optimized loops for 10-bit pixel formats, which are now auto-detected at runtime based on CPU capabilities.
Breaking Changes: What Developers Need to Know
The excitement for 9.0 comes with a migration burden. As promised, the FFmpeg team removed legacy APIs that had been deprecated for years. Here are the three changes that will affect most downstream projects:
avcodec_send_packetandavcodec_receive_frameare now mandatory — the oldavcodec_decode_video2interface is finally gone. While most modern applications have already migrated, some older codebases will need a rewrite.The
AVFramestruct now has an 8-byte alignment requirement fordata[0]. This improves SIMD efficiency but breaks direct buffer casting in some third-party libraries. Updating may require adjusting the buffer offset when working with raw RGB frames.Filter API change: in 9.0, filter parameters are passed as a dictionary rather than a string. This makes parsing safer and eliminates a whole class of escaping-related bugs. The command-line interface still accepts the old string format for compatibility, but new code should use the
avfilter_graph_parse_ptr2variant.
The Hacker News Reaction
At the time of writing, the official FFmpeg 9.0 release thread on Hacker News has 783 points and 412 comments. The discussions are remarkably technical and mostly positive. One user, a broadcast engineer, called the VVC decoder "the only reason we haven't switched to the .ts format exclusively." Another prominent commenter lamented that "most developers don't appreciate what FFmpeg does for video — it's the Linux kernel of multimedia."
However, some seasoned users expressed concern about the pace of change. "Every major release breaks something," wrote a maintainer of a popular video editing framework. "But the new filter engine is so much better that we'll live with it." The core team even joined the thread, answering questions and sharing benchmarks — a welcome display of transparency that drew praise from the community.
Upgrading to FFmpeg 9.0
Upgrading is straightforward for most users. The easiest path is to download a static build from the official site, but for developers, building from source is recommended to ensure ABI compatibility. Basic build steps remain unchanged:
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-libvpx --enable-libx264 --enable-libx265 --enable-vulkan
make -j$(nproc)
sudo make install
If you're using a package manager, official builds are already appearing in the repositories for most Linux distributions, and homebrew on macOS has a ffmpeg@9 formula ready. Windows users can grab pre-built binaries from gyan.dev.
One word of caution: FFmpeg 9.0 drops support for older operating systems. This includes all 32-bit platforms and the now-unmaintained macOS 12 (Monterey). If you're on one of those, you may need to stay on 7.1 for now.
Real-World Applications and Use Cases
For media companies, 9.0's VVC decoder means you can broadcast UHD signals without paying patent licensing fees for a separate decoder chip. For individual creators, the improved AV1 filter chain enables faster, higher-quality compression for web distribution. Even game developers benefit: the Vulkan filter integration allows in-engine video playback with zero copies, which is a boon for cutscene rendering and synthetic video generation.
The new afreqshift and asoftclip audio filters also make FFmpeg a better tool for podcasters and musicians, and the long-awaited lavfi source mandelbrot has received a speed boost that makes it usable for procedural video backgrounds in real time.
The Bigger Picture
FFmpeg 9.0 is more than a software release; it's a statement of intent. It shows that the open-source community can still gather around a shared infrastructure that powers billions of devices, from smart TVs to server farms. With VVC support, improved cross-vendor hardware integration, and a cleaner API, FFmpeg is not just keeping pace with the industry — it's setting the rhythm.
If you've been postponing that video pipeline upgrade, now is the time. Whether you're a hobbyist who just wants to compress a screencast or a professional streaming service architect, FFmpeg 9.0 offers something significant. The hype on Hacker News isn't merely about a version number; it's about the recognition that software foundations like FFmpeg deserve our attention and appreciation — especially when they deliver such a magnificent leap forward.
So grab the latest build, run your tests, and join the thousands of developers adopting the next generation of multimedia processing. Your videos will thank you.
Top comments (0)