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.
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Libavfilter
1. Project
Introduction
Introduction to
libavfilter
Introduction to Libavfilter
architecture
Examples
Future Stefano Sabatini
Development
Appendixes
mailto:stefasab@gmail.com
VideoLAN
Video LAN Dev Days - 03 September 2011
1 / 15
2. Summary
Project
Introduction 1 Project Introduction
Introduction to
libavfilter
architecture 2 Introduction to libavfilter architecture
Examples
Future
Development 3 Examples
Appendixes
4 Future Development
5 Appendixes
2 / 15
3. Objectives - Why?
Project
Introduction
Introduction to
libavfilter
architecture
provide a media filtering layer to FFmpeg+client
Examples
libraries/apps, replace VHOOK
Future
Development simplify the design of ff* tools, enhance flexibility
Appendixes
extend the testing framework with ad-hoc filters/sources
3 / 15
5. High level features
focus on performance (avoid unnecessary memcpies /
Project
Introduction unnecessary conversions)
Introduction to
libavfilter support all formats supported by FFmpeg
architecture
Examples
implement a sophisticated negotiation format
Future
mechanism, minimize the number of pixel/sample
Development
format conversions
Appendixes
interactive features for processing interactive
commands/events
allow graphs of filters vs. linear chains
allow media sources/sinks
allow transmedia filtering
5 / 15
7. Filter node anatomy
Project
Introduction
Introduction to A filter contains one or more input/output pads
libavfilter
architecture Each pad is bound to a specific media type, supports
Examples one or more input/output formats
Future
Development input and output pads are tied together by a link
Appendixes
filters can be connected together to form a graph
a filtergraph is represented through a simple textual
description
7 / 15
8. Filtering model
Project
Introduction
Introduction to
libavfilter a filter processes buffers, a buffer can contain a video
architecture
frame or audio samples
Examples
Future the properties of each buffer (e.g. frame type,
Development
timestamp, file position) can be accessed and
Appendixes
manipulated during the filtering process
mixed pull/push model
8 / 15
9. Filters
Project
Introduction
scale - based on libswscale
Introduction to
libavfilter
architecture
pad, crop, vflip, hflip
Examples frei0r / frei0r_src wrapper
Future
Development
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
11. Future development - 1
Project
Introduction
Introduction to
libavfilter
architecture
audio filtering integration completion (possibly finished
Examples
in a few months), sox+ladspa wrappers
Future
Development
more framework changes - e.g. stricter integration with
Appendixes
libavcodec for allowing direct rendering
11 / 15
12. Future development - 2
Project
Introduction
Introduction to
libavfilter
architecture
transmedia filtering
Examples
Future
subtitles filtering
Development
transmedia+subtitle filtering: speech recognition / voice
Appendixes
synthesis / subtitles video rendering
12 / 15
15. Licence of this document
Project
Introduction
Introduction to
libavfilter
Released with Creative Commons license
architecture Attribution-NonCommercial-ShareAlike (see: http://
Examples creativecommons.org/licenses/by-nc-sa/3.0/)
Future
Development
Appendixes
15 / 15