FFmpeg - Multimedia Hacking for the Masses

Post on 13-Nov-2014

694 views 3 download

Transcript of 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FFmpeg - Multimedia hacking for the masses

Questions

Questions

Questions

?

12 / 12