FFmpeg is 20 years old today

by Daemon404on 12/20/2020, 5:09 PMwith 93 comments

by ghoomketuon 12/20/2020, 6:11 PM

The creator of ffmpeg Fabrice Bellard(1) is truly a genius and has created so many amazing software that have been an amazing benefit to the world.

(1) https://bellard.org/

by blululuon 12/20/2020, 6:33 PM

FFmpeg is one of those pieces of infrastructure that unpins modern media in such a fundamental way that it is hard to even imagine life without it. In the words of John Carmack: https://twitter.com/id_aa_carmack/status/1258531455220609025...

by js2on 12/20/2020, 7:45 PM

Literally just used it today to re-sync the audio and video in some movies I recorded where I needed to add a 210ms delay to the audio. There's no better tool that I know of for doing this, even on macOS:

    ffmpeg \
        -i "$input" -itsoffset "$offset" \
        -i "$input" \
        -map 0:0 \
        -map 1:1 \
        -acodec copy \
        -vcodec copy \
        "$output"

by h2odragonon 12/20/2020, 5:46 PM

I remember reading about it initially and saying "that sounds ambitious,and useful"... I think its safe to say they changed the world for the better with that single A/V swiss army knife tool. Amazing achievement.

by zinekelleron 12/20/2020, 6:17 PM

Some might have commented that FFmpeg is a very complex software but in its defence codecs are complex - especially in the encoding side where you basically have the whole control on the parameters. If you somehow work at a media company (on the engineering side, not the creative side which usually does not know (and care) what is the difference between P and B frames) the switches are important especially in one-way broadcasting (where there is no way to basically go backward and you need to fit everything into a very constrained transmission, which as one of my friends say that engineers at YouTube has a much more easier job due to the two-way communication nature of the internet).

by ed25519FUUUon 12/20/2020, 5:43 PM

Ffmpeg is an unusual piece of software. It’s CLI arguments (to me) are baffling. But it’s been around so long that there’s so many answered questions online for virtually anything you want it to do. Don’t bother reading the man page, go to google first.

by spicyramenon 12/20/2020, 7:17 PM

Ffmpeg saved my life when I was troubleshooting some quality issues video calls and customer was about to cancel the contract, we reconstructed the video from packet captures and ffmpeg helped us track the issue to be a H245 media reset that was happening every now and then, ffmpeg was able to detect the fps variation. All free and well documented

by xmichael0on 12/21/2020, 12:48 AM

Props out to Michael Niedermayer, he's been maintaining ffmpeg for years and does the bulk of the heavy lifting! Thanks! https://www.linkedin.com/in/michaelniedermayer

by panabeeon 12/20/2020, 11:47 PM

For anyone interested in trying FFmpeg in the browser: https://github.com/ffmpegwasm/ffmpeg.wasm

No affiliation -- found it while searching for browser-based ports of FFmpeg.

by mraza007on 12/20/2020, 10:10 PM

The guy who created this is truly a genius. His software has been really helpful for me

And i truly appreciate people who create useful software and open source it

by anonacct37on 12/20/2020, 7:12 PM

So youtube used ffmpeg quite extensively.

https://multimedia.cx/eggs/googles-youtube-uses-ffmpeg/

It wouldn't be too surprising if they still did.

by irrationalon 12/20/2020, 8:06 PM

So the Web is 30 years old today and FFmpeg is 20 years old today? Did the creator of FFmpeg purposefully start it on the 10 year anniversary of the WWW?

by tomaszson 12/20/2020, 7:41 PM

Years years ago I have used FFmpeg to create a video tutorial website. It worked like a charm on my CentOS VPS. I was able to scale videos uploaded by users to different resolutions, cut out frames for video cover, get size, resolution, convert video to different formats supported by various browsers. It was amazing and only solution available. The project was eventually suspended because of various reasons, but working with FFmpeg was amazing experience and still, when working with videos it is a great solution. Surely FFmpeg impact on today's internet is far bigger than anyone of us can assume. It is for video internet, what mp3 was for audio internet.

by BlackLotus89on 12/22/2020, 11:39 AM

I sometimes miss mencoder... I always found it way more intuitive than ffmpeg, but I have to admit that by now I'm more proficient with ffmpeg than I ever was with mencoder. Happy birthday ffmpeg, RIP mencoder.

Edit: just realized mencoder seems to be still alive and kicking. Thought it was lost in the transition of mplayer starting to use ffmpeg code -> mpv... Have to take a look at mencoder and if it is as easy as I remember :)

by ChrisMarshallNYon 12/20/2020, 7:11 PM

ffmpeg has become the de facto infrastructure for video processing.

It seems to have done a great job of keeping up to date, with things like GPUs and shader language and whatnot. I guess that's because he designed a good extension mechanism.

I'm grateful for it.

by ggmon 12/21/2020, 2:21 AM

Possibly more --runtime switches than any other command i use

by rootsudoon 12/21/2020, 3:47 AM

Wow. I never realized when I started using it it was so new.

It's hilarious how my introduction to this taught me so much in terms of codecs and compression.

All to just share fansubbed anime.

by heavyset_goon 12/20/2020, 7:41 PM

ffmpeg is great. I've run into more than a few consumer devices that use it for transcoding, which I thought was pretty cool.

by ogeron 12/20/2020, 9:46 PM

ffmpeg is a true swiss army knife. I used it last week to add subtitles to interviews I recorded (via SRT files generated from Amazon Transcription JSON). I also upscaled, so-mo‘d and blurred a video background with some X-Massy theme for some video calls. All literally within minutes and a bit of Google. A true lifesaver!

by dkhon 12/20/2020, 11:57 PM

FFmpeg is a miraculous tool and I have relied on it for a couple decades now. Beyond the plethora of personal use-cases, it has enabled individuals and smaller companies to possess the same abilities as the bigger guys, who themselves are all pretty much using FFmpeg these days. The only folks who need to build/use alternatives are the platforms at the top of the market and/or with immense scaling needs who are truly pushing beyond the realm of FFmpeg's practical abilities. Twitch is one of those very few, and have been nicely open in discussing it. [1] [2]

Couple highlights for my careering using it over the years. The first was when I was working on production and post-production for a small studio that had a popular web series and was just about to transition to their first "big" shows that would be produced for Hulu. This was when 6K raw video was just becoming a thing, we had over 50tb of footage, GPU decoding was brand-new, Windows machines couldn't work practically with Apple ProRes, lots of challenges. I ended up building a system that did things like transcode raw footage into various formats automatically whenever the server noticed there was new footage, automatically collected and stored the metadata from every shot somewhere we could centrally browse/search/filter it, etc. When it came time to deliver, it would automatically create various outputs for the web. We had to deliver ProRes masters in the end and had recently transitioned entirely to PCs. This was around when somebody successfully implemented a pretty good ProRes encoder for FFmpeg, so we were then able to encode and deliver these huge ProRes outputs not only without needing a Mac, but also entirely on our servers, no longer requiring someone's workstation to be hijacked for an entire day to do this. It all may not seem too revolutionary, but there was no way we would've been able to work with the same efficiency, for the same cost, in the same timeframe otherwise.

A couple years later, at a new (now defunct) video platform with millions of videos and maybe 5 back-end engineers, FFmpeg allowed us to build our own service to encode all uploads into the many resolutions and formats required. Encoding services were (and still are) very expensive, but in just a couple weeks we had our own that ran on standard Ubuntu server instances, spinning up/down depending on load. Immense cost savings, and not tied to any particular company. Shortly thereafter, GPU instances were available from most cloud providers and `nvenc` was available in FFmpeg, so we were able to dramatically speed up the encode process with maybe a day of work by adding GPU encoding into the mix.

These may seem like pretty obvious possibilities now, but it cannot be overstated how insane it was, especially at the time, for tiny and/or cash-strapped teams to be able to do all of this so easily, and that at the tool at the crux of it all, FFmpeg, was completely free. Yes, FFmpeg can be a pain in the ass to figure out, and it's easy these days to take it for granted, but in my opinion it has been truly revolutionary.

[1] https://www.youtube.com/watch?v=LsF5bHRxC_M [2] https://blog.twitch.tv/en/2017/10/10/live-video-transmuxing-...

by ponderingfishon 12/21/2020, 9:41 AM

THe best video processing and editing tool ever made!

by Sneliuson 12/21/2020, 3:57 AM

And still rocks! :)