ProjectIntroductionIntroduction tolibavfilter                      Introduction to LibavfilterarchitectureExamplesFuture    ...
SummaryProjectIntroduction      1   Project IntroductionIntroduction tolibavfilterarchitecture      2   Introduction to lib...
Objectives - Why?ProjectIntroductionIntroduction tolibavfilterarchitecture                      provide a media filtering la...
Libavfilter dependenciesProjectIntroductionIntroduction tolibavfilterarchitectureExamplesFutureDevelopmentAppendixes        ...
High level features                      focus on performance (avoid unnecessary memcpies /ProjectIntroduction          un...
Development statusProjectIntroductionIntroduction tolibavfilterarchitecture         video filtering integrated into ffmpeg.c...
Filter node anatomyProjectIntroductionIntroduction to       A filter contains one or more input/output padslibavfilterarchit...
Filtering modelProjectIntroductionIntroduction tolibavfilter            a filter processes buffers, a buffer can contain a v...
FiltersProjectIntroduction                      scale - based on libswscaleIntroduction tolibavfilterarchitecture          ...
Misc examplesProjectIntroductionIntroduction tolibavfilter                  ExamplearchitectureExamples                  co...
Future development - 1ProjectIntroductionIntroduction tolibavfilterarchitecture                      audio filtering integra...
Future development - 2ProjectIntroductionIntroduction tolibavfilterarchitecture                      transmedia filteringExa...
How to contributeProjectIntroductionIntroduction tolibavfilterarchitectureExamples                      bug reports/feature...
ResourcesProjectIntroductionIntroduction tolibavfilterarchitecture         http://ffmpeg.org/libavfilter.htmlExamples      ...
Licence of this documentProjectIntroductionIntroduction tolibavfilter                  Released with Creative Commons licen...
Upcoming SlideShare
Loading in …5
×

Libavfilter

1,740 views
1,658 views

Published on

PDF of the presentation held at the VideoLAN Dev Days meeting of 3 September 2011, Paris.
Short introduction to libavfilter, current development status and future developments.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,740
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Libavfilter

  1. 1. ProjectIntroductionIntroduction tolibavfilter Introduction to LibavfilterarchitectureExamplesFuture Stefano SabatiniDevelopmentAppendixes mailto:stefasab@gmail.com VideoLAN Video LAN Dev Days - 03 September 2011 1 / 15
  2. 2. SummaryProjectIntroduction 1 Project IntroductionIntroduction tolibavfilterarchitecture 2 Introduction to libavfilter architectureExamplesFutureDevelopment 3 ExamplesAppendixes 4 Future Development 5 Appendixes 2 / 15
  3. 3. Objectives - Why?ProjectIntroductionIntroduction tolibavfilterarchitecture provide a media filtering layer to FFmpeg+clientExamples libraries/apps, replace VHOOKFutureDevelopment simplify the design of ff* tools, enhance flexibilityAppendixes extend the testing framework with ad-hoc filters/sources 3 / 15
  4. 4. Libavfilter dependenciesProjectIntroductionIntroduction tolibavfilterarchitectureExamplesFutureDevelopmentAppendixes 4 / 15
  5. 5. High level features focus on performance (avoid unnecessary memcpies /ProjectIntroduction unnecessary conversions)Introduction tolibavfilter support all formats supported by FFmpegarchitectureExamples implement a sophisticated negotiation formatFuture mechanism, minimize the number of pixel/sampleDevelopment format conversionsAppendixes interactive features for processing interactive commands/events allow graphs of filters vs. linear chains allow media sources/sinks allow transmedia filtering 5 / 15
  6. 6. Development statusProjectIntroductionIntroduction tolibavfilterarchitecture video filtering integrated into ffmpeg.c in May 2010,Examples included in latest FFmpeg/Libav formal releasesFuture (0.7/0.8)DevelopmentAppendixes API/ABI still considered unstable audio integration is a work in progress 6 / 15
  7. 7. Filter node anatomyProjectIntroductionIntroduction to A filter contains one or more input/output padslibavfilterarchitecture Each pad is bound to a specific media type, supportsExamples one or more input/output formatsFutureDevelopment input and output pads are tied together by a linkAppendixes filters can be connected together to form a graph a filtergraph is represented through a simple textual description 7 / 15
  8. 8. Filtering modelProjectIntroductionIntroduction tolibavfilter a filter processes buffers, a buffer can contain a videoarchitecture frame or audio samplesExamplesFuture the properties of each buffer (e.g. frame type,Development timestamp, file position) can be accessed andAppendixes manipulated during the filtering process mixed pull/push model 8 / 15
  9. 9. FiltersProjectIntroduction scale - based on libswscaleIntroduction tolibavfilterarchitecture pad, crop, vflip, hflipExamples frei0r / frei0r_src wrapperFutureDevelopment mp wrapper (MPlayer filters)Appendixes more: boxblur, delogo, drawtext, lutyuv, lutrgb, yadif, select, unsharp... currently 60 filters+sources+sinks implemented (check -filters option) 9 / 15
  10. 10. Misc examplesProjectIntroductionIntroduction tolibavfilter ExamplearchitectureExamples color=pink,hflip,nullsinkFutureDevelopment ExampleAppendixes movie=logo.png [logo]; color=bikeshed [color]; [color][logo] overlay [out] 10 / 15
  11. 11. Future development - 1ProjectIntroductionIntroduction tolibavfilterarchitecture audio filtering integration completion (possibly finishedExamples in a few months), sox+ladspa wrappersFutureDevelopment more framework changes - e.g. stricter integration withAppendixes libavcodec for allowing direct rendering 11 / 15
  12. 12. Future development - 2ProjectIntroductionIntroduction tolibavfilterarchitecture transmedia filteringExamplesFuture subtitles filteringDevelopment transmedia+subtitle filtering: speech recognition / voiceAppendixes synthesis / subtitles video rendering 12 / 15
  13. 13. How to contributeProjectIntroductionIntroduction tolibavfilterarchitectureExamples bug reports/feature requestsFuture patches are welcome!DevelopmentAppendixes money/food/postcards/stuff 13 / 15
  14. 14. ResourcesProjectIntroductionIntroduction tolibavfilterarchitecture http://ffmpeg.org/libavfilter.htmlExamples libavfilter/*.{h,c}FutureDevelopment doc/examples/filtering.cAppendixes ffmpeg-devel mailing-list 14 / 15
  15. 15. Licence of this documentProjectIntroductionIntroduction tolibavfilter Released with Creative Commons licensearchitecture Attribution-NonCommercial-ShareAlike (see: http://Examples creativecommons.org/licenses/by-nc-sa/3.0/)FutureDevelopmentAppendixes 15 / 15

×