FFmpeg Wishlist: Difference between revisions

From MultimediaWiki
Jump to navigation Jump to search
(→‎Decoders: indeo 5 decoder)
(remove completed things, try to remove entire list or port it to small tasks page...)
 
(172 intermediate revisions by 15 users not shown)
Line 1: Line 1:
A temporary FFmpeg wish/todo list:
The various desired features for FFmpeg can be found in the following pages:
* [https://roundup.mplayerhq.hu/roundup/ffmpeg/issue?%40&%40columns=title&%40columns=topic&id=&%40columns=id&%40columns=activity&%40sort=activity&%40columns=priority&%40group=priority&type=2&status=2&%40columns=substatus&%40pagesize=50&%40startwith=0&%40action=search Open feature requests in the issue tracker]
* [http://svn.mplayerhq.hu/ffmpeg/trunk/doc/TODO?view=co TODO file in the SVN tree]
* [[FFmpeg Summer Of Code]] pages
* Finish and commit any code not yet commited at the [http://svn.mplayerhq.hu/soc/ SoC FFmpeg tree]
 
Also, other features requests can be found in:
* [https://roundup.mplayerhq.hu/roundup/ffmpeg/issue?%40&%40columns=title&%40columns=topic&id=&%40columns=id&%40columns=activity&%40sort=activity&%40columns=priority&%40group=priority&type=2&status=1&%40columns=substatus&%40pagesize=50&%40startwith=0&%40action=search Feature requests marked as "new"]
* Below in this page (mostly deprecated items)
 
 
See also the discussion about [[Ffmpeg audio api|Audio API]] TODOs.
 
 
 
 
 
 
= Old list =
 
The following is deprecated, please '''do not''' add new items to this list, use instead the issue tracker. Also, send a message to the mailing list before implementing one of those items. They could be work-in-progress or not wanted anymore.
 
Moving any of these items to a '''proper''' feature request in the issue tracker is welcome.
 
 
== Decoders ==
== Decoders ==
* g723.1/rtp decoder
* [[xeb|XEB]] - the [[RatDVD]] video codec (stored in [[xvo|XVO]] container format)
*  g729/rtp decoder
* VNC decoder, files created by vncrec. Re-use code from [[VMware Video]] decoder http://www.sodan.org/~penny/vncrec/
*  Bethsoft VID decoder
* Additional game formats support:
* a Monkey's Audio decoder, look at the c++ sdk sources
** [[VQA]] v3 support, see http://www.gamers.org/pub/idgames2/planetquake/planetcnc/cncdz/
*  a JPEG2000 decoder
** [[Gremlin Digital Video]]
*  a gsm decoder
** [[M95]]
*  QCELP decoder [http://www.3gpp2.org/Public_html/specs/alltsgscfm.cfm spec] is c.s0020 and source is c.r0020
* AMV decoder, http://scrub50187.com/ has the creator. wikipedia has [http://en.wikipedia.org/wiki/AMV_video_format articles] about the format also.
* integer only vorbis decoder (to replace tremor)
* LGPL'ed AAC decoder
* Add j-type picture support to wmv8 decoder
* MLP decoder
* add b-frame support to ffsvq3
* Indeo 5 decoder


== Demuxers ==
== Demuxers ==
* iff demuxer (with anim and sound decoding), xine has a decoder for it
* [[FluxDVD]] / [[RatDVD]] demuxer for [[xvo|XVO]] files (Note! [[RatDVD]] is the predecesor of [[FluxDVD]])
* g723.1/rtp demuxer
 
* g729/rtp demuxer
== Muxers ==
* Bethsoft VID demuxer
* DVB (MPEG-TS) muxer inside DVB containers
* vivo demuxer, look at the mplayer vivo demuxer for reference
** MPEG-1/2 video-streams inside DVB containers
* a xmv demuxer, look at http://thread.gmane.org/gmane.comp.video.ffmpeg.devel/25207/focus=25224 and http://www.maxconsole.net/?mode=news&newsid=411 for hints; also look at http://sourceforge.net/tracker/index.php?func=detail&aid=1097094&group_id=53761&atid=471491 (should be a working demuxer/decoder)
** MPEG-4 ASP video-streams inside DVB containers
* AMV demuxer, http://scrub50187.com/ has the creator. wikipedia has [http://en.wikipedia.org/wiki/AMV_video_format articles] about the format also.
** MPEG-4 AVC (H.264) video-streams inside DVB containers
** AC3 audio-streams inside DVB containers
*** Mutiple AC3 audio-streams inside DVB containers
** MP3 audio-streams inside DVB containers
*** Mutiple MP3 audio-streams inside DVB containers
* NSV muxer
* NSA muxer
 
 


== Features ==
== Features ==
*  a new audio api
*  radix-4 fft routines
*  grabbing from video devices under windows, apply this vfw capture patch http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2006-December/005607.html
*  -[h|v]flip options for ffplay
* improved documentation (web,manpage)
== Misc ==
*  NSV muxer
* add PAFF to [[H.264]] decoder
* improve seeking in asf files
* clean up alac decoder
*  dts in wav support
*  raw dts support
* integrate speex, glue code or native
* add xing or vbri header parsing support to the mp3 decoder/parser
*  a aac parser so -acodec copy to mp4/mov works
* clean up the h263 rtp patch found on this page: http://www.salyens.com/downloads/index.html#ffmpeg-0.4.7
* add nice error messages to the flv demuxer(Nelly Moser) amr decoder and dv encoder/decoder
* game formats:
** [[Gremlin Digital Video]]
** [[ARMovie|ARMovie/RPL]]
** [[ESCAPE]]
** [[C93]]
** [[M95]]
** [[THP]]
* subtitle support


* Improved existing documentation and add additional means to document
**Web
**WIKI
**manpage


== [[Snow]] ==
== Streaming Media Network Protocols ==
* multiple reference frames improvements
Streaming Media Network Protocols (client and server-side) improvements/enhancements and related ideas for new features/functions.
** decide which frames to keep (e.g. long-term refs)
* Create a common 'stream demuxer/parser library' for the client-side to receive input streams (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.
** some changes to the mv prediction code
**Maybe use either [http://www.mplayerhq.hu MPlayer]'s "''stream''" library structure, [http://www.live555.com LIVE555], [http://curl.haxx.se cURL], or probebly the better [http://streaming.polito.it/client/library libnms] (from [http://streaming.polito.it/client NeMeSi]) as a base for such a common library?
* non translational motion compensation
*Add support for additional streaming protocols (on the client side) and improve/enhance support for existing protocols:
** estimate non translational parameters per block by using surrounding motion vectors
** HTTP (Hypertext Transfer Protocol) client
** add a ac coded bit per block to switch between translational and non-translational MC
*** plus a SSL (Secure Sockets Layer) client support for HTTPS
** borrow the non translational MC code from libmpcodecs/vf_perspective.c
** UDP (User Datagram Protocol) client
** some changes to the encoder to decide between translational and non t.
** RTSP - Real-Time Streaming Protocol (RFC2326) client
* Trellis quantization (select quantized coefficient so as to minimize the rate distrortion
** RTP/RTCP - Real-Time Transport Protocol/RTP Control Protocol (RFC3550) client
* 4x4 sized block support (we have 16x16 and 8x8 currently)
** RTP Profile for Audio and Video Conferences with Minimal Control (RFC3551) client
* 1/8 pel motion compensation / estimation support (pretty much just encoder changes needed which in case of the iterative me should be trivial)
** RealMedia RTSP/RDT (Real Time Streaming Protocol /  Real Data Transport)  client
* improve the intra color decision
** SDP (Service Discovery Protocol) / SSDP (Simple Service Discovery Protocol)  client
** MMS (Microsoft Media Services) client
*** including the subprotocol mmsh (MMS over HTTP) and mmst (MMS over TCP)
*FFServer (streaming server) updating and improving:
**FFServer code hasn't been update for quite a while
**Support for RTSP interleaved RTP media
**RTSP over HTTP tunneling
**SLL (Secure Sockets Layer) support
**TLS (Transport Layer Security) support
**SCTP (Stream Control Transmission Protocol) support
***including tunnel SCTP over UDP
**Per-asset accounting options
**Profiling and performance improvements of the RTSP, HTTP and RTP server code
**Streaming to clients like WMP 9, 10 and 11 is broken
**MMS server streaming support in FFServer, (especially for Linux).
*** including the subprotocol mmsh (MMS over HTTP) and mmst (MMS over TCP)
*** Note that al3x has gotten something working with ffserver, you might want to ask him what needs to be done as well :) --[[User:Compn|Compn]] 14:22, 19 March 2007 (EDT)
***You should also take a look at the [http://streaming.polito.it/server FENG (RTSP Streaming Server)] code, [http://streaming.polito.it/embedded NetEmbryo (Embedded Open Media Streaming Library)], and also [http://curl.haxx.se cURL]  --[[User:Gamester17|Gamester17]] 11:20, 29 March 2007 (GMT+1)


==See Also==
*[[FFmpeg Summer Of Code]] for more suggestions/requests (ideas for developers).
*[http://bugzilla.mplayerhq.hu/buglist.cgi?query_format=specific&order=relevance+desc&bug_status=__open__&product=FFmpeg&content= FFmpeg bugs] for bugs in FFmpegs (codecs) that you can help fix or add addition information/samples to.
*[[:Category:Formats missing in FFmpeg]] for formats not implemented in ffmpeg yet


== A/V Filters ==
[[Category:FFmpeg]]
* adopt mplayer filter system or create new one.
**http://article.gmane.org/gmane.comp.video.ffmpeg.devel/39130
***for michaelni's idea of what to do
* decide on name.
** libavfilter (conflicts with LAVF)? libavmunge?

Latest revision as of 05:37, 4 October 2011

The various desired features for FFmpeg can be found in the following pages:

Also, other features requests can be found in:


See also the discussion about Audio API TODOs.




Old list

The following is deprecated, please do not add new items to this list, use instead the issue tracker. Also, send a message to the mailing list before implementing one of those items. They could be work-in-progress or not wanted anymore.

Moving any of these items to a proper feature request in the issue tracker is welcome.


Decoders

Demuxers

Muxers

  • DVB (MPEG-TS) muxer inside DVB containers
    • MPEG-1/2 video-streams inside DVB containers
    • MPEG-4 ASP video-streams inside DVB containers
    • MPEG-4 AVC (H.264) video-streams inside DVB containers
    • AC3 audio-streams inside DVB containers
      • Mutiple AC3 audio-streams inside DVB containers
    • MP3 audio-streams inside DVB containers
      • Mutiple MP3 audio-streams inside DVB containers
  • NSV muxer
  • NSA muxer


Features

  • Improved existing documentation and add additional means to document
    • Web
    • WIKI
    • manpage

Streaming Media Network Protocols

Streaming Media Network Protocols (client and server-side) improvements/enhancements and related ideas for new features/functions.

  • Create a common 'stream demuxer/parser library' for the client-side to receive input streams (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 structure, LIVE555, cURL, or probebly the better libnms (from NeMeSi) as a base for such a common library?
  • Add support for additional streaming protocols (on the client side) and improve/enhance support for existing protocols:
    • HTTP (Hypertext Transfer Protocol) client
      • plus a SSL (Secure Sockets Layer) client support for HTTPS
    • UDP (User Datagram Protocol) client
    • RTSP - Real-Time Streaming Protocol (RFC2326) client
    • RTP/RTCP - Real-Time Transport Protocol/RTP Control Protocol (RFC3550) client
    • RTP Profile for Audio and Video Conferences with Minimal Control (RFC3551) client
    • RealMedia RTSP/RDT (Real Time Streaming Protocol / Real Data Transport) client
    • SDP (Service Discovery Protocol) / SSDP (Simple Service Discovery Protocol) client
    • MMS (Microsoft Media Services) client
      • including the subprotocol mmsh (MMS over HTTP) and mmst (MMS over TCP)
  • FFServer (streaming server) updating and improving:
    • FFServer code hasn't been update for quite a while
    • Support for RTSP interleaved RTP media
    • RTSP over HTTP tunneling
    • SLL (Secure Sockets Layer) support
    • TLS (Transport Layer Security) support
    • SCTP (Stream Control Transmission Protocol) support
      • including tunnel SCTP over UDP
    • Per-asset accounting options
    • Profiling and performance improvements of the RTSP, HTTP and RTP server code
    • Streaming to clients like WMP 9, 10 and 11 is broken
    • MMS server streaming support in FFServer, (especially for Linux).

See Also