A History of the FFmpeg Project
codecs.multimedia.cx
codecs.multimedia.cx
The project was started by Fabrice Bellard (using the pseudonym "Gérard Lantau") in 2000, and was led by Michael Niedermayer from 2004 until 2015. Some FFmpeg developers were also part of the MPlayer project.
The name of the project is inspired by the MPEG video standards group, together with "FF" for "fast forward". The logo uses a zigzag pattern that shows how MPEG video codecs handle entropy encoding.[0]
And I always thought FF was for fast Fourier transform.[1]Making a replacement that had a well designed library and a separate CLI that uses that library would be much better than what monolithic has offered.
Unfortunately, all the ones I've found so far have their own, mostly-undocumented abstractions and they only operate on files on disk. The only input parameter they provide is file path as a string, and I'd rather not have to round trip a temporary file. It's all through static methods on a static class, so I can't even create an extension method to accept a FileInfo object.
Maybe I just need to use the CLI tool and pipe standard IO.
I recently wrote a TV show intro detection CLI tool in Rust and the FFmpeg library was fairly painless to use (thanks to [1]). Documentation for the library is lacking, though.
In production scenarios you'd want that process to run in an isolated jail. Video formats are very complex and I don't have faith that fuzzers have found every exploit.
I'd rather not have to round trip a temporary file
I just need to use the CLI tool and pipe standard IO
Or use Process substitutionIt's common to see comments from ffmpeg users where they have devised some certain command line that accomplishes some specific task but who otherwise do not routinely use ffmpeg for much else. If these folks were able to compile an application that performed only this task using only the required ffmpeg libraries, would this be smaller and less complicated than an ffmpeg static binary.
That is a compile time option but if you're not using the system ffmpeg libs then I guess you'd be compiling it anyway.