We may earn an affiliate commission when you visit our partners.
Course image
Jan Ozer

This course will teach you how to produce high-quality video with H. You'll become proficient in FFmpeg and will learn the key fundamentals of video compression, encoding, and adaptive bitrate packaging.

Read more

This course will teach you how to produce high-quality video with H. You'll become proficient in FFmpeg and will learn the key fundamentals of video compression, encoding, and adaptive bitrate packaging.

The course includes downloadable batch files to accelerate learning and production with PDFs of all lesson files for printing and note-taking. It also includes a free PDF copy of my book, Learn to Produce Video with FFmpeg: In Thirty Minutes or Less (2018 Edition), a $34.95 value (check it out on Amazon).

The course starts with the technology primer that covers the basics of compression and encoding. Then it details how to install FFmpeg on Windows, Mac, and Linux computers and provides an overview of batch operation on those platforms.

The next section covers generic file configuration options you'll use for all codecs, including lessons on bitrate control, resolution, frame rate, I-, B-, P- and reference-frame settings. These are followed by lessons on H.264 and HLS, including instructions on how to use Bento4 to package for DASH and HLS. 

The next sections detail how to encode and package with HEVC and how to encode with VP9. The final section details how to use line continuation characters in your FFmpeg scripts and concludes with a lesson on live encoding with H.264.

Enroll now

What's inside

Learning objectives

  • Use ffmpeg to encode to h.264, hevc, and vp9 outputs
  • Create an encoding ladder for hls and dash distribution
  • Install ffmpeg on windows, mac, and linux
  • Create and run ffmpeg command strings on windows and mac platforms
  • Understand video encoding basics like codecs, container formats, and encoding parameters like resolution, frame rate, and data rate.

Syllabus

Introduction

Compressed files are comprised of three frame types, I-frames, B-frames, and P-frames. In this lesson, you’ll learn what each are and why they are important.

Read more
Video BootCamp
Introduction to FFmpeg Operation

This lesson introduces you to basic FFmpeg operation. You'll learn which switches you need to include in your command strings and what happens when you don't.

In this lesson, you'll learn how to install FFmpeg on a Windows 10 computer and how to include FFmpeg in the path so you can run programs from any folder on any drive without including FFmpeg's address information in the command.

This lesson introduces you to command strings and batch files and details your options for running them in Windows.

You can download the batch files used below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

You can change the names for use with your own files or download shortened versions of the test files from:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

Note that the batch files are saved in Windows format. If you try to use it on the Mac or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

This lesson helps you get FFmpeg installed on the Mac and introduces you to command line and batch operation on the Mac platform.

You can download the batch files used below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

You can change the names for use with your own files or download shortened versions of the test files from:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

Note that the batch files are saved in Mac format. If you try to use them on Windows or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

Installing and Batch Operations on Linux
Generic File Configuration Options

In this lesson, you’ll learn how to choose a codec and container format in FFmpeg. You’ll also learn which parameters FFmpeg uses when you don’t assign them in a command string, which will help you create the most efficient command scripts possible.

You can download the batch files used below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

You can change the names for use with your own files or download shortened versions of the test files from:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

Note that the batch files are saved in Windows format. If you try to use it on the Mac or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

In this lesson, you’ll learn the difference between constant bitrate (CBR) and variable bitrate (VBR) encoding, and how the two techniques impact quality and file deliverability. You’ll also learn what the Video Buffering Verifier is and how it affects bitrate control.

In this lesson, you’ll learn how to encode using CBR and VBR.

You can download the batch files used below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

You can change the names for use with your own files or download shortened versions of the test files from:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

Note that the batch files are saved in Windows format. If you try to use it on the Mac or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

Constant Rate Factor (CRF) is a bitrate control mode available for x264, x265, and VP9 that can be used as a mechanism for per-title encoding. In this lesson, you’ll learn what CRF and capped CRF are, and how to use them.

You can download the batch files used below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

You can change the names for use with your own files or download shortened versions of the test files from:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

Note that the batch files are saved in Windows format. If you try to use it on the Mac or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

There’s a simple way and a complex way to choose video resolutions. In this lesson, you’ll learn the simple way, which you can use when encoding files to the same display aspect ratio as the original.

You can download the batch files used below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

You can change the names for use with your own files or download shortened versions of the test files from:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

Note that the batch files are saved in Windows format. If you try to use it on the Mac or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

The simple technique learned in the previous chapter doesn’t work when the display aspect ratio changes between the source and output file, which often occurs when encoding 4K source footage. In this lesson, you’ll learn four alternatives for dealing with this scenario, including how to crop and letterbox.

You can download the batch files used below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

You can change the names for use with your own files or download shortened versions of the test files from:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

Note that the batch files are saved in Windows format. If you try to use it on the Mac or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

This simple lesson details how to control the framerate in FFmpeg, and when you might want to change it.

You can download the batch files used below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

You can change the names for use with your own files or download shortened versions of the test files from:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

Note that the batch files are saved in Windows format. If you try to use it on the Mac or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

This lesson details how to set I-frame-related parameters with FFmpeg, including I-frame interval. minimum I-frame interval, and the threshold for scene-change detection.

You can download the batch files used below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

You can change the names for use with your own files or download shortened versions of the test files from:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

Note that the batch files are saved in Windows format. If you try to use it on the Mac or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

B-frames are the most efficient frames in the compressed file. In this lesson, you’ll learn how to choose and implement the optimal B-frame interval.

You can download the batch files used below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

You can change the names for use with your own files or download shortened versions of the test files from:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

Note that the batch files are saved in Windows format. If you try to use it on the Mac or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

Reference frames control encoding time and quality. In this lesson, you’ll learn how to choose the optimal reference frame setting for your quality and throughput.

You can download the batch files used below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

You can change the names for use with your own files or download shortened versions of the test files from:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

Note that the batch files are saved in Windows format. If you try to use it on the Mac or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

Encoding AAC Audio

Unless you’re producing silent movies, you need to know how to encode audio as well as video. In this lesson, you’ll learn how to choose the right audio codec and set critical audio-related encoding parameters like channel, sample rate, and bitrate.

You can download the batch files used below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

You can change the names for use with your own files or download shortened versions of the test files from:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

Note that the batch files are saved in Windows format. If you try to use it on the Mac or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

Two-Pass Encoding

This lesson covers when to use two-pass encoding, the basic syntax, and which parameters must be in the first and second pass.

You can download the batch files used below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

You can change the names for use with your own files or download shortened versions of the test files from:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

Note that the batch files are saved in Windows format. If you try to use it on the Mac or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

Two-Pass Encoding - Windows, Mac, Linux

When producing DASH and HLS, you may need separate audio and video files. In this lesson, you’ll learn how to produce them.

You can download the batch files used below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

You can change the names for use with your own files or download shortened versions of the test files from:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

Note that the batch files are saved in Windows format. If you try to use it on the Mac or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

Working with H.264

All previous lessons have been general and apply to most codecs. Now it’s time to dive into producing H.264. In this lesson, you’ll learn what H.264 is, and how it differs from x264.

You can download the batch files used and the presentation below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

Since this is a Windows script, it’s saved in Windows format. If you try to use it on the Mac or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

H.264 profiles control quality and compatibility. In this lesson, you’ll learn how to choose the appropriate profile for all the rungs in your ABR ladder.

You can download the batch files used below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

You can change the names for use with your own files or download shortened versions of the test files from:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

Note that the batch files are saved in Windows format. If you try to use it on the Mac or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

H.264 levels impact compatibility, primarily with mobile. Here you’ll learn how to choose and implement the proper level.

You can download the batch files used below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

You can change the names for use with your own files or download shortened versions of the test files from:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

Note that the batch files are saved in Windows format. If you try to use it on the Mac or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

There are two entropy coding techniques in H.264; CABAC, and CAVLC. In this lesson, you’ll learn which to choose for your encoded H.264 files and how to do so in FFmpeg.

You can download the batch files used below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

You can change the names for use with your own files or download shortened versions of the test files from:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

Note that the batch files are saved in Windows format. If you try to use it on the Mac or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

x264 is an H.264 codec accessible in FFmpeg and the x264 preset controls the tradeoff between encoding time and quality. This lesson reviews that tradeoff and shows how to select the x264 preset. Note that if you're using a different H.264 codec accessible from FFmpeg, like the NVIDIA codec, you'll use different terms to control the preset. The ultrafast - placebo settings are particular to x264 and the x265 HEVC codecs.

You can download the batch files used below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

You can change the names for use with your own files or download shortened versions of the test files from:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

Note that the batch files are saved in Windows format. If you try to use it on the Mac or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

Producing Adaptive Bitrate Video

This short introduction lesson teaches you how adaptive bitrate (ABR) technologies work, and the type of files you need to produce to make them work.

Manually Creating the Master Manifest File for HLS

You have multiple options for creating your master manifest file; you can create it by hand, create it in FFmpeg, or create it in Bento4. This lesson covers creating it by hand, which I don't recommend you do unless you absolutely have to.

Other lessons:

- Creating HLS output with master manifest in FFmpeg
- Producing HLS output from H264 files with Bento4 (mp4hls) to convert your existing MP4 files to HLS presentations
- Producing HLS/DASH output from H264 files with Bento4 to create an ABR package for DASH and HLS

Bento4 is a fabulous tool for creating HLS and DASH output from files that you've encoded. When I originally created this course, you needed to use Python 2.7 with Bento4. Since then, Bento4 has moved on to Python 3.x

In this lesson, you'll learn how to install Python 3.8 and Bento4 on a Windows 10 Computer, including how to insert Bento4 into your path to simplify operation. You'll need to install Bento4 before running any of the subsequent lessons regarding Bento4.

There are two batch files that I use to test the installation. If you'd like to follow along, you can download them here:

http://forpub.s3.amazonaws.com/Batch11_3.zip

https://forpub.s3.amazonaws.com/Batch11_5.zip

Bento4 is absolutely the easiest way to create HLS output from H264 files encoded in FFmpeg. In this lesson, you'll learn how to create HLS presentations from existing MP4 files with the mp4hls module.

You can download the source files and scripts here:

http://forpub.s3.amazonaws.com/Batch11_3.zip

Note that these are Windows scripts so you should save them into Mac or Linux formats for use on those platforms.

Producing HLS/DASH output from H264 files with Bento4 (mp4dash)

Bento4 is absolutely the easiest way to create DASH, HLS, or combined output from H264 files encoded in FFmpeg. In this lesson, you'll learn what Bento4 is, how to install it, and how to create DASH/HLS presentations with the mp4dash module.

You can access the files that I used in the lesson here:

http://forpub.s3.amazonaws.com/Batch11_4.zip

http://forpub.s3.amazonaws.com/Batch11_5.zip

Note that these are Windows scripts so you should save them into Mac or Linux formats for use on those platforms.

Encoding HEVC

This lesson will introduce you to HEVC/H.265. You'll learn what it is, what it costs, what it's good for, and when to avoid using it.

HEVC is the next-generation standards-based codec. In this lesson, you’ll learn what it is, and how to produce HEVC encoded video in FFMpeg.

You can download the batch file used below. Be sure to grab the command strings from the batch file and not the presentation because between PowerPoint and creating the PDF, spurious characters could get into the script, interfering with operation.

You can change the names for use with your own files or download shortened versions of the test files from:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

Note that the batch files are saved in Windows format. If you try to use it on the Mac or Linux be sure to save the file into those formats; otherwise line feed characters may interfere with operation.

Producing Hybrid HEVC/H264 HLS Presentations

In this lesson, you'll learn how to create a hybrid HLS presentation with HEVC files for newer devices and H.264 files for legacy devices. You'll learn Apple's requirements for creating hybrid presentations and different approaches for building your encoding ladder.

In the next lecture, I'll actually create the combined presentation.

In the previous lesson, you learned how H.264 and HEVC can be included in the same encoding ladder. In this lesson you'll see it done, and can download batch files for encoding, creating the fragmented MP4 files, and creating the packaging.

You can access the source file that I used in the lesson here:

http://forpub.s3.amazonaws.com/FFmpeg_Source_files.zip

The batch files are below. Note that these are Windows scripts so you should save them into Mac or Linux formats for use on those platforms.

Encoding VP9

This lesson will introduce you to VP9. You'll learn what it is, what it costs, what it's good for, and when to avoid using it.

Encoding with VP9 - The Basics

This is an advanced VP9 lecture from a webinar I hosted in mid-2021. It goes into much greater detail with VP9; probably more than you want to know. If you're OK with the basics, stick with the previous lecture. If you want your PhD. in VP9 encoding, invest an hour and you'll know as much as anyone.

Live Streaming H.264
Line Continuation Characters

In this lesson, you'll learn how to create multiple streams of live x264 output using FFmpeg.

Note that some of the quality conclusions in the lesson may be incorrect because one of the command strings contained an error. I've fixed the command strings in the downloads so they should work properly.

I apologize for any inconvenience.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops the core skills of encoding video to industry standards with H.264, HEVC, and VP9, as well as creation of adaptive bitrate video
Taught by an industry specialist, Jan Ozer, who is recognized for expertise in video production
Examines industry standards in video delivery, including HEVC and HLS
Develops professional skills in encoding video with popular codecs including H.264, HEVC, and VP9
Offers hands-on labs to demonstrate encoding and packaging video with H.264, HEVC, and VP9
Teaches the process of encoding video to industry standards, including H.264, HEVC, and VP9

Save this course

Save FFmpeg for Adaptive Bitrate Production to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in FFmpeg for Adaptive Bitrate Production with these activities:
Organize Course Notes and Resources
Effectively manage and organize course notes, resources, and materials to enhance your learning experience.
Browse courses on Note-Taking
Show steps
  • Create a system for organizing notes and resources
  • Regularly review and update your notes
  • Make use of digital tools for note-taking and organization
Review FFmpeg Basics
Review the fundamentals of FFmpeg to ensure a strong foundation for the course.
Show steps
  • Read the FFmpeg documentation
  • Watch beginner-friendly FFmpeg tutorials
Attend an Online Video Encoding Meetup
Connect with professionals in the field and exchange knowledge at an online video encoding meetup.
Browse courses on Networking
Show steps
  • Find an online meetup related to video encoding
  • Register and attend the meetup
  • Engage with speakers and participants
Two other activities
Expand to see all activities and additional details
Show all five activities
Create a Short Video Ad
Apply the concepts learned in the course by creating a short video ad to showcase your understanding of H.264 encoding.
Browse courses on Video Editing
Show steps
  • Conceptualize and write the script for the video ad
  • Film and edit the video footage
  • Use FFmpeg to encode the video using H.264
Explore Advanced FFmpeg Features
Expand your knowledge by exploring advanced FFmpeg features that can enhance your video encoding capabilities.
Show steps
  • Learn about and experiment with FFmpeg filters
  • Use FFmpeg to multiplex audio and video streams

Career center

Learners who complete FFmpeg for Adaptive Bitrate Production will develop knowledge and skills that may be useful to these careers:

Reading list

We haven't picked any books for this reading list yet.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to FFmpeg for Adaptive Bitrate Production.
Building Youtube Clone Using Laravel and Livewire
Most relevant
FFmpeg - The Complete Guide
Most relevant
FFmpeg | Batch Modify Thousands of Videos Quickly and...
Most relevant
Encoding Data with R
AR (Augmented Reality) & Video Streaming Services...
Image Noise Reduction with Auto-encoders using TensorFlow
Algorithms Data Structures in Java #2 (+INTERVIEW...
Remote Production: Cloud-Based Broadcasting and IP Video
Mastering the Adobe Media Encoder CC
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser