Learn to Produce Video with FFmpeg in 30 Minutes or Less: 2018 Edition

The internet is full of free FFmpeg documentation. Why should you pay $34.95 for my book (or $29.95 for the PDF)?

Because it will help you get your work done fast and get it right the first time.

This book eliminates the time you’d spend hunting for answers on Superuser or Stack Overflow and teaches you to make informed encoding decisions about video quality, compatibility, and deliverability. You can fast-track your projects by downloading 58 batch files that detail each configuration option, as well as the media files used in the book, so you can verify operation using the same command lines and assets used in the book. This book will save you time and ensure that you produce optimal quality videos for single file or adaptive bitrate delivery.

Think about it. While many sites provide good how-to advice regarding a single FFmpeg option, you need a complete argument that configures all the files in your adaptive group. You need the complete picture. This book walks you through all relevant options from simple (like resolution) to complex (creating HLS and DASH manifests) so you can efficiently and effectively produce videos that look great, stream efficiently, and play well on their target platforms.

(Review edited for presentation-use janozer@gmail.com if you haven’t gotten the batch files).

In short, finish your work more quickly and get it right the first time.

The Elevator Pitch (40 words or less)

Learn to produce single files and adaptive groups for HLS and DASH with H.264, HEVC, and VP9

Get documentation for all relevant configuration parameters (with a table of contents and index)

Download all batch files to speed your work

28 Years of Encoding Expertise Delivered in 30 Minutes

I’m Jan Ozer. I’ve been compressing video since 1991, back when we loaded the videos on a CD-ROM. This was before DVDs. I’ve been encoding for streaming since 1996. I’m a contributing editor to Streaming Media Magazine, and I’ve written over 25 books on some aspect of streaming or video production, including several that have been used as textbooks in colleges and universities.

Let me explain why I learned how to use FFmpeg. A recent passion has been computing and using objective quality metrics like PSNR and VMAF. These predict how subjective viewers will rate video quality and convert opinions into quantified conclusions. Consider the graph below, which displays the output quality (in blue) and encoding time (in red) of the ten x264 presets in FFmpeg.

You can see that you get close to 100% of output quality using the Faster preset in a fraction of the time of higher-quality presets. So, if you’re currently using the Slower preset, and need to free up capacity, you can switch to the Faster preset with minimal quality loss. That’s what objective benchmarks do for you. This graph is in the FFmpeg book as well, by the way, as well as dozens like it.

Back in 2015, I started a book titled Video Encoding by the Numbers: Eliminate the Guesswork from Your Streaming Video. My goal was to quantify every encoding decision using objective benchmarks to allow readers to make the most informed decisions possible. To accomplish this, I needed data. For example, the chart above shows the average values for eight 2-minute test files, each encoded ten different times for each preset. That’s 80 encodes and that’s just one of the hundreds of charts or tables in the book.

What’s New? The 2018 edition adds instruction on:

Packaging to DASH and HLS formats with open-source tool Bento4

How to create a hybrid HEVC/H.264 encoding ladder for HLS deployment

How to encode and package VP9 files into DASH format with FFmpeg 4.0

How to transcode inputs into multiple files simultaneously using the H.264, HEVC, and VP9 codecs for live ABR streaming

Encoding to the Alliance for Open Media AV1 format with FFmpeg 4.0.

Three Plus Years of FFmpeg Experience (With Some Great Help)

Here’s the FFmpeg part. To provide the data, I decided to use FFmpeg. As I wrote each chapter, I detailed the FFmpeg configuration options for that chapter, starting with simple options like resolution and data rate, and working through creating full HLS and DASH file groups with chunked files and the necessary manifest files.

I published Encoding by the Numbers in 2016. Since then, I have taught seminars on encoding with FFmpeg at several Streaming Media conferences, including the presentation below. I presented with colleagues from RealEyes Media, who serve clients like Major League Baseball (MLBAM), Adobe, Oracle, and others. Working with these pros provided a real real-world perspective and accelerated my FFmpeg learning.

In June 2017, I published the first edition of Learn to Produce Video with FFmpeg in 30 Minutes or Less, which combines a subset of compression-related information with all the FFmpeg instruction in Encoding by the Numbers and some additional operations. Plus, all the batch and media files. In August 2018, I released an update to the book for FFmpeg 4.0, covering even more FFmpeg operation and adding instruction on Bento4, which is the easiest way to package files for HLS and DASH delivery.

Here’s what you will learn:

Streaming fundamentals, including terms and concepts relating to single-file and adaptive bitrate streaming

How to install FFmpeg on Windows, Mac, and Linux computers

Fundamentals of command line processing and batch file creation

Single- and dual-pass encoding with FFmpeg

How to choose the optimal configurations for resolution, data rate, frame settings, bitrate control and other common encoding options

How to encode to H.264 (x264), HEVC (x265), and VP9 compression formats

How to segment and package video for delivery via HLS using FFmpeg, Bento 4 and Apple Media File Segmenter and Variant Playlist Creator

How to create a hybrid HEVC/H.264 encoding ladder for HLS deployment

How to encode and package VP9 files into DASH format with FFmpeg 4.0

How to transcode inputs into multiple files simultaneously using the H.264, HEVC, and VP9 codecs for live ABR streaming

How to encode using the new Alliance for Open Media AV1 format with FFmpeg 4.

A downloadable zipped file includes all (Windows) batch files used in the book, which you can easily adapt for your own use, and a detailed Table of Contents and Index will help you find what you need (to receive the zip file, email your proof of purchase of the PDF or paperback version to janozer@gmail.com).

What’s in the Book?

Chapter 1 is the primer on streaming technology, covering terms and concepts like single and adaptive bitrate streaming, codecs and container formats, and common encoding parameters like resolution, data rate, and frame rate. This will help those unfamiliar with streaming technology get up to speed fast.

Next is a chapter on encoding HEVC with x265, which includes direction for creating, encoding, and packaging a hybrid HEVC/H.264 ladder for HLS distribution. Then a chapter on VP9, which includes how to encode and package for DASH distribution. The final chapter covers miscellaneous operations like transcoding live with H.264, HEVC, and VP9, concatenating multiple files, encoding with the new AV1 codec, and computing PSNR with FFmpeg.

Each batch file is presented and labeled separately, and you can download the batch and media files to verify operation. Screens in the book show exactly what you did so you can see how one alternative differs from another.

You’ll learn to make intelligent decisions regarding your streaming video and how to produce top-quality video files and DASH and HLS adaptive groups with FFmpeg, Bento4, and the Apple HLS tools. You’ll get the batch files, so you can quickly put it all to good use. All for $29.95.