Your SlideShare is downloading. ×
FFmpeg - the universal multimedia toolkit
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

FFmpeg - the universal multimedia toolkit


Published on

Presentation given in Luneburg, Germany, on 1st March, 2013, as part of the panel "Free Video Infrastructure".

Presentation given in Luneburg, Germany, on 1st March, 2013, as part of the panel "Free Video Infrastructure".

1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. IntroductionResourcesAppendix FFmpeg - the universal multimedia toolkit Stefano Sabatini Video Vortex #9 Video Vortex #9 - 1 March, 2013 1 / 13
  • 2. DescriptionIntroductionResourcesAppendix multiplatform software project (Linux, Mac, Windows, Android, etc...) Comprises several command line tools: ffmpeg, ffplay, ffprobe, ffserver Comprises C libraries to handle multimedia at several levels Free Software / FLOSS: LGPL/GPL 2 / 13
  • 3. ObjectiveIntroductionResources Provide universal and complete support to multimediaAppendix content access and processing. decoding/encoding muxing/demuxing streaming filtering metadata handling 3 / 13
  • 4. HistoryIntroduction 2000: Fabrice Bellard starts the project with the initialResources aim to implement an MPEG encoding/decoding library.Appendix The resulting project is integrated as multimedia engine in MPlayer, which also hosts the project. 2003: Fabrice Bellard leaves the project, Michael Niedermayer acts as project maintainer since then. March 2009: release version 0.5, first official release January 2011: a group of discontented developers takes control over the FFmpeg web server and creates an alternative Git repo, a few months later a proper fork is created (Libav). 4 / 13
  • 5. Development model Source code is handled through Git, tickets (feature requests, bugs) handled by TracIntroductionResources Patches are discussed and approved on mailing-list,Appendix and directly pushed or merged from external repos, trivial patches or hot fixes can be pushed directly with no review. Every contributor/maintainer reviews patches in his/her own area of expertise/interest, review is done on a best effort basis by a (hopefully) competent developer. Formal releases are delivered every 6 months or so. Custom testing environment (FATE) and samples archive used for automated testing around 10 core developers, 200/300 per-year total contributors 5 / 13
  • 6. What is used forIntroduction audio / video low level conversions (libswscale,ResourcesAppendix libswresample - rescaling, image format conversion, audio conversion) decoding / encoding (libavcodec - more than 300 codecs) muxing / demuxing (libavformat) grabbing input devices (libavdevice) streaming (libavformat, RTSP, RTP, RTMP, ...) filtering (libavfilter) 6 / 13
  • 7. High level FeaturesIntroductionResourcesAppendix written mostly in C/assembly provides an extensible framework modular/configurable relies on external libraries (e.g. libmp3lame, libx264, libvorbis, libspeex, frei0r, ...) when it makes sense 7 / 13
  • 8. LibavfilterIntroduction Audio / Video filtersResourcesAppendix timestamps manipulation more than 100 filters, some wrapped libraries (opencv, frei0r filters) transmedia filtering (e.g. audio to video) subtitles video hardcoding through ass/subtitles filter command API (allow to send commands to various filters) future development: lua scripting, subtitles filtering 8 / 13
  • 9. FFmpeg-based projectsIntroduction Used by most (all?) web transcoding multimediaResourcesAppendix back-ends: (e.g. used by Youtube according to this post: googles-youtube-uses-ffmpeg/) MPlayer (libavcodec, libavformat) VLC (libavcodec, libavformat) GStreamer (libav/ffmpeg plugin) Chromium more: 9 / 13
  • 10. OrganizationIntroductionResourcesAppendix No official organization backing the project. Donations are collected through SPI (Software in the Public Interest) since June 2012. Partecipated to several editions of Google Summer of Code (2006, 2007, 2008, 2009, 2010, 2011) and ESA Summer of Code in Space (2011, 2012) Crowd funding would be nice at some point 10 / 13
  • 11. SummaryIntroductionResourcesAppendix free universal multimedia engine flexible, powerful -> complex integrated into large number of FLOSS multimedia projects huge community of developers / users 11 / 13
  • 12. ResourcesIntroductionResourcesAppendix FFmpeg project web site: FFmpeg wiki: Mike Melanson multimedia wiki 12 / 13
  • 13. License of this documentIntroductionResources This document is released under Creative CommonsAppendix License - Attribution-NonCommercial-ShareAlike 3.0: by-nc-sa/3.0/) 13 / 13