FFmpeg Wishlist: Difference between revisions

From MultimediaWiki
Jump to navigation Jump to search
Line 57: Line 57:
*  Create a common 'subtitles parser library' (and/or API for adding support for additional subtitle formats?) - a common sub-library to FFmpeg with all subtile decoders/demuxers/parsers gathered (similar to the libpostproc and libavutils). Call it "libsubs" (or "libsub", "libsubtitles" or whatever). Move FFmpeg's existing VobSub and DVBsub code there, so no matter if they are bitmap or text-based subs all existing and future subtile code is collected there. This will help reduce future code replication by sharing common code, thus making it easier to add support for additional subtitles.  
*  Create a common 'subtitles parser library' (and/or API for adding support for additional subtitle formats?) - a common sub-library to FFmpeg with all subtile decoders/demuxers/parsers gathered (similar to the libpostproc and libavutils). Call it "libsubs" (or "libsub", "libsubtitles" or whatever). Move FFmpeg's existing VobSub and DVBsub code there, so no matter if they are bitmap or text-based subs all existing and future subtile code is collected there. This will help reduce future code replication by sharing common code, thus making it easier to add support for additional subtitles.  
**Maybe use MPlayer's recently added "'''libass'''" (SSA/ASS subtile reader) as a base for such a common library?
**Maybe use MPlayer's recently added "'''libass'''" (SSA/ASS subtile reader) as a base for such a common library?
*  [http://en.wikipedia.org/wiki/Closed_captioning Closed captioning (CC)] subtile support - (Closed captions for the deaf and hard of hearing, also known as "Line 21 captioning", uses VobSub bitmaps)
* Support for advanced SSA/ASS rendering using libass or asa or any other mean,
*  DirectVobSub (VSFilter) - standard VobSubs (DVD-Video subtitles) embedded in AVI containers
* Support bold, italic, underline, RGB colors, size changes and font changes for a whole line or part of one line, (not all of these are supported now)
*  [http://en.wikipedia.org/wiki/DivX#DivX_Subtitles_.28XSUB.29 DivX Subtitles (XSUB)] display/reader/decoder (Note: bitmap based subtitle, similar to VobSub)
* [http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=284541 Line 23 signal (a.k.a. "Wide-screen signal")] detecting and use for DVD-Video (VobSub)
*  [http://en.wikipedia.org/wiki/SubRip SubRip (.srt)] subtile support (Note: simple text-based based subtitle with timestamp)
* Support for the subtitles HTML tags
*  Subviewer (.sub) subtile support (Note: simple text-based based subtitle with timestamp)
* Capability of displaying subtitles with no video enabled (for example for audio-books)
*  MicroDVD (.sub) subtile support (Note: simple text-based based subtitle with timestamp
* Support for Karaoke subtitles (for kar and cdg, etc.)
*  [http://en.wikipedia.org/wiki/Sami_%28subtitle_tool%29 Sami (.smi)] subtile support (Note: simple text-based based subtitle with timestamp)
* Capability of moving the subtitles in the picture (freetype renderer)
*  [http://en.wikipedia.org/wiki/SubStation_Alpha SubStation Alpha (.ssa+.ass)] subtile support (Note: advanced text-based based subtitle with timestamps and XY location on screen)
*Support more subtitle formats (text and bitmap-based):
*  [http://en.wikipedia.org/wiki/Synchronized_Multimedia_Integration_Language RealText (.rt)] subtile support
**  [http://en.wikipedia.org/wiki/Closed_captioning Closed captioning (CC)] subtile support - (Closed captions for the deaf and hard of hearing, also known as "Line 21 captioning", uses VobSub bitmaps)
*  PowerDivx (.psb) subtile support
**  DirectVobSub (VSFilter) - standard VobSubs (DVD-Video subtitles) embedded in AVI containers
*  [http://en.wikipedia.org/wiki/Universal_Subtitle_Format Universal Subtitle Format (.usf)] subtile support
**  [http://en.wikipedia.org/wiki/DivX#DivX_Subtitles_.28XSUB.29 DivX Subtitles (XSUB)] display/reader/decoder (Note: bitmap based subtitle, similar to VobSub)
*  Structured Subtitle Format (.ssf) subtile support
**  [http://en.wikipedia.org/wiki/SubRip SubRip (.srt)] subtile support (Note: simple text-based based subtitle with timestamp)
**  Subviewer (.sub) subtile support (Note: simple text-based based subtitle with timestamp)
**  MicroDVD (.sub) subtile support (Note: simple text-based based subtitle with timestamp
**  [http://en.wikipedia.org/wiki/Sami_%28subtitle_tool%29 Sami (.smi)] subtile support (Note: simple text-based based subtitle with timestamp)
**  [http://en.wikipedia.org/wiki/SubStation_Alpha SubStation Alpha (.ssa+.ass)] subtile support (Note: advanced text-based based subtitle with timestamps and XY location on screen)
**  [http://en.wikipedia.org/wiki/Synchronized_Multimedia_Integration_Language RealText (.rt)] subtile support
**  PowerDivx (.psb) subtile support
**  [http://en.wikipedia.org/wiki/Universal_Subtitle_Format Universal Subtitle Format (.usf)] subtile support
**  Structured Subtitle Format (.ssf) subtile support


== Misc ==
== Misc ==

Revision as of 10:14, 20 March 2007

A temporary FFmpeg wish/todo list:

Decoders

Demuxers

libstream (a common 'stream' library)

  • Create a common 'stream demuxer/parser library' (and/or API for adding support for additional streaming formats?) - a LGPL'ed sub-library in FFmpeg with all stream demuxers/parsers gathered (similar to the libpostproc and libavutil). Call it "libstream" (or "stream" or whatever). Move FFmpeg's existing stream code there like HTTP and RTSP/RTP. This will help reduce future code replication by sharing common code, thus making it easier to add support for additional streaming formats. All togther making it super easy for audio/video players using FFmpeg to add all-in-one streaming support to their player.
    • Maybe use either MPlayer's "stream" library, LIVE555, or probebly the better libnms (from NeMeSi) as a base for such a common library?
    • HTTP (Hypertext Transfer Protocol)
    • UDP (User Datagram Protocol)
    • RTSP - Real-Time Streaming Protocol (RFC2326)
    • RTP/RTCP - Real-Time Transport Protocol/RTP Control Protocol (RFC3550)
    • RTP Profile for Audio and Video Conferences with Minimal Control (RFC3551)
    • RealMedia RTSP/RDT (Real Time Streaming Protocol / Real Data Transport) proprietary transport protocol developed by RealNetworks to stream RealVideo/RealAudio
    • SDP (Service Discovery Protocol) / SSDP (Simple Service Discovery Protocol)
    • MMS (Microsoft Media Services)

Features

Subtitles

  • Create a common 'subtitles parser library' (and/or API for adding support for additional subtitle formats?) - a common sub-library to FFmpeg with all subtile decoders/demuxers/parsers gathered (similar to the libpostproc and libavutils). Call it "libsubs" (or "libsub", "libsubtitles" or whatever). Move FFmpeg's existing VobSub and DVBsub code there, so no matter if they are bitmap or text-based subs all existing and future subtile code is collected there. This will help reduce future code replication by sharing common code, thus making it easier to add support for additional subtitles.
    • Maybe use MPlayer's recently added "libass" (SSA/ASS subtile reader) as a base for such a common library?
  • Support for advanced SSA/ASS rendering using libass or asa or any other mean,
  • Support bold, italic, underline, RGB colors, size changes and font changes for a whole line or part of one line, (not all of these are supported now)
  • Line 23 signal (a.k.a. "Wide-screen signal") detecting and use for DVD-Video (VobSub)
  • Support for the subtitles HTML tags
  • Capability of displaying subtitles with no video enabled (for example for audio-books)
  • Support for Karaoke subtitles (for kar and cdg, etc.)
  • Capability of moving the subtitles in the picture (freetype renderer)
  • Support more subtitle formats (text and bitmap-based):
    • Closed captioning (CC) subtile support - (Closed captions for the deaf and hard of hearing, also known as "Line 21 captioning", uses VobSub bitmaps)
    • DirectVobSub (VSFilter) - standard VobSubs (DVD-Video subtitles) embedded in AVI containers
    • DivX Subtitles (XSUB) display/reader/decoder (Note: bitmap based subtitle, similar to VobSub)
    • SubRip (.srt) subtile support (Note: simple text-based based subtitle with timestamp)
    • Subviewer (.sub) subtile support (Note: simple text-based based subtitle with timestamp)
    • MicroDVD (.sub) subtile support (Note: simple text-based based subtitle with timestamp
    • Sami (.smi) subtile support (Note: simple text-based based subtitle with timestamp)
    • SubStation Alpha (.ssa+.ass) subtile support (Note: advanced text-based based subtitle with timestamps and XY location on screen)
    • RealText (.rt) subtile support
    • PowerDivx (.psb) subtile support
    • Universal Subtitle Format (.usf) subtile support
    • Structured Subtitle Format (.ssf) subtile support

Misc

Snow

  • multiple reference frames improvements
    • decide which frames to keep (e.g. long-term refs)
    • some changes to the mv prediction code
  • non translational motion compensation
    • estimate non translational parameters per block by using surrounding motion vectors
    • add a ac coded bit per block to switch between translational and non-translational MC
    • borrow the non translational MC code from libmpcodecs/vf_perspective.c
    • some changes to the encoder to decide between translational and non t.
  • Trellis quantization (select quantized coefficient so as to minimize the rate distrortion
  • 4x4 sized block support (we have 16x16 and 8x8 currently)
  • 1/8 pel motion compensation / estimation support (pretty much just encoder changes needed which in case of the iterative me should be trivial)
  • improve the intra color decision


A/V Filters