We may earn an affiliate commission when you visit our partners.
Course image
Syed Andaleeb Roomy

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.

Read more

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

  • 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.

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Learning objectives

  • Have a crystal clear understanding of ffmpeg architecture and internal pipeline.
  • Construct complex filter graphs to manipulate media.
  • Understand what happens during transcoding.
  • 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.
  • 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.
  • Show more
  • Show less

Syllabus

Get a good overview of FFmpeg and its applications. Set up FFmpeg on popular operating systems.

Brief discussion about what is covered in this section.

Read more

Discussion about FFmpeg and its applications, libraries and tools.

  • Discuss FFmpeg builds.

  • Demo of setting up FFmpeg on macOS, Ubuntu, and Windows.

FFmpeg Basics
Inspect any media with ffprobe to extract valuable information. Play audio/video with ffplay from the command line.

How to use ffprobe to extract valuable information about audio/video

Examples of using ffplay as a simple media player to preview audio/video from command-line

ffprobe and ffplay
Learn the basics of audio/video, codecs, and containers. Understand what happens during transcoding.

Demo of using the overlay filter to put image/video on top of another media, for example as watermark/picture-in-picture.

Revise basic concepts and building blocks of image, audio and video

Explain codecs and container formats with examples.

Discussion to explain what is meant by transcoding and the other operations that can happen during transcoding.

Media Concepts
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.
  • Basic transcoding flow in FFmpeg

  • Demuxing and muxing containers

  • Decoding and encoding with codecs

  • Filters in the flow


Brief discussion about the supported protocols, devices and formats, with a few use cases.

  • Different syntaxes for selecting a stream and mapping a stream to output.

  • Demo with command-line examples.

Explaining what filters are, how to specify options for filters, how to use labels to refer to inputs and outputs of filters, and how to form a filter chain.

Discuss the details of building complex filter graphs with examples and diagrams.

FFmpeg Concepts
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 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.

Encoding
Streaming
  • What is streaming, and what is not

  • Ingest and delivery

  • Qualities of a great streaming experience

  • Instant start, random seek, adapt to changing conditions

  • Demo: different streaming experiences to illustrate the concepts

Introduction to Streaming
  • Communication protocols

  • RTMP, HTTP, SRT

  • Popularly used protocols for ingest and distribution

  • Demo: produce and consume RTMP, SRT and HTTP streams with FFmpeg

Streaming Protocols
  • Benefits of single-file media

  • Structure of MP4 / MOV

  • Position of the MOOV atom

  • Demo: playback experience with combinations of seekable/non-seekable servers and fast-started/non-fast-started media

  • Demo: check atom positions with FFmpeg

  • Demo: fast-starting with FFmpeg

Progressive Download
  • The problem with single-quality media explained with graphs and demo

  • Adaptive streaming with multiple variants

  • Graphs and demos showing adaptation based on bandwidth and resolution

  • Segmented media



Adaptive Streaming
  • History of HLS and DASH

  • Proprietary vs standard

  • Common characteristics

  • Browsers, codecs, and containers

  • Manifests

  • Demo: sample files of a multi-bitrate HLS and DASH stream

HLS & DASH
  • Frame types - I, P, B

  • GOP structures

  • Segment independence and duration

  • Encoding efficiency vs switching

  • Codecs

  • Containers - TS vs fMP4

  • HLS vs DASH

  • HLS + DASH with common media segments

Encoding Considerations

Demo and explanation of FFmpeg commands generating various combinations of adaptive streams.

  1. HLS with TS segments (audio and video together)

  2. HLS with TS segments (audio and video separate)

  3. HLS with fragmented MP4 segments

  4. DASH with fragmented MP4 segments

  5. HLS and DASH with common fMP4 segments

Perform common video manipulation tasks by constructing filter graphs with FFmpeg. Learn about some very useful and practical applications where FFmpeg can be used.

Demo of cutting a shorter clip from a longer media.

Demo of stitching multiple clips together into a single clip.

Demo of generating thumbnails and poster frames

Demo of resizing a video, discussing aspect ratio issues and pad filter.

Demo of using the drawtext filter to show a text or timecode on top of a video, with tricks for styling and animating it.

Separate, mix, and manipulate audio with FFmpeg audio filters.

Demo of extracting audio channels from a media.

Demo of mixing audio channels from multiple sources into combined output.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Provides a comprehensive overview of FFmpeg, making it suitable for beginners looking to get started with audio and video manipulation
Covers advanced topics like filter graphs and H.264 encoding, making it suitable for intermediate learners
Instructors are experienced professionals in video transcoding and streaming, ensuring the course is up-to-date and relevant to industry practices
The course includes demonstrations and hands-on examples throughout, making the learning process more interactive and engaging
Covers topics such as media streaming and adaptive streaming, which are in high demand in the industry
Provides a good foundation for those interested in video production, editing, and streaming

Save this course

Save FFmpeg - The Complete Guide 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 - The Complete Guide with these activities:
Develop a video encoding and streaming application
Apply your knowledge by creating a real-world application that leverages FFmpeg for video encoding and streaming. This will demonstrate your ability to integrate FFmpeg with other technologies and solve practical problems.
Show steps
  • Design the architecture of the application, including input sources, encoding profiles, and streaming protocols.
  • Implement the application using FFmpeg and other necessary libraries.
  • Test and evaluate the performance of the application under different conditions.
Show all one activities

Career center

Learners who complete FFmpeg - The Complete Guide 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 - The Complete Guide.
Audio Programming with NAudio 1
Most relevant
FFmpeg for Adaptive Bitrate Production
Most relevant
Internet of Things: Multimedia Technologies
Most relevant
FFmpeg | Batch Modify Thousands of Videos Quickly and...
Most relevant
Learn Open Broadcaster Software - OBS Live Streaming...
Most relevant
vMix Master Class - Video Production & Live Streaming
Most relevant
Interactive HTML5 Video and Audio
Most relevant
Working with Audio and Video in Web Pages
LIVE Streaming Masterclass: Start Live Streaming like a...
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