FFmpeg 9.0
github.com
github.com
- Extend AMF Color Converter (vf_vpp_amf) HDR capabilities
- LCEVC track muxing support in MP4 muxer
- Playdate video encoder and muxer
- Add v360_vulkan filter
- HE-AAC 960 decoding (DAB+)
- transpose_cuda filter
- Add AMF Frame Rate Converter (vf_frc_amf) filter
- SMPTE 2094-50 metadata support and passthrough
- ProRes RAW VideoToolbox hwaccel
- APV Vulkan hwaccel
- Animated WebP decoder
- Animated WebP demuxer
- Remove CELT decoding support (doesn't affect Opus CELT)
- Remove ogg/celt parsing
- Bitstream filter to split Dolby Vision multi-layer HEVC
- Add AMF hardware memory mapping support.
- ONNX Runtime DNN backend with GPU execution provider support
- Remove deprecated NVENC options and support for pre-11.1 SDK versions
Nice. browsers have supported this for a long time, and it was annoying ffmpeg did not, because that meant a lot of non-browser desktop apps couldn't view them either.
Oh, wonder what fancy new things this will enable. Any examples in the wild already perhaps?
I have to assume that hardware advancements in the past four years have only pushed the efficiency envelope further.
Playdate as in the e-ink handheld? That's awesome!
You probably wouldn't want the refresh rate of e-ink for a gaming device.
I’d really like the chance to play with one and maybe even try to develop for it. Unfortunately, the price is a bit steep, even more so when considering shipping and taxes to the EU. I kept checking for years (and still do from time to time) to see if they’d sell through a retailer in the EU or if I could get one second-hand here, but it’s looking like that’ll never happen.
Most e-ink displays do not refresh faster than the original GameBoy which was 60fps.
But lcd screens are so cheap I don't even know what the advantage of an e-ink screen would be for this. I was just misremembering what the niche part of the playdate screen was.
Edit: And just to continue the nerdier part of the conversation, the dmg-01's refresh rate was indeed ~60, but it's pixel response time was so bad it really made it feel way slower. I remember when the GBC came out how amazed I was at how clear the games looked. dmg-01 felt like a tiger handheld a lot of the time.
I have a Boox e-reader. You can run Firefox on it, you can drag-to-scroll like a phone, there's a lot of ghosting (like the game boy) but it works fine. Now I wish I still had a game boy to compare it to.
That’s got to be the nichest of niche codecs, maybe second only to the Lucas Arts one. Very impressive.
Hah! Useful for me today, to get rid of some hacks. Good stuff FFmpeg. It truly continues to be a pillar supporting the world in so many ways.
So far, Claude has helped find missing backports for the upcoming 9.0 release."
Although i was under the impression that they ususally preferred hand optimized assembly. Not sure what their LLM/AI contribution policy looks like compared to other fundamental OSS projects.
Using LLMs/agents to do gap analysis and fill boilerplate doesn't rule out also reviewing the output and hand-optimising. That is how the tools should be used (if you aren't being a luddite like me and not using them at all) rather than click-and-hope vibe-coding.
The problem I see is that LLM use deters many potential contributors. I understand that in your use case this is not an issue since you prefer working code over theoretical contributors (as said makes a lot of sense), but I am noticing this in many projects that transitioned hard into an AI dependency. It puts a barrier to some people. If 99% of a project's contributions are via AI, is that project still alive?
edit: actually if you have the weird/exotic hardware you’re in the best position to do so as you can actually test whatever the coding agents would shit out.
only losers use tokens?
both play just similarly to the original phrases
I guess I am the only one excited to see this.
Does that mean it doesn't support .ogg files anymore?
I believe celt was superseded by opus.
>Animated WebP demuxer
This is huge
I don’t understand that. To me the severity has nothing to do with how popular is a code path, but whether that code path is accessible to an attacker. If I upload a specially crafted .mkv with a little known codec on YouTube and they use ffmpeg to process it, and I compromise YouTube’s infrastructure that way, it’s a pretty big deal, no matter the popularity of that codec.
I understand that from the perspective of "how many people will this crash for", but from a security perspective it is nonsensical. Even if it is an uncommon codec if the authors decide to keep the codepath there by default it is exploitable in most installs.
I love ffmpeg but that whole episode left a bit of a bad taste.
That's true for targeted attacks. For untargeted attacks, attackers have little incentive to do the exploit.
If you make a video player based on ffmpeg you take input videos. The attacker can share a specially crafted video with the victim. Same kind of attack as sharing word documents.
More details about the ongoing work on Swscale rewrite, on the various Vulkan changes, the assembly detailed and a bit of statistics about this release.
I know this is hyperbole to make a point even this is ridiculous. A lot of YouTubers mess around with their audio/video files, and am sure they have heard of ffmpeg.
Linux's drivers makes that happen, not ffmpeg; ffmpeg merely calls the API.
Intel's own first party drivers simply follow the ACPI tables, Linux ignores them.
ffmpeg is great, I think nobody disputes this. I use it in two ways mostly:
1) one, via mpv, and 2) two, as conversion tool primarily
ffmpeg also has many really powerful filters, but these are very confusing to use IMO and not elegant at all. I'd wish we could use some kind of simple meta-language or so, in part similar to virtualdub/avisynth (not necessarily suggesting the same API or DSL here, but just the main idea to think of multimedia data as tangible to manipulation as if it were an object oriented system or datastream system; every time I have to use ffmpeg's filter system, I ask myself if nobody designs any of this ...).
It's also not that bad once you take a bit of time to learn it - it's just a textual encoding of a graph where each node is a filter with a number of properties.
I don't say it to mean "they did less work," no, what his interesting to me is choice of major version bump instead of minor one.
Any change in major or minor number indicates a new release branch. And the convention since 5.0 has been to go 0 --> 1 --> 0 --> 1 ... for each new branch.
1. The translation system would still have to implement the underlying ideas. For example, your spec might explain "key frames are made by doing a wavelet transform ABC, dropping frequency XYZ, applying Heuristic Alpha and then doing LZ encoding on the result" or something like that. You still need implementations of those specific operations. Having to explain all that stuff in the spec would mean each english language doc would be book length tretsie on encoding. As a result, you don't really gain much by doing this kind of meta-explaination.
2. Video encoding/decoding is something where optimization is extremely important. Writing code that is specific to a single purpose is generally going to be faster than generic code that could be applied to any theoretical format. For example, by knowing the exact size of a transformation matrix, you can decide whether to build a lookup table or calculate on the fly - you can use hardware level features that require knowing exact sizes at build-time etc.
The container formats are defined in a way that could potentially make this possible.
In a world full of endless AI slop, it is refreshing to see that there are still folks out there hand-rolling assembler code to squeeze out another 5% efficiency.
It's a pity that Claude gets free publicity.
8.1 came out 4 months ago on March 16th, 2026
Maybe you're thinking of VLC which has been stuck with a stable v3 release for almost a decade while work on v4 continue?
You could also look at other repos in github to see what they do to do the same task.