You are on page 1of 40

FFmpeg - Multimedia hacking for the masses

FFmpeg - Multimedia hacking for the masses

Jai Menon

September 30, 2009

1 / 12
FFmpeg - Multimedia hacking for the masses
Outline

Outline
1 Introduction
History
Current Status

2 Features
Codec Layer — Libavcodec
Container Layer — Libavformat

3 Projects using FFmpeg


Projects using FFmpeg

4 Questions
Questions

2 / 12
FFmpeg - Multimedia hacking for the masses
Introduction

Outline
1 Introduction
History
Current Status

2 Features
Codec Layer — Libavcodec
Container Layer — Libavformat

3 Projects using FFmpeg


Projects using FFmpeg

4 Questions
Questions

3 / 12
FFmpeg - Multimedia hacking for the masses
Introduction
History

History
Started by Fabrice Bellard in 2000.

4 / 12
FFmpeg - Multimedia hacking for the masses
Introduction
History

History
Started by Fabrice Bellard in 2000.
Began with the aim of creating fast/efficient open source
implementations of popular multimedia formats.

4 / 12
FFmpeg - Multimedia hacking for the masses
Introduction
History

History
Started by Fabrice Bellard in 2000.
Began with the aim of creating fast/efficient open source
implementations of popular multimedia formats.
Licensed under LGPL 2.1 (or later)

4 / 12
FFmpeg - Multimedia hacking for the masses
Introduction
Current Status

Current Status
Primary Maintainer and Guru — Michael Niedermayer.

5 / 12
FFmpeg - Multimedia hacking for the masses
Introduction
Current Status

Current Status
Primary Maintainer and Guru — Michael Niedermayer.
Mostly independent of MPlayer, even though most developers
work on both projects.

5 / 12
FFmpeg - Multimedia hacking for the masses
Features

Outline
1 Introduction
History
Current Status

2 Features
Codec Layer — Libavcodec
Container Layer — Libavformat

3 Projects using FFmpeg


Projects using FFmpeg

4 Questions
Questions

6 / 12
FFmpeg - Multimedia hacking for the masses
Features
Codec Layer — Libavcodec

Codec Layer — Libavcodec


Supports a multitude of formats

7 / 12
FFmpeg - Multimedia hacking for the masses
Features
Codec Layer — Libavcodec

Codec Layer — Libavcodec


Supports a multitude of formats
Mainstream formats - Mpeg 1/2/4 Video, H.264

7 / 12
FFmpeg - Multimedia hacking for the masses
Features
Codec Layer — Libavcodec

Codec Layer — Libavcodec


Supports a multitude of formats
Mainstream formats - Mpeg 1/2/4 Video, H.264
Proprietary Formats (through collaborative Reverse
Engineering)

7 / 12
FFmpeg - Multimedia hacking for the masses
Features
Codec Layer — Libavcodec

Codec Layer — Libavcodec


Supports a multitude of formats
Mainstream formats - Mpeg 1/2/4 Video, H.264
Proprietary Formats (through collaborative Reverse
Engineering)
RV30/40, WMA, WMV, Apple Lossless, VP3/5/6 and a lot
more....

7 / 12
FFmpeg - Multimedia hacking for the masses
Features
Codec Layer — Libavcodec

Codec Layer — Libavcodec


Supports a multitude of formats
Mainstream formats - Mpeg 1/2/4 Video, H.264
Proprietary Formats (through collaborative Reverse
Engineering)
RV30/40, WMA, WMV, Apple Lossless, VP3/5/6 and a lot
more....
Misc. codecs like Theora.

7 / 12
FFmpeg - Multimedia hacking for the masses
Features
Codec Layer — Libavcodec

Codec Layer — Libavcodec


Supports a multitude of formats
Mainstream formats - Mpeg 1/2/4 Video, H.264
Proprietary Formats (through collaborative Reverse
Engineering)
RV30/40, WMA, WMV, Apple Lossless, VP3/5/6 and a lot
more....
Misc. codecs like Theora.
Game Formats

7 / 12
FFmpeg - Multimedia hacking for the masses
Features
Codec Layer — Libavcodec

Codec Layer — Libavcodec


Supports a multitude of formats
Mainstream formats - Mpeg 1/2/4 Video, H.264
Proprietary Formats (through collaborative Reverse
Engineering)
RV30/40, WMA, WMV, Apple Lossless, VP3/5/6 and a lot
more....
Misc. codecs like Theora.
Game Formats
Bink, Smacker and more, again through RE efforts.

7 / 12
FFmpeg - Multimedia hacking for the masses
Features
Codec Layer — Libavcodec

Codec Layer — Libavcodec


Supports a multitude of formats
Mainstream formats - Mpeg 1/2/4 Video, H.264
Proprietary Formats (through collaborative Reverse
Engineering)
RV30/40, WMA, WMV, Apple Lossless, VP3/5/6 and a lot
more....
Misc. codecs like Theora.
Game Formats
Bink, Smacker and more, again through RE efforts.

Highly optimized DSP code for most microarchitectures.

7 / 12
FFmpeg - Multimedia hacking for the masses
Features
Codec Layer — Libavcodec

Codec Layer — Libavcodec


Supports a multitude of formats
Mainstream formats - Mpeg 1/2/4 Video, H.264
Proprietary Formats (through collaborative Reverse
Engineering)
RV30/40, WMA, WMV, Apple Lossless, VP3/5/6 and a lot
more....
Misc. codecs like Theora.
Game Formats
Bink, Smacker and more, again through RE efforts.

Highly optimized DSP code for most microarchitectures.


In house codecs — FFV1 and Snow.

7 / 12
FFmpeg - Multimedia hacking for the masses
Features
Container Layer — Libavformat

Container Layer — Libavformat


Aims to support all prominent media containers

8 / 12
FFmpeg - Multimedia hacking for the masses
Features
Container Layer — Libavformat

Container Layer — Libavformat


Aims to support all prominent media containers
MPEG PS, TS and variants

8 / 12
FFmpeg - Multimedia hacking for the masses
Features
Container Layer — Libavformat

Container Layer — Libavformat


Aims to support all prominent media containers
MPEG PS, TS and variants
Matroska

8 / 12
FFmpeg - Multimedia hacking for the masses
Features
Container Layer — Libavformat

Container Layer — Libavformat


Aims to support all prominent media containers
MPEG PS, TS and variants
Matroska
Proprietary Formats like TiVo, RED R3d etc.

8 / 12
FFmpeg - Multimedia hacking for the masses
Features
Container Layer — Libavformat

Container Layer — Libavformat


Aims to support all prominent media containers
MPEG PS, TS and variants
Matroska
Proprietary Formats like TiVo, RED R3d etc.
Game Formats

8 / 12
FFmpeg - Multimedia hacking for the masses
Features
Container Layer — Libavformat

Container Layer — Libavformat


Aims to support all prominent media containers
MPEG PS, TS and variants
Matroska
Proprietary Formats like TiVo, RED R3d etc.
Game Formats
Also includes a very flexible network streaming and subtitle
framework.

8 / 12
FFmpeg - Multimedia hacking for the masses
Projects using FFmpeg

Outline
1 Introduction
History
Current Status

2 Features
Codec Layer — Libavcodec
Container Layer — Libavformat

3 Projects using FFmpeg


Projects using FFmpeg

4 Questions
Questions

9 / 12
FFmpeg - Multimedia hacking for the masses
Projects using FFmpeg
Projects using FFmpeg

Projects using FFmpeg


FFdshow

10 / 12
FFmpeg - Multimedia hacking for the masses
Projects using FFmpeg
Projects using FFmpeg

Projects using FFmpeg


FFdshow
Windows port of (parts) of the FFmpeg code

10 / 12
FFmpeg - Multimedia hacking for the masses
Projects using FFmpeg
Projects using FFmpeg

Projects using FFmpeg


FFdshow
Windows port of (parts) of the FFmpeg code
Became quite popular in the windows world and still is from
what we hear ;)

10 / 12
FFmpeg - Multimedia hacking for the masses
Projects using FFmpeg
Projects using FFmpeg

Projects using FFmpeg


FFdshow
Windows port of (parts) of the FFmpeg code
Became quite popular in the windows world and still is from
what we hear ;)
Perian

10 / 12
FFmpeg - Multimedia hacking for the masses
Projects using FFmpeg
Projects using FFmpeg

Projects using FFmpeg


FFdshow
Windows port of (parts) of the FFmpeg code
Became quite popular in the windows world and still is from
what we hear ;)
Perian
Quicktime component which is similar to FFDshow in its
intent and allows native playback support for a lot of media
not playable out-of-the-box through Qt on MacOS.

10 / 12
FFmpeg - Multimedia hacking for the masses
Projects using FFmpeg
Projects using FFmpeg

Projects using FFmpeg


FFdshow
Windows port of (parts) of the FFmpeg code
Became quite popular in the windows world and still is from
what we hear ;)
Perian
Quicktime component which is similar to FFDshow in its
intent and allows native playback support for a lot of media
not playable out-of-the-box through Qt on MacOS.
Most A/V players (both open as well as commercial)

10 / 12
FFmpeg - Multimedia hacking for the masses
Projects using FFmpeg
Projects using FFmpeg

Projects using FFmpeg


FFdshow
Windows port of (parts) of the FFmpeg code
Became quite popular in the windows world and still is from
what we hear ;)
Perian
Quicktime component which is similar to FFDshow in its
intent and allows native playback support for a lot of media
not playable out-of-the-box through Qt on MacOS.
Most A/V players (both open as well as commercial)
MPlayer :)

10 / 12
FFmpeg - Multimedia hacking for the masses
Projects using FFmpeg
Projects using FFmpeg

Projects using FFmpeg


FFdshow
Windows port of (parts) of the FFmpeg code
Became quite popular in the windows world and still is from
what we hear ;)
Perian
Quicktime component which is similar to FFDshow in its
intent and allows native playback support for a lot of media
not playable out-of-the-box through Qt on MacOS.
Most A/V players (both open as well as commercial)
MPlayer :)
The Videolan project

10 / 12
FFmpeg - Multimedia hacking for the masses
Projects using FFmpeg
Projects using FFmpeg

Projects using FFmpeg


FFdshow
Windows port of (parts) of the FFmpeg code
Became quite popular in the windows world and still is from
what we hear ;)
Perian
Quicktime component which is similar to FFDshow in its
intent and allows native playback support for a lot of media
not playable out-of-the-box through Qt on MacOS.
Most A/V players (both open as well as commercial)
MPlayer :)
The Videolan project
MythTV

10 / 12
FFmpeg - Multimedia hacking for the masses
Projects using FFmpeg
Projects using FFmpeg

Projects using FFmpeg


FFdshow
Windows port of (parts) of the FFmpeg code
Became quite popular in the windows world and still is from
what we hear ;)
Perian
Quicktime component which is similar to FFDshow in its
intent and allows native playback support for a lot of media
not playable out-of-the-box through Qt on MacOS.
Most A/V players (both open as well as commercial)
MPlayer :)
The Videolan project
MythTV
Rockbox

10 / 12
FFmpeg - Multimedia hacking for the masses
Projects using FFmpeg
Projects using FFmpeg

Projects using FFmpeg


FFdshow
Windows port of (parts) of the FFmpeg code
Became quite popular in the windows world and still is from
what we hear ;)
Perian
Quicktime component which is similar to FFDshow in its
intent and allows native playback support for a lot of media
not playable out-of-the-box through Qt on MacOS.
Most A/V players (both open as well as commercial)
MPlayer :)
The Videolan project
MythTV
Rockbox
Xmms2

10 / 12
FFmpeg - Multimedia hacking for the masses
Projects using FFmpeg
Projects using FFmpeg

Projects using FFmpeg


FFdshow
Windows port of (parts) of the FFmpeg code
Became quite popular in the windows world and still is from
what we hear ;)
Perian
Quicktime component which is similar to FFDshow in its
intent and allows native playback support for a lot of media
not playable out-of-the-box through Qt on MacOS.
Most A/V players (both open as well as commercial)
MPlayer :)
The Videolan project
MythTV
Rockbox
Xmms2
insert your favorite player here

10 / 12
FFmpeg - Multimedia hacking for the masses
Projects using FFmpeg
Projects using FFmpeg

Projects using FFmpeg


FFdshow
Windows port of (parts) of the FFmpeg code
Became quite popular in the windows world and still is from
what we hear ;)
Perian
Quicktime component which is similar to FFDshow in its
intent and allows native playback support for a lot of media
not playable out-of-the-box through Qt on MacOS.
Most A/V players (both open as well as commercial)
MPlayer :)
The Videolan project
MythTV
Rockbox
Xmms2
insert your favorite player here
Youtube
10 / 12
FFmpeg - Multimedia hacking for the masses
Questions

Outline
1 Introduction
History
Current Status

2 Features
Codec Layer — Libavcodec
Container Layer — Libavformat

3 Projects using FFmpeg


Projects using FFmpeg

4 Questions
Questions

11 / 12
FFmpeg - Multimedia hacking for the masses
Questions
Questions

Questions
?

12 / 12