Jan Ozer's new book, Video Encoding by the Numbers: Eliminate the Guesswork from Your Streaming Video, is a wonderful resource for anyone doing video compression, from beginner to advanced.
That in itself would make this book tremendously valuable, but Ozer has augmented the text in two important ways -- by providing extensive examples of using FFmpeg to batch process videos, and by demonstrating the application of objective quality metrics to analyze the video and report its visual quality.
For too long, video compression has seemed to be a form of alchemy, with extensive folklore of mystic incantations required to produce video gold. Even if you could successfully penetrate the basic secrets (including formats and codecs and rates, CBR vs VBR, kbps vs bpp), you would only discover even more obscure deeper levels of parameters (including GOP structure, I-B-P, IDR, and adaptive streaming).
And even if you get the formula correct, how can you then package it up for use, and verify that it's working properly? Video Encoding by the Numbers attacks all these issues, end to end.
First, Ozer covers the basics of video compression and associated tools. He does not just provide advice, he backs it up by discussing the results of his extensive testing of compression tools and options with real-world videos. This work is based on his background in video shooting and production, in reviewing and testing video tools, in consulting to build real-world solutions for compression pipelines, and then sharing his discoveries -- in articles, talks, on his Streaming Learning Center website, and in his books.
Then, to package up the compression process, Ozer demonstrates how to use the free cross-platform FFmpeg tool to perform batch compression, providing example scripts with each technical chapter, again tempered with discussions of his experience in experimenting with the various options.
And most importantly, Ozer grounds the compression process in science by applying objective quality metrics that analyze the video and report its visual quality. This is a huge advance driven by new metrics and tools, moving from simple PSNR to newer metrics including VQM and SSIM. Now you no longer need to sit and watch each compressed video you produce in order to check them (which obviously becomes impossible with multiple output formats and resolutions). Instead, Ozer shows how to use these tools to look for anomalies, and then focus in on the trouble spots.
As a further example of the exhaustive coverage in this book, the final section covers scaling up to streaming delivery, exploring adaptive bitrate approaches, discussing setting up your "encoding ladder" for streaming formats and resolutions, and then concluding by discussing the importance of per-title encoding, using these tools and metrics to find the best solution for each individual video.
It's hard to overstate the usefulness of this book -- as a reference for understanding compression technology and trade-offs, as a checklist for best practices, as a guide to more efficient batch compression, and as a path forward to a more scientific and objective approach to video compression.
In my case, Jan kindly provided an electronic copy of the book for review (available in PDF format), and I quickly purchased two more paper copies, one to keep and one to share. The book is available for $49.95, and the PDF download is $39.95. It's 330 pages with extensive discussion, tables of test results, screenshots of tools, and, of course, example video frames. Now you too can transform your video clips into compressed gold.
See more on the book at Ozer's StreamingLearingCenter.com site.
Find Video Encoding by the Numbers on Amazon.com
Introduction: Objective Quality Metrics
Section I: Introduction
Chapter 1: Technology Fundamentals
Chapter 2: Basic File Parameters
Chapter 3: Essential Tools
Chapter 4: Testing Overview
Chapter 5: Working with MSU VQMT
Chapter 6: Working with SQM
Section II: General Application
Chapter 7: Choosing Data Rate
Chapter 8: Bitrate Control
Chapter 9: I-, B-, P-, and Reference Frames
Section III: Codec-specific Application
Chapter 10: Encoding H.264
Chapter 11: Encoding HEVC
Chapter 12: Encoding VP9
Section IV: Multiple-screen Adaptive Bitrate Delivery
Chapter 13: Choosing an ABR Technology
Chapter 14: Configuring Your Encoding Ladder
Chapter 15: Encoding and Packaging ABR Streams
Chapter 16: Per-title Encoding