FFmpeg - Multimedia Hacking for the Masses

40
FFmpeg - Multimedia hacking for the masses FFmpeg - Multimedia hacking for the masses Jai Menon September 30, 2009 1 / 12

Transcript of FFmpeg - Multimedia Hacking for the Masses

Page 1: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

FFmpeg - Multimedia hacking for the masses

Jai Menon

September 30, 2009

1 / 12

Page 2: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Outline

Outline

1 IntroductionHistoryCurrent Status

2 FeaturesCodec Layer — LibavcodecContainer Layer — Libavformat

3 Projects using FFmpegProjects using FFmpeg

4 QuestionsQuestions

2 / 12

Page 3: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Introduction

Outline

1 IntroductionHistoryCurrent Status

2 FeaturesCodec Layer — LibavcodecContainer Layer — Libavformat

3 Projects using FFmpegProjects using FFmpeg

4 QuestionsQuestions

3 / 12

Page 4: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Introduction

History

History

Started by Fabrice Bellard in 2000.

Began with the aim of creating fast/efficient open sourceimplementations of popular multimedia formats.

Licensed under LGPL 2.1 (or later)

4 / 12

Page 5: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Introduction

History

History

Started by Fabrice Bellard in 2000.

Began with the aim of creating fast/efficient open sourceimplementations of popular multimedia formats.

Licensed under LGPL 2.1 (or later)

4 / 12

Page 6: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Introduction

History

History

Started by Fabrice Bellard in 2000.

Began with the aim of creating fast/efficient open sourceimplementations of popular multimedia formats.

Licensed under LGPL 2.1 (or later)

4 / 12

Page 7: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Introduction

Current Status

Current Status

Primary Maintainer and Guru — Michael Niedermayer.

Mostly independent of MPlayer, even though most developerswork on both projects.

5 / 12

Page 8: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Introduction

Current Status

Current Status

Primary Maintainer and Guru — Michael Niedermayer.

Mostly independent of MPlayer, even though most developerswork on both projects.

5 / 12

Page 9: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Features

Outline

1 IntroductionHistoryCurrent Status

2 FeaturesCodec Layer — LibavcodecContainer Layer — Libavformat

3 Projects using FFmpegProjects using FFmpeg

4 QuestionsQuestions

6 / 12

Page 10: FFmpeg - Multimedia Hacking for the Masses

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.264Proprietary Formats (through collaborative ReverseEngineering)

RV30/40, WMA, WMV, Apple Lossless, VP3/5/6 and a lotmore....

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

Page 11: FFmpeg - Multimedia Hacking for the Masses

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 ReverseEngineering)

RV30/40, WMA, WMV, Apple Lossless, VP3/5/6 and a lotmore....

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

Page 12: FFmpeg - Multimedia Hacking for the Masses

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.264Proprietary Formats (through collaborative ReverseEngineering)

RV30/40, WMA, WMV, Apple Lossless, VP3/5/6 and a lotmore....

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

Page 13: FFmpeg - Multimedia Hacking for the Masses

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.264Proprietary Formats (through collaborative ReverseEngineering)

RV30/40, WMA, WMV, Apple Lossless, VP3/5/6 and a lotmore....

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

Page 14: FFmpeg - Multimedia Hacking for the Masses

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.264Proprietary Formats (through collaborative ReverseEngineering)

RV30/40, WMA, WMV, Apple Lossless, VP3/5/6 and a lotmore....

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

Page 15: FFmpeg - Multimedia Hacking for the Masses

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.264Proprietary Formats (through collaborative ReverseEngineering)

RV30/40, WMA, WMV, Apple Lossless, VP3/5/6 and a lotmore....

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

Page 16: FFmpeg - Multimedia Hacking for the Masses

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.264Proprietary Formats (through collaborative ReverseEngineering)

RV30/40, WMA, WMV, Apple Lossless, VP3/5/6 and a lotmore....

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

Page 17: FFmpeg - Multimedia Hacking for the Masses

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.264Proprietary Formats (through collaborative ReverseEngineering)

RV30/40, WMA, WMV, Apple Lossless, VP3/5/6 and a lotmore....

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

Page 18: FFmpeg - Multimedia Hacking for the Masses

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.264Proprietary Formats (through collaborative ReverseEngineering)

RV30/40, WMA, WMV, Apple Lossless, VP3/5/6 and a lotmore....

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

Page 19: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Features

Container Layer — Libavformat

Container Layer — Libavformat

Aims to support all prominent media containers

MPEG PS, TS and variantsMatroskaProprietary Formats like TiVo, RED R3d etc.Game Formats

Also includes a very flexible network streaming and subtitleframework.

8 / 12

Page 20: FFmpeg - Multimedia Hacking for the Masses

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

MatroskaProprietary Formats like TiVo, RED R3d etc.Game Formats

Also includes a very flexible network streaming and subtitleframework.

8 / 12

Page 21: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Features

Container Layer — Libavformat

Container Layer — Libavformat

Aims to support all prominent media containers

MPEG PS, TS and variantsMatroska

Proprietary Formats like TiVo, RED R3d etc.Game Formats

Also includes a very flexible network streaming and subtitleframework.

8 / 12

Page 22: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Features

Container Layer — Libavformat

Container Layer — Libavformat

Aims to support all prominent media containers

MPEG PS, TS and variantsMatroskaProprietary Formats like TiVo, RED R3d etc.

Game Formats

Also includes a very flexible network streaming and subtitleframework.

8 / 12

Page 23: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Features

Container Layer — Libavformat

Container Layer — Libavformat

Aims to support all prominent media containers

MPEG PS, TS and variantsMatroskaProprietary Formats like TiVo, RED R3d etc.Game Formats

Also includes a very flexible network streaming and subtitleframework.

8 / 12

Page 24: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Features

Container Layer — Libavformat

Container Layer — Libavformat

Aims to support all prominent media containers

MPEG PS, TS and variantsMatroskaProprietary Formats like TiVo, RED R3d etc.Game Formats

Also includes a very flexible network streaming and subtitleframework.

8 / 12

Page 25: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Projects using FFmpeg

Outline

1 IntroductionHistoryCurrent Status

2 FeaturesCodec Layer — LibavcodecContainer Layer — Libavformat

3 Projects using FFmpegProjects using FFmpeg

4 QuestionsQuestions

9 / 12

Page 26: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Projects using FFmpeg

Projects using FFmpeg

Projects using FFmpeg

FFdshow

Windows port of (parts) of the FFmpeg codeBecame quite popular in the windows world and still is fromwhat we hear ;)

Perian

Quicktime component which is similar to FFDshow in itsintent and allows native playback support for a lot of medianot playable out-of-the-box through Qt on MacOS.

Most A/V players (both open as well as commercial)

MPlayer :)The Videolan projectMythTVRockboxXmms2insert your favorite player here

Youtube

10 / 12

Page 27: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Projects using FFmpeg

Projects using FFmpeg

Projects using FFmpeg

FFdshowWindows port of (parts) of the FFmpeg code

Became quite popular in the windows world and still is fromwhat we hear ;)

Perian

Quicktime component which is similar to FFDshow in itsintent and allows native playback support for a lot of medianot playable out-of-the-box through Qt on MacOS.

Most A/V players (both open as well as commercial)

MPlayer :)The Videolan projectMythTVRockboxXmms2insert your favorite player here

Youtube

10 / 12

Page 28: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Projects using FFmpeg

Projects using FFmpeg

Projects using FFmpeg

FFdshowWindows port of (parts) of the FFmpeg codeBecame quite popular in the windows world and still is fromwhat we hear ;)

Perian

Quicktime component which is similar to FFDshow in itsintent and allows native playback support for a lot of medianot playable out-of-the-box through Qt on MacOS.

Most A/V players (both open as well as commercial)

MPlayer :)The Videolan projectMythTVRockboxXmms2insert your favorite player here

Youtube

10 / 12

Page 29: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Projects using FFmpeg

Projects using FFmpeg

Projects using FFmpeg

FFdshowWindows port of (parts) of the FFmpeg codeBecame quite popular in the windows world and still is fromwhat we hear ;)

Perian

Quicktime component which is similar to FFDshow in itsintent and allows native playback support for a lot of medianot playable out-of-the-box through Qt on MacOS.

Most A/V players (both open as well as commercial)

MPlayer :)The Videolan projectMythTVRockboxXmms2insert your favorite player here

Youtube

10 / 12

Page 30: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Projects using FFmpeg

Projects using FFmpeg

Projects using FFmpeg

FFdshowWindows port of (parts) of the FFmpeg codeBecame quite popular in the windows world and still is fromwhat we hear ;)

PerianQuicktime component which is similar to FFDshow in itsintent and allows native playback support for a lot of medianot playable out-of-the-box through Qt on MacOS.

Most A/V players (both open as well as commercial)

MPlayer :)The Videolan projectMythTVRockboxXmms2insert your favorite player here

Youtube

10 / 12

Page 31: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Projects using FFmpeg

Projects using FFmpeg

Projects using FFmpeg

FFdshowWindows port of (parts) of the FFmpeg codeBecame quite popular in the windows world and still is fromwhat we hear ;)

PerianQuicktime component which is similar to FFDshow in itsintent and allows native playback support for a lot of medianot playable out-of-the-box through Qt on MacOS.

Most A/V players (both open as well as commercial)

MPlayer :)The Videolan projectMythTVRockboxXmms2insert your favorite player here

Youtube

10 / 12

Page 32: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Projects using FFmpeg

Projects using FFmpeg

Projects using FFmpeg

FFdshowWindows port of (parts) of the FFmpeg codeBecame quite popular in the windows world and still is fromwhat we hear ;)

PerianQuicktime component which is similar to FFDshow in itsintent and allows native playback support for a lot of medianot playable out-of-the-box through Qt on MacOS.

Most A/V players (both open as well as commercial)MPlayer :)

The Videolan projectMythTVRockboxXmms2insert your favorite player here

Youtube

10 / 12

Page 33: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Projects using FFmpeg

Projects using FFmpeg

Projects using FFmpeg

FFdshowWindows port of (parts) of the FFmpeg codeBecame quite popular in the windows world and still is fromwhat we hear ;)

PerianQuicktime component which is similar to FFDshow in itsintent and allows native playback support for a lot of medianot playable out-of-the-box through Qt on MacOS.

Most A/V players (both open as well as commercial)MPlayer :)The Videolan project

MythTVRockboxXmms2insert your favorite player here

Youtube

10 / 12

Page 34: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Projects using FFmpeg

Projects using FFmpeg

Projects using FFmpeg

FFdshowWindows port of (parts) of the FFmpeg codeBecame quite popular in the windows world and still is fromwhat we hear ;)

PerianQuicktime component which is similar to FFDshow in itsintent and allows native playback support for a lot of medianot playable out-of-the-box through Qt on MacOS.

Most A/V players (both open as well as commercial)MPlayer :)The Videolan projectMythTV

RockboxXmms2insert your favorite player here

Youtube

10 / 12

Page 35: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Projects using FFmpeg

Projects using FFmpeg

Projects using FFmpeg

FFdshowWindows port of (parts) of the FFmpeg codeBecame quite popular in the windows world and still is fromwhat we hear ;)

PerianQuicktime component which is similar to FFDshow in itsintent and allows native playback support for a lot of medianot playable out-of-the-box through Qt on MacOS.

Most A/V players (both open as well as commercial)MPlayer :)The Videolan projectMythTVRockbox

Xmms2insert your favorite player here

Youtube

10 / 12

Page 36: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Projects using FFmpeg

Projects using FFmpeg

Projects using FFmpeg

FFdshowWindows port of (parts) of the FFmpeg codeBecame quite popular in the windows world and still is fromwhat we hear ;)

PerianQuicktime component which is similar to FFDshow in itsintent and allows native playback support for a lot of medianot playable out-of-the-box through Qt on MacOS.

Most A/V players (both open as well as commercial)MPlayer :)The Videolan projectMythTVRockboxXmms2

insert your favorite player here

Youtube

10 / 12

Page 37: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Projects using FFmpeg

Projects using FFmpeg

Projects using FFmpeg

FFdshowWindows port of (parts) of the FFmpeg codeBecame quite popular in the windows world and still is fromwhat we hear ;)

PerianQuicktime component which is similar to FFDshow in itsintent and allows native playback support for a lot of medianot playable out-of-the-box through Qt on MacOS.

Most A/V players (both open as well as commercial)MPlayer :)The Videolan projectMythTVRockboxXmms2insert your favorite player here

Youtube

10 / 12

Page 38: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Projects using FFmpeg

Projects using FFmpeg

Projects using FFmpeg

FFdshowWindows port of (parts) of the FFmpeg codeBecame quite popular in the windows world and still is fromwhat we hear ;)

PerianQuicktime component which is similar to FFDshow in itsintent and allows native playback support for a lot of medianot playable out-of-the-box through Qt on MacOS.

Most A/V players (both open as well as commercial)MPlayer :)The Videolan projectMythTVRockboxXmms2insert your favorite player here

Youtube10 / 12

Page 39: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Questions

Outline

1 IntroductionHistoryCurrent Status

2 FeaturesCodec Layer — LibavcodecContainer Layer — Libavformat

3 Projects using FFmpegProjects using FFmpeg

4 QuestionsQuestions

11 / 12

Page 40: FFmpeg - Multimedia Hacking for the Masses

FFmpeg - Multimedia hacking for the masses

Questions

Questions

Questions

?

12 / 12