Libavfilter: Difference between revisions

From MultimediaWiki
Jump to navigation Jump to search
No edit summary
Line 4: Line 4:


Please read its README to discover how to integrate it with ffmpeg and ffplay.
Please read its README to discover how to integrate it with ffmpeg and ffplay.
==Reasons why a audio API is needed in FFmpeg==
FFmpeg's already well-known [[libavcodec]] module has become the de facto standard library for video decoding and encoding in free software projects. Unfortunately, no similar standard library has surfaced for audio/video filtering and otherwise working with audio/video stream once it has been decoded. Various multimedia projects (such as MPlayer, Xine, GStreamer, VirtualDub, etc.) have implemented their own filter systems to various degrees of success. What is needed is a high quality audio and video filter API - efficient, flexible enough to meet all the requirements which have led various projects to invent their own filter system, and yet easy to use or develop new filters with. This proposal is to implement a high quality audio API and filter library for FFmpeg, where it can be easily used by other multimedia-related software projects.
== Features needed ==
* ?
== Feature wish list ==
*Create a SDK (Software Development Kit) with templates for the A/V filter APIs
* Create (or port) additional pre-process and post-process video filters to FFmpeg:
** General post-proc sources are [http://svn.mplayerhq.hu/mplayer/trunk/DOCS/tech/libmpcodecs.txt?revision=15625&view=markup MPlayer (libmpcodecs vf_*.c filters)], [http://xinehq.de/index.php/hackersguide#AEN864 Xine], [[ffdshow|FFdshow]], [[VLC media player|VLC]], [http://www.virtualdub.org/filtersdk VirtualDub], [http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/index.html GStreamer], [http://www.foobar2000.org foobar], and [http://www.xmms.org/ XMMS]
**More [http://en.wikipedia.org/wiki/Image_scaling image scaling] methods:
***[http://en.wikipedia.org/wiki/Linear_interpolation linear interpolation]
***[http://en.wikipedia.org/wiki/Bilinear_interpolation bilinear interpolation]
***[http://en.wikipedia.org/wiki/Cubic_interpolation cubic interpolation]
***[http://en.wikipedia.org/wiki/Bicubic_interpolation bicubic interpolation]
***[http://en.wikipedia.org/wiki/Trilinear_interpolation trilinear interpolation]
** Croping
** SSP (Statistical Post-Processing)
** DeBlocking
** DeRinging
** IVTC
** Sharpen / UnSharpen (Soften)
** ReQuantization
** Auto-Luminance
** Blurring / DeNoising / Spatial Blur / Temporal Blur
**  Deinterlace (weave AND bob) filters
*** Possible sources: [http://sourceforge.net/projects/deinterlace DScaler] or [http://www.mir.com/DMG/Software/y4mscaler.html y4mscale]?
** 2:3 pull-down / ivtc (inverse telecine) for 24 progressive-frames on 30 FPS TV's
*** Possible sources: [http://sourceforge.net/projects/deinterlace DScaler] or [http://www.mir.com/DMG/Software/y4mscaler.html y4mscale]?
** NTSC => PAL, and PAL => NTSC frame-rate (FPS) adjust and reclock filter for NTSC <=> PAL conversion
*** NTSC <=> PAL frame-rate adjust FPS ratios?: 23.97 <=> 25, 24 <=> 25, 30 <=> 25, 25 <=> 30
== Current ideas ==
Threads with previous discussions in the subject:
* Possible adopt MPlayer's A/V filter system or create a new API 'from scratch' for pre-process and post-process audio/video filters:
** See http://article.gmane.org/gmane.comp.video.ffmpeg.devel/39130 for michaelni's idea of what to do.
***Also read this discussion thread on MPlayer's mailing-list:
****http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2007-April/051142.html
*****http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2007-April/thread.html#51142
*Take a look at other eixsting players API for filter plugins, like for example;
** [http://svn.mplayerhq.hu/mplayer/trunk/DOCS/tech/libmpcodecs.txt?revision=15625&view=markup MPlayer (libmpcodecs vf_*.c filters)], [http://xinehq.de/index.php/hackersguide#AEN864 Xine], [[ffdshow|FFdshow]], [[VLC media player|VLC]], [http://www.virtualdub.org/filtersdk VirtualDub], [http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/index.html GStreamer], [http://www.foobar2000.org foobar], and [http://www.xmms.org/ XMMS]
==Mentors==
A'rpi (has expressed interest of possibly helping with implementing a filter API in FFmpeg, he also volunteering to help porting the MPlayer filters too if a such API becomes available http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2007-April/051164.html)''


== See also ==
== See also ==

Revision as of 04:41, 3 January 2008

Until it is incorporated into FFmpeg, you may get the libavfilter source from GSoC SVN repository:

svn checkout svn://svn.mplayerhq.hu/soc/libavfilter

Please read its README to discover how to integrate it with ffmpeg and ffplay.

Reasons why a audio API is needed in FFmpeg

FFmpeg's already well-known libavcodec module has become the de facto standard library for video decoding and encoding in free software projects. Unfortunately, no similar standard library has surfaced for audio/video filtering and otherwise working with audio/video stream once it has been decoded. Various multimedia projects (such as MPlayer, Xine, GStreamer, VirtualDub, etc.) have implemented their own filter systems to various degrees of success. What is needed is a high quality audio and video filter API - efficient, flexible enough to meet all the requirements which have led various projects to invent their own filter system, and yet easy to use or develop new filters with. This proposal is to implement a high quality audio API and filter library for FFmpeg, where it can be easily used by other multimedia-related software projects.


Features needed

  • ?


Feature wish list


Current ideas

Threads with previous discussions in the subject:


Mentors

A'rpi (has expressed interest of possibly helping with implementing a filter API in FFmpeg, he also volunteering to help porting the MPlayer filters too if a such API becomes available http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2007-April/051164.html)


See also