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