FFmpeg is a free software project that produces libraries and programs for handling and manipulating multimedia data. FFmpeg can handle the entire process of transcoding, video and image manipulation (resizing, denoising, etc.), packaging, streaming, and playback. It is the most popular video and image processing software by a mile and is used by many companies across various industries.
In this post, I’ll give you a quick introduction to FFmpeg and give you an idea of what is possible with this amazing library. I’ll end with links to all the posts on FFmpeg here at OTTVerse.
How do I Install FFmpeg?
FFmpeg installation is super easy. We covered it on OTTVerse here and showed you how to install it on Windows, mac, or Linux. If you are on Windows, you can download the latest FFmpeg executable right here on OTTVerse on our FFmpeg builds page. It’s updated every Wednesday with the latest FFmpeg build.
On mac, you can use
homebrew to install FFmpeg on your system and on Linux, it’s easy to install using the
apt package manager. More information is in this article dedicated to FFmpeg installation.
If you’re short on time, here’s the mac installation command using
brew install ffmpeg
and the Linux installation guide using the
apt package manager –
sudo apt install ffmpeg
Of course, you can always download the FFmpeg source code and build it from scratch while configuring what codecs to use and not. This will set you up with a small, minimal FFmpeg build suited to your needs. The steps for a source build are here.
What Are The Uses of FFmpeg?
That’s a great question and a very difficult one to answer, because you can use FFmpeg for a zillion different things, with new use cases, tools, and features being added at a regular clip.
FFmpeg can be used to for various video processing tasks such as denoising, blurring, color conversion, rotation, extraction of frames, letter-boxing, etc. that are critical to most video processing, compression, and delivery workflows.
Here are links to articles that show the different ways in which you can use FFmpeg.
- Extract single frames or create thumbnails and screenshots using FFmpeg.
- Trim/Cut/Split videos using FFmpeg
- Stack videos either horizontally or vertically
- Blur a Video using FFmpeg’s BoxBlur Filter
- CrossFade, Dissolve, and other Effects using FFmpeg’s xfade Filter
- Resize/Scale/Change Resolution of a Video using FFmpeg Easily
- How to Rotate A Video using FFmpeg Easily
- Reverse a Video with FFmpeg made Ridiculously Easy
- FFmpeg drawtext filter to Insert Dynamic Overlays, Scrolling Text, and Timestamps
- Create Video from Images using FFmpeg
FFmpeg’s support for video compression is fantastic and its an open secret that most streaming companies use or have used FFmpeg for their production systems. It’s that stable!
FFmpeg contains libraries that offer an interface to various codecs like JPEG, MPEG-1/2/4, H263+AAC (MPEG), Theora (Ogg Vorbis), AVS+, VP8 (WebM), H.264/AVC, HEVC, AV1, and more and you can use these to compress, transcode, or decode videos as required.
Video Packaging Support
For OTT system providers or developers, FFmpeg also has complete support for packaging your videos in both HLS and MPEG-DASH protocols. It can also be configured to stream the videos using RTMP or other protocols.
Audio and Video Container Support
FFmpeg also has extensive support for containers and can be used to read, write, and convert between containers such as
mkv, and so many other obscure formats.
- FFmpeg AVI to MP4 Conversion (Lossy and Lossless)
- Concatenate mp4 Files Using FFmpeg
- How to Remove Audio from Video using FFmpeg. Bonus: Add, Extract, Replace
- FFmpeg – Convert to Apple ProRes 422 / 4444 Simplified
FFmpeg can also be used to understand the structure of a video and inspect it. There is a command line utility called
ffprobe that’s built using the Fmpeg library and can be used to inspect and peer into video files. You can extract all sorts of metadata out of a video using
ffprobe, count the number of frames, find the positions of the IDR frames, and more. Here is an article that details some of the useful features of
Finally, there is even a command line playback utility called
ffplay that can be used to play videos without the need for any fancy video playback software (link to an ffplay tutorial).
Why is FFmpeg so popular?
Companies use FFmpeg because it’s open-source (meaning anyone can modify it), making it perfect for scaling to different systems with varying hardware specifications (e.g., Android devices that come in all shapes, sizes, and specifications).
It’s available in most Linux distributions’ repositories and can be installed on all major desktop operating systems. FFmpeg has been designed to handle the widest variety of media formats with minimal fuss from the user. So if you’re looking for a great way to convert your FLAC files into MP3s, this is it!
FFmpeg is a great library to have in your video processing and compression toolbox. FFmpeg has endless capabilities and being open-source, you are more than welcome to modify the source and extend it’s capabilities. Do check out OTTVerse’s FFmpeg tutorials if you need more information.
Krishna Rao Vijayanagar
I’m Dr. Krishna Rao Vijayanagar, founder of OTTVerse. I have a Ph.D. in Video Compression from the Illinois Institute of Technology, and I have worked on Video Compression (AVC, HEVC, MultiView Plus Depth), ABR streaming, and Video Analytics (QoE, Content & Audience, and Ad) for several years.
I hope to use my experience and love for video streaming to bring you information and insights into the OTT universe.