FFmpeg is often called the Swiss Army knife of video transcoding/streaming. It is one of the most popular multimedia frameworks out there, which is free, open-source, and cross-platform. FFmpeg is used by many popular and important applications and services, such as YouTube, iTunes, and VLC.
For its support of a wide range of codecs and containers, FFmpeg is the most commonly used tool for transcoding/converting audio/video from one format to another. It has a huge collection of filters that can be combined to manipulate and transform media in many different ways.
This course aims to be your comprehensive guide into the world of FFmpeg. The sections of this course are carefully planned to make it very easy to get started with FFmpeg in a short time. The lectures are organized with diagrams and hands-on examples, so that you can master the core concepts of FFmpeg in order to build complex media manipulation pipelines with efficiency.
By the end of this course, you will have a clear understanding about how FFmpeg works and how to put FFmpeg commands together to perform media processing tasks like transcoding, streaming, and other workflows.
Prerequisites
There are no prerequisites for this course. No prior knowledge of video, transcoding, or FFmpeg is needed. All you need is a working terminal where you can practice the commands yourself.
Objectives
Get a good overview of FFmpeg and its applications.
Set up FFmpeg on popular operating systems.
Inspect any media with ffprobe to extract valuable information.
Play audio/video with ffplay from the command line.
Learn the basics of audio/video, codecs, and containers.
Understand what happens during transcoding.
Have a crystal clear understanding of FFmpeg architecture and internal pipeline.
Construct complex filter graphs to manipulate media.
Learn about different inputs, outputs, and stream selection.
Understand factors for choosing a codec.
Encode audio/video using various codecs with FFmpeg.
Learn and apply rate control techniques and additional details for H.264 encoding.
Understand how media streaming works
Learn about popular streaming protocols including RTMP, SRT, HTTP
Learn details about progressive download of single-quality media
Understand adaptive streaming concepts
Learn about HLS and MPEG-DASH
Grasp the details around encoding media for adaptive streaming
Generate HLS and MPEG-DASH streams with FFmpeg
Learn about some very useful and practical applications where FFmpeg can be used.
Perform common video manipulation tasks by constructing filter graphs with FFmpeg.
Separate, mix, and manipulate audio with FFmpeg audio filters.
What is NOT covered in this course (yet)
Building FFmpeg from source code - this is not covered
Using FFmpeg libraries separately from your code - this is not covered. Only command-line examples are shown.
It is nearly impossible to discuss all the details of all codecs, containers, and filters. So only a few common ones are discussed, so that you can apply the same concepts for others.
Who this course is for
Anyone who wants to know about and work with audio/video, streaming, and FFmpeg
Developers/engineers working with audio/video (or even image) in any way
System integrators or administrators dealing with multimedia and streaming
Take a look at the course outline for examples of what FFmpeg can be used for. If you have a similar requirement and would like to learn the tricks along with a bunch of other cool stuff, this course is for you!
Money-back guarantee
If you are not satisfied with the course for some reason, I offer a 30-day money-back guarantee.
Instructor
My name is Andaleeb (Syed Andaleeb Roomy). I have been working as a software engineer professionally for more than 14 years. My experience includes diverse domains and complex software systems, including video transcoding, broadcast asset management workflows, VoIP, SaaS, AWS, cloud, microservices, and network communication solutions. I have been using FFmpeg to build transcoding pipelines for supporting many different media asset management workflows including search, transcription, proxy and editing.