Hacker Newsnew | past | comments | ask | show | jobs | submit | gyan's commentslogin

The version number gaps are misleading.

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.


Changelog:

- 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


> - Animated WebP decoder

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.


I've been waiting for this feature! Whenever I've encountered an animated WebP, I've had to drop it into ezgif.com to convert it to mp4, now I can just write a quick Bash function to transform it with ffmpeg.


I thought it already supported webp via libwebp. Is this different?


> - ONNX Runtime DNN backend with GPU execution provider support

Oh, wonder what fancy new things this will enable. Any examples in the wild already perhaps?


When I was a vision engineer at a previous role back in 2022-ish, laptop-class Intel chips used in their SFF NUCs were powerful enough to run small finetuned convolutional nets by dancing across the different on the package: first decode using QSV, and then downsize using the CPU, run the images through an OpenVINO model running on the iGPU, and aggregate results and append metadata using the CPU core. You could have 50% of the hardware in today's high-end security cameras for 10% of the cost.

I have to assume that hardware advancements in the past four years have only pushed the efficiency envelope further.


Some people might want to remove it, but onnx is one of the few ways you can run hw accelerated convolutions


I wonder if it’s going to be some custom encoder/decoder using DNN. I would also want to see some examples!


Well, not that important to me since we already had that in Vapoursynth.


> Playdate video encoder and muxer

Playdate as in the e-ink handheld? That's awesome!


Playdate's screen isn't e-ink, it's a 1-bit LCD

You probably wouldn't want the refresh rate of e-ink for a gaming device.


You're right. I literally have one sitting on my bookshelf I just haven't touched it like, since about a week after it came out.


What made you give up on it? Lack of time, or did you just not find it fun? “Season 2” of games came out last year.

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.


Not who you responded to but I haven’t really found many games I actually enjoy.


Wouldn't be impossible. I'm old enough to remember the original B+W game boy, and my B+W e-reader refreshes faster.


I've seen some very recent niche tech demoing fast-refresh e-ink screens but pretty much everything until now has required a noticeable flash to clear the entire screen on update. Which is fine for reading books but not for quick animating in an action game.

Most e-ink displays do not refresh faster than the original GameBoy which was 60fps.


Would probably be great for like, text adventures, visual novels, turn based strategy games, etc.

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.


60fps is the speed the PPU pushes pixels to the LCD, not the speed the LCD physically refreshes itself. That part was slow enough you could toggle pixels at 30Hz to simulate more than 4 levels of gray.

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.


> - Playdate video encoder and muxer

That’s got to be the nichest of niche codecs, maybe second only to the Lucas Arts one. Very impressive.


> Animated Webp

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.


I'm curious if they used LLMs to do the tedious work of porting the (de/en)coders to different architectures, and how useful they are here.


Seems like Yes. https://nitter.net/FFmpeg/status/2084084810813743614 "Thank you @ClaudeDevs and @AnthropicAI for supporting FFmpeg through the Claude for Open Source program!

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.


> Although i was under the impression that they usually preferred hand optimized assembly.

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.


And as a ffmpeg user with some old/weird hardware, I would much prefer click-and-hope support to no support at all. Ideally they’d have the resources for a real live human to hand-code assembly for every codec for every platform, but that’s probably not realistic. I’ll take what I can get and dust off my assembly skills if a click-and-hope implementation is close but not quite enough.


Makes sense.

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?


Yes, contribution is what keeps a project alive. It's up to the people involved to maintain quality. That's management. Two different things, both important.


You can very likely do the click-and-hope on your own with a 20 $/month cursor/codex/claude/grok subscription.

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.


No domain knowledge at all here but "find missing backports" doesn't sound like writing/porting code.


In FFmpeg's twitter page it says that several of their developers got six free months of Claude Max 20x plan through Anthropic's Claude for Open Source Program, and that it was used, so far, to help find missing backports for this 9.0 release.


Sounds like advertisement though.


That's how sponsorship works, it's an exchange of goods or funds for visibility of an audience. Nothing wrong with that


Sounds like getting them hooked on LLM so they come back for more.


No wonder both drug dealers and software developers call their customers "users".


only users lose tokens?

only losers use tokens?

both play just similarly to the original phrases


>- LCEVC track muxing support in MP4 muxer

I guess I am the only one excited to see this.


> Remove ogg/celt parsing

Does that mean it doesn't support .ogg files anymore?


Doubtful. Ogg is a container format. Celt is a specific audio codec.

I believe celt was superseded by opus.


No, this only removes parsing CELT inside an ogg container (because CELT itself is going away), not support for ogg itself.


No, not at all. Just celt, which was packaged in the ogg container, I assume.


>Animated WebP decoder

>Animated WebP demuxer

This is huge


If that was the case, the graph would never have gotten to the heights it did.

What happened is that as the corpus of useful info increased, the need to pose new Qs decreased. AI much accelerated that decline by making available an 'oracle' trained on that corpus.


The users being generally unhelpful wasn't an issue for them, since they were still significantly more helpful than users anywhere else on the internet. Reddit was and still is filled with completely unvetted answers (on pretty much all topics not just programming), Quora was/is a joke, Yahoo answers had some funny posts I guess but nothing you could actually learn from, what else really was there? Before AI, Stack Overflow was as good as it gets.


It's both. Users tolerated the hostile environment to an extent as long as the site was still the best way to get useful information. When LLMs came out, that was no longer the case.


It just accelerated the trend, and I am sure that reddit took over for a lot of new users. The different problems with SO has been well documented.

And they killed maybe one of the most side features of it : https://meta.stackoverflow.com/questions/415293/sunsetting-j...

So yeah metakill your own brands with stupid policies.


There was also the pattern of "closing as already answered" with an answer from 6 years earlier which wasn't actually answering the question when you dig into it. Certainly in the code stacks.


Definitely this. The moderators seemed to have the Lock Question button connected to their dopamine pathways.


> I’m selling my farm next year.

What will you do for ice cream then?


Yeah, what is the recognition of Jeeves/Wooster among the millennials?


As a millennial, the TV show with Hugh Laurie and Stephen Fry was played when I was a kid, and I've rewatched it several times as an adult and read a few of the books. Our kids have watched the show with us too. I'm currently trying to learn the theme on the piano.

I'm sure it'll continue in some niche, much like Agatha Christie, where I've seen some recent youtube vids by younger people discovering how well they're written. I like it when they say "follows the old trope of ..." and then in the comments you get "doesn't follow it, invented it".


There are a few YouTube "can I solve [story] before the reveal?" style videos focusing on Agatha Christie novels ranging from around 4 years old to today.


It's a very formulaic series, but it is fun. Possibly the best thing Stephen Fry ever did.


I was in 4th grade in 2003 when I learned search engines existed (and I have a possibly tainted memory of our Computer Arts teacher in grade school explaining web crawlers and PageRank to us). We had a Gateway PC at home and AOL, but we weren't allowed to use anything networked (I only played Civ III).

But we were essentially taught to use multiple search engines, but that was AskJeeves, Yahoo!, and Google. We liked AskJeeves because of the whimsy. Yahoo! felt too adult and Google felt too much like adults pretending to be kids.


I know what a Jeeves-style character is supposed to be like, but I couldn't tell you the origin, and I'd never heard of Wooster before just now.


Open the question further, I know the time before google but know ask.com only from the infamous toolbar.


How big is this page and what's the font size?


If you do open PRs at code.ffmpeg.org, remember to disclose and describe the AI contribution. You will also need to add FATE tests.


oh yes, every commit is fully open about Claude Code + the model.

honestly, it would've taken me about 2 years to do this otherwise.

there are many FATE tests added and a lot more to add when the hardware verification bits i'm planning are done.

edit: do you know if upstream have ever taken an AI assisted commit? i've not seen anything yet and would hate to be controversial or a burden on hardworking reviewers!


Changelog:

ffprobe -codec option

EXIF Metadata Parsing

gfxcapture: Windows.Graphics.Capture based window/monitor capture

hxvs demuxer for HXVS/HXVT IP camera format

MPEG-H 3D Audio decoding via mpeghdec

D3D12 H.264 encoder

drawvg filter via libcairo

ffmpeg CLI tiled HEIF support

D3D12 AV1 encoder

ProRes Vulkan hwaccel

DPX Vulkan hwaccel

Rockchip H.264/HEVC hardware encoder

Add vf_scale_d3d12 filter

JPEG-XS parser

JPEG-XS decoder and encoder through libsvtjpegxs

JPEG-XS raw bitstream muxer and demuxer

IAMF Projection mode Ambisonic Audio Elements muxing and demuxing

Add vf_mestimate_d3d12 filter

xHE-AAC Mps212 decoding support (experimental)

Remove the old HLS protocol handler

Vulkan compute codec optimizations

swscale Vulkan support

LCEVC metadata bitstream filter

Add vf_deinterlace_d3d12 filter

ffprobe: only show refs field in stream section when reading frames

ProRes Vulkan encoder

LCEVC parser

LCEVC enhancement layer exporting in MPEG-TS


TIL: JPEG XS - an image and video codec that offers both visually and mathematically lossless quality for low latency implementations.

Additionally, JPEG XS compressed content is indistinguishable from the original uncompressed content.

https://en.wikipedia.org/wiki/JPEG_XS


I've had great results using JPEG-XS to transport video for colour grading in feature film & TV post production. At 3:1 or 4:1 compression ratio is effectively lossless.

It is patent-encumbered though, you have to pay license fees to deploy it.


We use JXS when latency is critical. Most h24/265 decodes will have a 10 frame glass-glass delay, JXS drops that to 3 or 4, at a cost of bandwidth (our UHD jxs streams are 1.5gbit rather than 200mbit for hevc)


That's pretty depressing to read. x264 was handling the encoding side with sub-frame latency 15 years ago, and sub-frame decoding is significantly easier. "with –tune zerolatency, single-frame VBV, and intra refresh, x264 can achieve end-to-end latency (not including transport) of under 10 milliseconds for an 800×600 video stream"

But for some reason you can't make use of that and have to burn bandwidth instead.


A small part of the end-to-end process

https://www.obe.tv/how-to-lie-about-latency/

Bandwidth is cheap -- basically free, especially at this bitrate.


In theory it's a small part. But if you got that many frames of latency difference by changing codec, then it wasn't being a small part.

It's not that you should have gotten a magical 10ms latency glass to glass, it's that you should have been able to get 4 frames latency on h.264. But something prevented that, so I'm sad about it.

(And if you say the bandwidth was fine in your situation I won't argue, but using more than a gigabit extra is not usually thought of as free.)


Yeah, we've been deploying JPEG-XS for high bitrate streaming for a while.

A lot of our customers are moving their grading systems into data centres and streaming the images over IP back to their grading suites.

I've got it down to less than 1 frame for encode-transport-decode, but you've still got to copy the image to an SDI card and wait for that to clock out.


Isn't the point of JPEG to have lossy compression for your photos that still looks fine? As opposed to something like PNG, which has lossless compression


"JPEG" is short for Joint Photographic Experts Group, an ISO/ITU group that creates a lot of imaging standards. The JPEG image format you're thinking of is only one of the formats they've created.


The Joint Photographic Experts Group manages many standards, generally each called "JPEG [something]". The one we most commonly call "JPEG" is just one of them.


Reading that it looks like the point of JPEG-XS is to have near-lossless compression for raw photo and video data while having extremely high throughput.


JPEG XS supports either near lossless or truly lossless encoding depending on encoder configuration.


> Additionally, JPEG XS compressed content is indistinguishable from the original uncompressed content.

It can be indistinguishable, as long as you stick with lossless or very low compression ratios. It falls apart at typical JPEG XL compression ratios.


Not royalty free, unfortunately.


> gfxcapture: Windows.Graphics.Capture based window/monitor capture

> This source provides low overhead capture of application windows or entire monitors. The filter outputs hardware frames in d3d11 format; use hwdownload,format= if system memory frames are required.

This would strongly alter my plans if I were to develop an OSS Discord alternative. Chromium originally looked like a better core to start with largely due to its mature screen capture API. WebRTC is the other big thing, but there are other ways to do that. Native desktop apps (i.e., not browser based) are beginning to look much more compelling to me now.


If you were doing this, consider cribbing from https://github.com/obsproject/obs-studio/tree/master/plugins... which offers a variety of solutions including some rather exciting looking process injection (called "game" there).

I wonder if "entire chat app functions as OBS plugin" would work? Would solve the AV streaming side of the functionality.


You could always use Windows.Graphics.Capture directly.



What I want to know is how much of these were written and/or debugged using AI tools and which ones? Using which workflow?

For that's an actual project, with countless uses, on countless machines.

Show me the AI. I want to see what AI has generated in those.

(btw I pay religiously my Claude Code subscription plan)



Changelog:

ffprobe -codec option

EXIF Metadata Parsing

gfxcapture: Windows.Graphics.Capture based window/monitor capture

hxvs demuxer for HXVS/HXVT IP camera format

MPEG-H 3D Audio decoding via mpeghdec

D3D12 H.264 encoder

drawvg filter via libcairo

ffmpeg CLI tiled HEIF support

D3D12 AV1 encoder

ProRes Vulkan hwaccel

DPX Vulkan hwaccel

Rockchip H.264/HEVC hardware encoder

Add vf_scale_d3d12 filter

JPEG-XS parser

JPEG-XS decoder and encoder through libsvtjpegxs

JPEG-XS raw bitstream muxer and demuxer

IAMF Projection mode Ambisonic Audio Elements muxing and demuxing

Add vf_mestimate_d3d12 filter

xHE-AAC Mps212 decoding support (experimental)

Remove the old HLS protocol handler

Vulkan compute codec optimizations

swscale Vulkan support

LCEVC metadata bitstream filter

Add vf_deinterlace_d3d12 filter

ffprobe: only show refs field in stream section when reading frames

ProRes Vulkan encoder

LCEVC parser

LCEVC enhancement layer exporting in MPEG-TS


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: