FFmpeg is ubiquitous
You may already know that the FFmpeg is used by Chromium, Firefox, and VLC, to name a few. A couple of days ago, a friend of mine pointed me to a homebrew project that was willing to provide basic PC Gaming to Nintendo Switch streaming capabilities.
I went after to understand how it works, and to my surprise, it was done by using FFmpeg on both ends.
On the client-side, aka your machine, it starts an FFmpeg instance, grabs the "desktop" as its input, and then it sends the raw h264 through a TCP connection to the Nintendo Switch, but the audio was being sent over UDP though.
And on the server-side, aka the Nintendo Switch, it uses FFmpeg to decode, and SDL to render the frames.
Still, some days ago, @Matthew McClure posted an article, teaching how to do live streaming directly from your browser, and what was used to accomplish the task? Yes, it was FFmpeg.
I'm still perplexed by the versatility of this incredible tool, you can do pretty much anything related to media. For sure, it also relies strongly on many libs such as, codecs like x264, measurements tools like VMAF among others.
I'll leave some links down below, so you can explore this amazing command line/library/converter/everything related to media.
- https://github.com/leandromoreira/ffmpeg-libav-tutorial
- http://slhck.info/ffmpeg-encoding-course/#/
- https://amiaopensource.github.io/ffmprovisr/
- https://medium.com/@eyevinntechnology/loop-file-and-generate-multiple-video-bitrates-muxed-in-mpeg-ts-with-ffmpeg-85658d0b74bb
- https://medium.com/abraia/basic-video-editing-for-social-media-with-ffmpeg-commands-1e873801659
- https://blog.twitch.tv/pt-br/2017/10/10/live-video-transmuxing-transcoding-f-fmpeg-vs-twitch-transcoder-part-i-489c1c125f28/
- https://programminghistorian.org/en/lessons/introduction-to-ffmpeg
- https://training.ashleyblewer.com/presentations/ffmpeg-art.html
- https://docs.google.com/presentation/d/1NuusF948E6-gNTN04Lj0YHcVV9-30PTvkh_7mqyPPv4/present?ueb=true#slide=id.g287c83d7a0_0_42
https://developers.google.com/media/vp9/live-encoding#example_adaptive_bitrate_set
Back-end Software Engineer
1moThank you, Leandro, for the article. I came across your exceptional FFMPEG tutorial on GitHub while searching for tutorials. It has been incredibly helpful. It would be greatly appreciated if you could also provide further insights into FFMPEG with audio streams.