FFmpeg 7.1 release: a tons of codecs

147 pointsposted 8 hours ago
by jbk

44 Comments

webdevver

7 hours ago

chatgpt has revolutionized ffmpeg for me. i had no idea how powerful it was and the crazy oneliners you could do - i had this small project to make a moving collage of video frames, and chatgpt produced the crazy invocation for it. it even showed me how to use intel quicksync.

the point is, there is no way i would have been able to figure out the command line myself. it still trips up every now and then (at which point im often screwed), but i can atleast finally use the tool.

thrdbndndn

6 hours ago

It has been said at every single post about ffmpeg (and it's true!) so I would also add my obligatory comment:

DO use ChatGPT to help you to write ffmpeg commands, but at least has some basic understanding of how ffmpeg works -- especially the fact that it works like a pipeline so the order of the options absolutely matters.

And ChatGPT often throw lots of unnecessary options (sometimes even do harm), so do actually investigate what each switch is supposed to do (ChatGPT can help with that too) if you're going to use the generated command for something semi-serious.

If possible, try to keep the switches as few as possible and avoid exotic flags. But do pay attention to pixel format and colorspace options to make your video as compatible as possible. It's very easy to mess things up for doing even seemingly simple tasks (like converting static images to slideshow etc.)

Kinrany

6 hours ago

I have the experience of reading an ffmpeg one-liner (that really took more like five lines with wraparound) and trying to understand it. Half the options seemed unnecessary, but every single one of them would break the script when removed.

frde_me

6 hours ago

We had to encode a lot of videos at work once to play back to users. The resulting FFMPEG commands ended up being so complicated, every argument had about a one paragraph comment explaining it

Had to try and fix a bug with that script and it took me hours just to get some understanding of it.

Makes me wonder if video processing is just that complicated, or if someone could make some sort of simpler tool for this

ssl-3

5 hours ago

There's simpler tools like Handbrake that present a GUI for handling many video encoding tasks, or even things like Tdarr for distributed transcoding tasks.

But if you're documenting it right then you'll still need a paragraph explaining what every checkbox does...

amonith

6 hours ago

ffmpeg should be config-based with verbose descriptive names for everything. It doesn't make sense in its CLI form. It's far from human-readable since a very long time.

RedShift1

6 hours ago

Yeah it doesn't help that the manpage is so unwieldy, quite annoying that you can't find an option that you specify like this: "-abc", but in the manpage it's just documented as "abc", and of course "abc" is everywhere else in the manpage as well.

user

18 minutes ago

[deleted]

IntelMiner

7 hours ago

I'm told that GPU-based encoding (Nvenc etc) can't possibly match a "brute force' CPU encode if you want truly tiny filesizes. Nvenc's encoder is also miserable in terms of quality

Does this "Vulkan based encoding" mean we'll be able to get the best of both worlds? A 'pure' software encoder, but with the massive parallelism of a GPU?

If so I'd be extremely excited. Getting to shrink my DVD and Blu Ray rip collection down by moving it all to AV1 at rest would massively reduce my storage cost

jbk

7 hours ago

> Does this "Vulkan based encoding" mean we'll be able to get the best of both worlds?

Unlikely. This is just a generic API to the same GPU backends; so you will not see more quality than nvenc.

IntelMiner

7 hours ago

What's the point of using Vulkan as an encoding API if the work is still being done on the CPU then? I'm not sure I understand

jbk

7 hours ago

No, no, it's done on GPU.

IntelMiner

7 hours ago

Isn't Nvenc (and its equivalents) based on using a specific ASIC on the GPU, rather than Vulkan which (as I understand it?) is just "regular" GPU compute?

kuschku

7 hours ago

Most GPU encoders are part ASIC, part regular GPGPU compute. That's what allowed AMD to increase the quality of their encoders via a driver update, but also why you can't add easily add entirely new codecs.

That said, outside of GPUs there are both FPGA-based and pure-ASIC hardware encoders that beat not just NVENC but even software encoding in terms of quality AND performance, such as AMD's Alveo lineup. https://www.amd.com/en/products/accelerators/alveo/ma35d.htm...

dagmx

2 hours ago

The Vulkan APi calls out to the same hardware. The benefit of using it via Vulkan is that you (in theory) don’t need to have multiple APIs for different GPU vendors.

amaranth

an hour ago

It's also meant to make it (somewhat) easier to apply various GPGPU filters and scalers before encode or after decode, like HDR tonemapping. The OS usually has some method to do this while keeping the data in the GPU VRAM by passing a handle from one API subsystem to another but if it never leaves Vulkan you don't have to worry about getting that right.

EraYaN

7 hours ago

For your Bluray collection HEVC is still advisable at reasonable bit rates. AV1 really only beats it in fairly low bitrate scenarios. Plus the HDR story is much better with HEVC.

thrdbndndn

6 hours ago

Ditto. Hell, the improvement of HEVC over H264 isn't even too significant at high bitrate (say, >10Mbps).

Nihilartikel

4 hours ago

I'm a big fan of the film grain modelling in HEVC over h264 at almost any bit rate. It just makes everything look way less 'compressed' to me.

querez

7 hours ago

> Getting to shrink my DVD and Blu Ray rip collection down by moving it all to AV1 at rest would massively reduce my storage cost

SVT-AV1 is pretty fast these days, Almost every minor release added last year added an additional 10-50% speedup. So if you haven't checked it out for a year or so, you'll be amazed by how much quicker it has gotten. Just saying.

7bit

15 minutes ago

I was so hyped getting my hands on my 4070 to encode some Blu-ray. And I was massively disappointed how bad the quality of Nvenc is. I still think it's great for some use-cases like live streaming. But for encoding film - no!

dist-epoch

6 hours ago

For best quality you absolutely need a two-pass encoding, where in the first pass you collect "statistics" which are used to allocate bitrate in the second pass where you do the actual encoding.

I don't think NVENC supports this workflow, which is a big reason it's not suitable for quality encoding.

WithinReason

4 hours ago

That's only if you're targeting a given filesize, with a target quality you only need 1 pass

ksec

6 hours ago

This is a great VVC release! Unfortunately x266 is still far from ready.

I am surprised we got LC-EVC in. Not sure about adoption outside TV but it is a very nice technology that is hyper efficient. ( This is not related to the MPEG 5 EVC )

>you can use LC-EVC with H.264, HEVC or AV1 base layers.

It can be used with VVC as well. That is what the Brazilian TV 3.0 has adopted. On the surface this gives an additional 10-20% BD-Rate. Can't wait t have encoder to test this out.

jbk

6 hours ago

> I am surprised we got LC-EVC in.

I pushed quite a lot on that, tbh, because of the Brazil adoption.

yellowsir

2 hours ago

I wonder where they host

>>> Bandwidth Restricted

The page you have tried to access is not available because the owner of the file you are trying to access has exceeded our short term bandwidth limits. Please try again shortly. Details:

451 Actioning this file would cause "jbkempf.com//blog/2024/ffmpeg-7.1.0/" to exceed the per-day file actions limit of 160000 actions, try again later >>>

jbk

27 minutes ago

FastMail :)

edward28

an hour ago

The hn high of death.

xenodium

6 hours ago

While ffmpeg is a powerhouse, I don't use it frequently enough to remember all the options I'd need for my typical usage. Having said that, I have saved some magical incantations over time and built a handy context menu over time https://lmno.lol/alvaro/how-i-batch-apply-and-save-one-liner...

Now I can just highlight a file and:

- covert audio to mp3

- convert gif to video

- convert to mp4

- convert video to gif

- convert video to webp

- convert video to hevc mkv

- convert video to mp3

- convert video to mp3 with artwork

- convert video to thumbnail

- trim video beginning

- trim video end

- drop video audio

- speed up video

- speed up video fragment

- resize video

kuschku

7 hours ago

Is anyone working on adding/improving support for RAW formats? As in, cinema DNG (in .MXF or as image sequence), blackmagic RAW, Apple ProRes Raw?

I only found an open ffmpeg patchset for cinema DNG, blackmagic raw has no support anywhere outside of the manufacturer's SDK and Apple ProRes RAW has only Apple's SDK and a proprietary reimplementation by a czech developer. The current ffmpeg release supports afaict neither of these formats.

I thought about writing my own decoder for ProRes RAW but as I've never written a codec before, I haven't had much success ^^

jbk

3 hours ago

Did you file bug reports?

gcr

5 hours ago

Does anyone have details on VVC’s auxiliary stream support (transparency / depth)? I work on large-scale outdoor scene understanding datasets and being able to encode stereo RGB video with 16-bit depth would be extremely helpful!

jbk

3 hours ago

I've not seen that, I can ask.

captn3m0

7 hours ago

It would be nice if FFmpeg could also specify a clear support policy for the LTS release. As of now, LTS releases are marked, but what does Long Term Support really mean is (afaik) left unspecified. Having a clear policy like (2 LTS are supported at a given time, and every ODD.1 release is LTS) would be helpful.

jbk

7 hours ago

I documented that a bit that, in the past: every ODD.1 release is LTS.

And the LTS is maintained at least as long as the next LTS is, and should be at least 3 years.

So, for example, we support 5.1 and 7.1 as LTS. And we support 6.1 and 4.4 as best effort.

captn3m0

4 hours ago

I could find some discussion references on the mailing list, but nothing on the main website/wiki. Would be great if this could get documented on the website. (I'm filing a PR for endoflife.date/ffmpeg)

jbk

3 hours ago

I will have a look.

lyu07282

7 hours ago

> This release is more than 2700 commits, and the diff is around 211kLoC!

That's impressive, glad to see such an incredibly important project healthy!

boristsr

7 hours ago

Impressive release!

jbk

7 hours ago

Yes, it's quite a big release, with a ton of things that were underway, and they got merged!

user

6 hours ago

[deleted]