SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
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
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
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
Libavfilter dependencies



Project
Introduction

Introduction to
libavfilter
architecture

Examples

Future
Development

Appendixes




                                            4 / 15
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
Development status



Project
Introduction

Introduction to
libavfilter
architecture         video filtering integrated into ffmpeg.c in May 2010,
Examples             included in latest FFmpeg/Libav formal releases
Future               (0.7/0.8)
Development

Appendixes           API/ABI still considered unstable
                     audio integration is a work in progress




                                                                            6 / 15
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
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
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
Misc examples



Project
Introduction

Introduction to
libavfilter
                  Example
architecture

Examples
                  color=pink,hflip,nullsink
Future
Development
                  Example
Appendixes

                  movie=logo.png [logo]; color=bikeshed [color];
                  [color][logo] overlay [out]




                                                                   10 / 15
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
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
How to contribute



Project
Introduction

Introduction to
libavfilter
architecture

Examples
                      bug reports/feature requests
Future                patches are welcome!
Development

Appendixes            money/food/postcards/stuff




                                                     13 / 15
Resources



Project
Introduction

Introduction to
libavfilter
architecture         http://ffmpeg.org/libavfilter.html
Examples
                     libavfilter/*.{h,c}
Future
Development
                     doc/examples/filtering.c
Appendixes
                     ffmpeg-devel mailing-list




                                                          14 / 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

Mais conteúdo relacionado

Destaque

Introduzione a libavfilter
Introduzione a libavfilterIntroduzione a libavfilter
Introduzione a libavfilterStefano Sabatini
 
FFmpeg - lo strumento multimediale universale
FFmpeg - lo strumento multimediale universaleFFmpeg - lo strumento multimediale universale
FFmpeg - lo strumento multimediale universaleStefano Sabatini
 
Pasaroom1maxcreative
Pasaroom1maxcreativePasaroom1maxcreative
Pasaroom1maxcreativemaxtheawesome
 
Ekiga - telefonare con GNU/Linux
Ekiga - telefonare con GNU/LinuxEkiga - telefonare con GNU/Linux
Ekiga - telefonare con GNU/LinuxStefano Sabatini
 
Sk1 kd1-2-kelangkaan
Sk1 kd1-2-kelangkaanSk1 kd1-2-kelangkaan
Sk1 kd1-2-kelangkaanDwi Dn
 
Ppt uang hyperlink
Ppt uang hyperlinkPpt uang hyperlink
Ppt uang hyperlinkDwi Dn
 

Destaque (6)

Introduzione a libavfilter
Introduzione a libavfilterIntroduzione a libavfilter
Introduzione a libavfilter
 
FFmpeg - lo strumento multimediale universale
FFmpeg - lo strumento multimediale universaleFFmpeg - lo strumento multimediale universale
FFmpeg - lo strumento multimediale universale
 
Pasaroom1maxcreative
Pasaroom1maxcreativePasaroom1maxcreative
Pasaroom1maxcreative
 
Ekiga - telefonare con GNU/Linux
Ekiga - telefonare con GNU/LinuxEkiga - telefonare con GNU/Linux
Ekiga - telefonare con GNU/Linux
 
Sk1 kd1-2-kelangkaan
Sk1 kd1-2-kelangkaanSk1 kd1-2-kelangkaan
Sk1 kd1-2-kelangkaan
 
Ppt uang hyperlink
Ppt uang hyperlinkPpt uang hyperlink
Ppt uang hyperlink
 

Semelhante a Libavfilter

FFmpeg - the universal multimedia toolkit
FFmpeg - the universal multimedia toolkitFFmpeg - the universal multimedia toolkit
FFmpeg - the universal multimedia toolkitStefano Sabatini
 
substrate: A framework to efficiently build blockchains
substrate: A framework to efficiently build blockchainssubstrate: A framework to efficiently build blockchains
substrate: A framework to efficiently build blockchainsservicesNitor
 
Getting started with libfabric
Getting started with libfabricGetting started with libfabric
Getting started with libfabricJianxin Xiong
 
Alfresco Day Vienna 2015 - Technical Track - Developer Platform Updates
Alfresco Day Vienna 2015 - Technical Track - Developer Platform UpdatesAlfresco Day Vienna 2015 - Technical Track - Developer Platform Updates
Alfresco Day Vienna 2015 - Technical Track - Developer Platform UpdatesAlfresco Software
 
Escaping Dependency Hell: A deep dive into Gradle's dependency management fea...
Escaping Dependency Hell: A deep dive into Gradle's dependency management fea...Escaping Dependency Hell: A deep dive into Gradle's dependency management fea...
Escaping Dependency Hell: A deep dive into Gradle's dependency management fea...Roberto Pérez Alcolea
 
Graphical libraries
Graphical librariesGraphical libraries
Graphical librariesguestbd40369
 
The Open eHealth Integration Platform
The Open eHealth Integration PlatformThe Open eHealth Integration Platform
The Open eHealth Integration Platformkrasserm
 
Best practices for DuraMat software dissemination
Best practices for DuraMat software disseminationBest practices for DuraMat software dissemination
Best practices for DuraMat software disseminationAnubhav Jain
 
Alfresco Day Platform Update
Alfresco Day Platform UpdateAlfresco Day Platform Update
Alfresco Day Platform Updateohej
 
Eclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client RoundupEclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client RoundupMurat Yener
 
Developing With Openbravo Rl Eppt
Developing With Openbravo Rl EpptDeveloping With Openbravo Rl Eppt
Developing With Openbravo Rl Epptvobree
 
Subversion in 2010 and Beyond
Subversion in 2010 and BeyondSubversion in 2010 and Beyond
Subversion in 2010 and Beyondguest1243d91
 
Subversion in 2010 and Beyond
Subversion in 2010 and BeyondSubversion in 2010 and Beyond
Subversion in 2010 and BeyondWANdisco Plc
 
Silverlight Chapter 01 - Introduction
Silverlight Chapter 01 - IntroductionSilverlight Chapter 01 - Introduction
Silverlight Chapter 01 - IntroductionBill Hatfield
 
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)Igalia
 
Streaming the platform with Confluent (Apache Kafka)
Streaming the platform with Confluent (Apache Kafka)Streaming the platform with Confluent (Apache Kafka)
Streaming the platform with Confluent (Apache Kafka)GiuseppeBaccini
 
TYPO3 Flow 2.0 in the field - webtech Conference 2013
TYPO3 Flow 2.0 in the field - webtech Conference 2013TYPO3 Flow 2.0 in the field - webtech Conference 2013
TYPO3 Flow 2.0 in the field - webtech Conference 2013die.agilen GmbH
 

Semelhante a Libavfilter (20)

FFmpeg - the universal multimedia toolkit
FFmpeg - the universal multimedia toolkitFFmpeg - the universal multimedia toolkit
FFmpeg - the universal multimedia toolkit
 
substrate: A framework to efficiently build blockchains
substrate: A framework to efficiently build blockchainssubstrate: A framework to efficiently build blockchains
substrate: A framework to efficiently build blockchains
 
Getting started with libfabric
Getting started with libfabricGetting started with libfabric
Getting started with libfabric
 
Alfresco Day Vienna 2015 - Technical Track - Developer Platform Updates
Alfresco Day Vienna 2015 - Technical Track - Developer Platform UpdatesAlfresco Day Vienna 2015 - Technical Track - Developer Platform Updates
Alfresco Day Vienna 2015 - Technical Track - Developer Platform Updates
 
Escaping Dependency Hell: A deep dive into Gradle's dependency management fea...
Escaping Dependency Hell: A deep dive into Gradle's dependency management fea...Escaping Dependency Hell: A deep dive into Gradle's dependency management fea...
Escaping Dependency Hell: A deep dive into Gradle's dependency management fea...
 
Graphical libraries
Graphical librariesGraphical libraries
Graphical libraries
 
The Open eHealth Integration Platform
The Open eHealth Integration PlatformThe Open eHealth Integration Platform
The Open eHealth Integration Platform
 
2009-04-21 - Alfresco and Maven NXP case study
2009-04-21 - Alfresco and Maven NXP case study2009-04-21 - Alfresco and Maven NXP case study
2009-04-21 - Alfresco and Maven NXP case study
 
Top 6 php framework
Top 6 php frameworkTop 6 php framework
Top 6 php framework
 
Best practices for DuraMat software dissemination
Best practices for DuraMat software disseminationBest practices for DuraMat software dissemination
Best practices for DuraMat software dissemination
 
Alfresco Day Platform Update
Alfresco Day Platform UpdateAlfresco Day Platform Update
Alfresco Day Platform Update
 
Eclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client RoundupEclipsist2009 Rich Client Roundup
Eclipsist2009 Rich Client Roundup
 
Developing With Openbravo Rl Eppt
Developing With Openbravo Rl EpptDeveloping With Openbravo Rl Eppt
Developing With Openbravo Rl Eppt
 
Subversion in 2010 and Beyond
Subversion in 2010 and BeyondSubversion in 2010 and Beyond
Subversion in 2010 and Beyond
 
Subversion in 2010 and Beyond
Subversion in 2010 and BeyondSubversion in 2010 and Beyond
Subversion in 2010 and Beyond
 
Silverlight Chapter 01 - Introduction
Silverlight Chapter 01 - IntroductionSilverlight Chapter 01 - Introduction
Silverlight Chapter 01 - Introduction
 
SilverlightCh01
SilverlightCh01SilverlightCh01
SilverlightCh01
 
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
 
Streaming the platform with Confluent (Apache Kafka)
Streaming the platform with Confluent (Apache Kafka)Streaming the platform with Confluent (Apache Kafka)
Streaming the platform with Confluent (Apache Kafka)
 
TYPO3 Flow 2.0 in the field - webtech Conference 2013
TYPO3 Flow 2.0 in the field - webtech Conference 2013TYPO3 Flow 2.0 in the field - webtech Conference 2013
TYPO3 Flow 2.0 in the field - webtech Conference 2013
 

Último

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 

Último (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
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
  • 6. Development status Project Introduction Introduction to libavfilter architecture video filtering integrated into ffmpeg.c in May 2010, Examples included in latest FFmpeg/Libav formal releases Future (0.7/0.8) Development Appendixes API/ABI still considered unstable audio integration is a work in progress 6 / 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
  • 10. Misc examples Project Introduction Introduction to libavfilter Example architecture Examples color=pink,hflip,nullsink Future Development Example Appendixes movie=logo.png [logo]; color=bikeshed [color]; [color][logo] overlay [out] 10 / 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
  • 13. How to contribute Project Introduction Introduction to libavfilter architecture Examples bug reports/feature requests Future patches are welcome! Development Appendixes money/food/postcards/stuff 13 / 15
  • 14. Resources Project Introduction Introduction to libavfilter architecture http://ffmpeg.org/libavfilter.html Examples libavfilter/*.{h,c} Future Development doc/examples/filtering.c Appendixes ffmpeg-devel mailing-list 14 / 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