← Bookmarks 📄 Article

GitHub - leandromoreira/ffmpeg-libav-tutorial: FFmpeg libav tutorial - learn how media works from basic to transmuxing, transcoding and more

A hands-on tutorial that teaches video fundamentals by building with FFmpeg's libav libraries—learn how codecs, containers, and encoding actually work through real C code, not just theory.

· software engineering
Read Original
Listen to Article
0:000:00
Summary used for search

• Teaches digital media concepts (codecs, containers, encoding) through practical FFmpeg/libav implementation in C
• Starts from "what is video" basics and progresses to transmuxing, transcoding, and streaming operations
• Bridges the gap between using FFmpeg CLI commands and understanding what's actually happening under the hood
• Includes working code examples for the full video pipeline: decoding, encoding, container manipulation
• Available in 7+ languages (English, Chinese, Korean, Spanish, Vietnamese, Portuguese, Russian)

This tutorial takes a learn-by-building approach to understanding digital media by working directly with FFmpeg's libav libraries. Rather than treating video processing as a black box you interact with via CLI commands, it teaches the underlying concepts—what codecs are, how containers work, the difference between encoding and transcoding—by showing you the actual C code that implements these operations.

The progression is methodical: starting from foundational questions like "what is video" and "what is a codec," it builds up to practical operations like transmuxing (changing containers without re-encoding), transcoding (converting between codecs), and handling streaming protocols. Each concept is paired with working code examples using FFmpeg's libav API, so you see both the theory and the implementation simultaneously.

The tutorial's value is in demystifying the video pipeline. If you've used FFmpeg commands without understanding what's happening, or want to build custom video processing tools, this gives you the mental model and practical foundation. The fact it's been translated into 7+ languages suggests it's become a go-to resource for developers worldwide who need to work with video programmatically.