Hacker News new | ask | show | jobs
by tn890 1425 days ago
FFmpeg is one of those tools that we desperately need a new alternative to.

After almost 20 years of Linux I couldn't type a correct FFmpeg command with a gun to my head.

5 comments

I wrote a simple-sounding script to record pulseaudio null sink on one device and send it to another. Tried a bunch of different ways:

parec | opusenc | nc

parec | ffmpeg | nc

Then discovered that ffmpeg can record directly from pulseaudio and serve it over rtsp. But after a few days of experimenting I realised I could still fuck up the command and be left scratching my head not understanding why it didn't work. Positional arguments in multiple places that affect different things depending on what precedes them. Trying to figure out which part of the command line affects input, cloned streams, output(s) etc. Ffmpeg is a great tool, but seriously hard to use. I ended up not only dropping it for recording and sending over the network, I threw it out completely and ended up with:

parec | flac | mbuffer

... Which provides the best quality, consistency and latency. But the best part is that the actual command line isn't much more complex than the pseudo code above.

ffmpeg is one of those tools which is great and just works, time and time again.

You don't know how to use a massively flexible tool that's fine, use something that wraps it, or employ someone who does know how to use it.

It's an extremely complex mash of codecs, and I'm not sure you could make it simpler while keeping all its capabilities.

I personally just make scripts with the required transcoding parameters, and I just look at the documentation again when I need to create a new one.

Use handbrake: https://handbrake.fr/

It uses ffmpeg under the hood.

Gstreamer. It has a learning curve but the documentation is excellent.