Top FFmpeg Articles on the Streaming Learning Center

These are the most popular FFmpeg-related articles on the Streaming Learning Center over 2019-2020. I hope you find this list of FFmpeg resources useful.

Discover Six FFmpeg Commands You Can’t Live Without – FFmpeg is a free command-line utility that serves as the engine for most of the largest cloud encoding farms in the world, public and private. But it also performs many simple and essential tasks that crop up in a studio or encoding facility, particularly if you do performance or benchmark testing. In this article, I’ll show you how to perform six of these tasks.

Bash Scripting with Wildcards for FFmpeg on Ubuntu and Mac – Wildcards let you to encode and package multiple files using a single script. This article teaches you how to create and run bash scripts that use wildcards on Ubuntu and the Mac. The overall schema discussed can create a simple and inexpensive per-title encoding facility.

Using a Simple Wildcard Command in FFmpeg – This is a very simple automation technique for FFmpeg beginners. I’m sure there are much more efficient ways to script this project, but this represents my baby steps in FFmpeg automation.

FFmpeg Threads Command: How it Affects Quality and Performance – here are the questions I will answer. What does the threads command do? What does FFmpeg do if you don’t specify a threads value? How does the threads settings impact performance? How does the threads setting impact quality?

FFmpeg to the Rescue: Converting 60 fps to 30 fps – A recent consulting project involved computing the VMAF, SSIM, and PSNR scores of 30 fps 480p video encoded from a 60 fps 1080p source file. I’ve not performed measurements like this in the past and assumed that simply converting the 60 fps sources file to 30 fps via the “-r” option would convert from 60 fps to 30 fps and discard every other frame, which is what I needed. This assumption proved incorrect, and it cost me a morning to figure out a workaround. Here’s what I came up with.

Lesson of the Week: Computing VMAF with FFmpeg on Windows – Now the standard Windows FFmpeg download from includes VMAF; all you have to do is download the models and run the proper command strings. So, in this post, I’ll detail how to download those models and how to compute VMAF and other metrics with FFmpeg on Windows. I’ll assume that you know how to download FFmpeg from the site and insert the FFmpeg path into your Windows environment.

Encoding YUV Files with FFmpeg and Converting to Y4M – I just finished a project that involved encoding lots of downloaded YUV test files, which is something I never tried before. The problem is that there’s no resolution or frame rate information in the file header, so you have to detail all this in the command string. This article details how to convert YUV files to Y4M (and why you want to).

FFmpeg to the Rescue: Muxing Audio and Video Files – Unfortunately, my download tool, Wondershare’s excellent video converter, downloaded separate audio and video streams, the video in an MP4 wrapper and the audio as an MP3 file. So I had to mux the two to input them into PowerPoint. Here’s how I did it.

An FFmpeg Script to Render and Package a Complete HLS Presentation – So, the object of the exercise is a single FFmpeg script that encodes your files and creates the necessary master and media playlists. I took an initial stab here, but wound up with a script, “as ugly as someone else’s baby, particularly the need to duplicate the input file four times for the four streams.” Here’s a more elegant script that works much better. You can view and copy the script here.

Convert a Windows Folder With a One-Line For Loop FFmpeg Command – I just finished my Produce Videos with FFmpeg course which I recorded with Camtasia, edited in Adobe Premiere Pro, and output in the Adobe Media Encoder (AME). I outputted from AME at about 10 Mbps to ensure quality, but now I’m left with 3 GB of files to upload. I know the data rate is unnecessarily high, but AME doesn’t offer a mode like Constant Rate Factor which will ensure quality at a much lower bitrate. So, I created a one-line batch file to encode these files to CRF using FFmpeg.

Encoding VP9 in FFmpeg: An Update – This is a long post only of interest to those attempting to optimize their VP9 encodes. The three key takeaways are 1) use the command script shown on the bottom of the page, 2) a speed setting of 2 offers the optimal quality/performance tradeoff, and 3) the row-mt setting improves performance significantly with zero quality loss when multiple unused cores are available.

About Jan Ozer

Avatar photo
I help companies train new technical hires in streaming media-related positions; I also help companies optimize their codec selections and encoding stacks, and evaluate new encoders and codecs.

Check Also

Does FFmpeg 5 Break Your Scripts?

FFmpeg turns 5.0; the new release has big API changes but doesn’t appear to break …