summaryrefslogtreecommitdiff
path: root/doc/demuxers.texi
Commit message (Collapse)AuthorAgeFilesLines
* doc/demuxers: update mov sectionGyan Doshi2020-03-061-3/+70
| | | | Add details and all options for mov.c demuxer.
* avformat/img2dec: add option to provide metadata fields related to input pathAlexandre Heitor Schmidt2020-01-101-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libavformat/img2.h: New field export_path_metadata to VideoDemuxData to only allow the use of the extra metadata upon explicit user request, for security reasons. libavformat/img2dec.c: Modify image2 demuxer to make available two special metadata entries called lavf.image2dec.source_path and lavf.image2dec.source_basename, which represents, respectively, the complete path to the source image for the current frame and the basename i.e. the file name related to the current frame. These can then be used by filters like drawtext and others. The metadata fields will only be available when explicitly enabled with image2 option -export_path_metadata 1. doc/demuxers.texi: Documented the new metadata fields available for image2 and how to use them. doc/filters.texi: Added an example on how to use the new metadata fields with drawtext filter, in order to plot the input file path to each output frame. Usage example: ffmpeg -f image2 -export_path_metadata 1 -pattern_type glob -framerate 18 -i '/path/to/input/files/*.jpg' -filter_complex drawtext="fontsize=40:fontcolor=white: fontfile=FreeSans.ttf:borderw=2:bordercolor=black: text='%{metadata\:lavf.image2dec.source_basename\:NA}':x=5:y=50" output.avi Fixes #2874. Signed-off-by: Alexandre Heitor Schmidt <alexandre.schmidt@gmail.com> Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat/hls: correct grammatical errors of m3u8_hold_counters optionSteven Liu2019-11-271-1/+1
| | | | | | Suggested-by: Gyan <ffmpeg@gyani.pro> Suggested-by: Rodney Baker <rodney.baker@iinet.net.au> Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* avformat/hls: add option for the m3u8 list load max timesSteven Liu2019-11-251-0/+4
| | | | | | | set max times for load m3u8 when the m3u8 list refresh do not with new segments any times. Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* lavf/hls: add http_seekable option for HTTP partial requestsJun Zhao2019-08-081-0/+4
| | | | | | | | | | Add http_seekable option for HTTP partial requests, when The EXT-X-BYTERANGE tag indicates that a Media Segment is a sub-range of the resource identified by its URI, we can use HTTP partial requests to get the Media Segment. Reviewed-by: Steven Liu <lq@chinaffmpeg.org> Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
* lavf/hls: Cleanup the applehttpJun Zhao2019-04-151-11/+9
| | | | | | | | | | | | | | | | | | | | Cleanup the applehttp as demuxer name, when use the command : ffmpeg -formats, get the confused information like: " E hls Apple HTTP Live Streaming D hls,applehttp Apple HTTP Live Streaming " we don't use applehttp as the demuxer/muxer name usually, so cleanup the applehttp and update the documents. After the change, get the information from "ffmpeg -formats": " DE hls Apple HTTP Live Streaming " Reviewed-by: Steven Liu <lq@onvideo.cn> Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
* doc: vapoursynthGyan Doshi2018-12-081-0/+16
| | | | Add entry in external library list and demuxers.
* doc: libmodplugGyan Doshi2018-12-051-0/+58
| | | | Add entry in external library list and demuxers.
* doc: libgmeGyan Doshi2018-12-041-6/+18
| | | | Add entry in external library list and add details to demuxer entry.
* avformat/flvdec: add flv_full_metadata option into flvdecSteven Liu2018-08-071-0/+3
| | | | | | output all the metadata context when use this option. Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* avformat/flvdec: add flv_ignore_prevtag option into flvdecSteven Liu2018-08-071-0/+3
| | | | Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* avformat/mpegts: add merge_pmt_versions optionAman Gupta2018-05-181-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new optional flag makes it easier to deal with mpegts samples where the PMT is updated and elementary streams move to different PIDs in the middle of playback. Previously, new AVStreams were created per PID, and it was up to the user to figure out which streams had migrated to a new PID (by iterating over the list of AVProgram and making guesses), and switch seamlessly to the new AVStream during playback. Transcoding or remuxing these streams with ffmpeg on the CLI was also quite painful, and the user would need to extract each set of PIDs into a separate file and then stitch them back together. With this new option, the mpegts demuxer will automatically detect PMT changes and feed data from the new PID to the original AVStream that was created for the orignal PID. For mpegts samples with stream_identifier_descriptor available, the unique ID is used to merge PIDs together. If the stream id is not available, the demuxer attempts to map PIDs based on their position within the PMT. With this change, I am able to playback and transcode/remux these two samples which previously caused issues: https://tmm1.s3.amazonaws.com/pmt-version-change.ts https://kuroko.fushizen.eu/videos/pid_switch_sample.ts I also have another longer sample in which the PMT changes repeatedly and ES streams move to different pids three times during playback: https://tmm1.s3.amazonaws.com/multiple-pmt-change.ts Demuxing this sample with the new option shows several new log messages as the PMT changes are handled: [mpegts] detected PMT change (program=1, version=3/6, pcr_pid=0xf98/0xfb7) [mpegts] re-using existing video stream 0 (pid=0xf98) for new pid=0xfb7 [mpegts] re-using existing audio stream 1 (pid=0xf99) for new pid=0xfb8 [mpegts] re-using existing audio stream 2 (pid=0xf9a) for new pid=0xfb9 [mpegts] detected PMT change (program=1, version=6/3, pcr_pid=0xfb7/0xf98) [mpegts] detected PMT change (program=1, version=3/4, pcr_pid=0xf98/0xf9b) [mpegts] re-using existing video stream 0 (pid=0xf98) for new pid=0xf9b [mpegts] re-using existing audio stream 1 (pid=0xf99) for new pid=0xf9c [mpegts] re-using existing audio stream 2 (pid=0xf9a) for new pid=0xf9d [mpegts] detected PMT change (program=1, version=4/5, pcr_pid=0xf9b/0xfa9) [mpegts] re-using existing video stream 0 (pid=0xf98) for new pid=0xfa9 [mpegts] re-using existing audio stream 1 (pid=0xf99) for new pid=0xfaa [mpegts] re-using existing audio stream 2 (pid=0xf9a) for new pid=0xfab [mpegts] detected PMT change (program=1, version=5/6, pcr_pid=0xfa9/0xfb7) Signed-off-by: Aman Gupta <aman@tmm1.net>
* avformat/mpegts: add skip_unknown_pmt optionAman Gupta2018-05-181-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some filtered mpegts streams may erroneously include PMTs for programs that are not advertised in the PAT. This confuses ffmpeg and most players because multiple audio/video streams are created and it is unclear which ones actually contain data. See for example https://tmm1.s3.amazonaws.com/unknown-pmts.ts In this sample, the PAT advertises exactly one program. But the pid it points to for the program's PMT contains PMTs for other programs as well. This is because the broadcaster decided to re-use the same pid for multiple program PMTs. The hardware that filtered the original multi-program stream into a single-program stream did so by rewriting the PAT to contain only the program that was requested. But since it just passed through the PMT pid referenced in the PAT, multiple PMTs are still present for the other programs. Before: Input #0, mpegts, from 'unknown-pmts.ts': Duration: 00:00:10.11, start: 80741.189700, bitrate: 9655 kb/s Program 4 Stream #0:2[0x41]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], Closed Captions, 11063 kb/s, 59.94 fps, 59.94 tbr, 90k tbn, 119.88 tbc Stream #0:3[0x44](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 384 kb/s Stream #0:4[0x45](spa): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 128 kb/s No Program Stream #0:0[0x31]: Video: mpeg2video ([2][0][0][0] / 0x0002), none(tv), 90k tbr, 90k tbn, 90k tbc Stream #0:1[0x34](eng): Audio: ac3 (AC-3 / 0x332D4341), 0 channels, fltp Stream #0:5[0x51]: Video: mpeg2video ([2][0][0][0] / 0x0002), none, 90k tbr, 90k tbn Stream #0:6[0x54](eng): Audio: ac3 (AC-3 / 0x332D4341), 0 channels With skip_unknown_pmt=1: Input #0, mpegts, from 'unknown-pmts.ts': Duration: 00:00:10.11, start: 80741.189700, bitrate: 9655 kb/s Program 4 Stream #0:0[0x41]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], Closed Captions, 11063 kb/s, 59.94 fps, 59.94 tbr, 90k tbn, 119.88 tbc Stream #0:1[0x44](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 384 kb/s Stream #0:2[0x45](spa): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 128 kb/s Signed-off-by: Aman Gupta <aman@tmm1.net>
* dashdec: Support for multiple video/audio streamssfan52018-01-141-0/+10
| | | | Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* avformat/hls: enable http_multiple only for http/1.1 serversAman Gupta2017-12-261-1/+1
| | | | | | | | Some http/1.0 implementations, like python's SimpleHTTPServer, can only support one client connection at a time. Making a second request while the first is still connected leads to a deadlock. This change enables multiple connections for http/1.1 servers only, which need to support keepalive by default and should have no problem with concurrent requests. Signed-off-by: Aman Gupta <aman@tmm1.net>
* avformat/hls: add http_multiple optionAman Gupta2017-12-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | This improves network throughput of the hls demuxer by avoiding the latency introduced by downloading segments one at a time. The problem is particularly noticable over high-latency network connections: for instance, if RTT is 250ms, there will a 250ms idle period between when one segment response is read and the next one starts. The obvious solution to this is to use HTTP pipelining, where a second request can be sent (on the persistent http/1.1 connection) before the first response is fully read. Unfortunately the way the http protocol is implemented in avformat makes implementing pipleining very complex. Instead, this commit simulates pipelining using two separate persistent http connections. This has the advantage of working independently of the http_persistent option, and can be used with http/1.0 servers as well. The pair of connections is swapped every time a new segment starts downloading, and a request for the next segment is sent on the secondary connection right away. This means the second response will be ready and waiting by the time the current response is fully read. Signed-off-by: Aman Gupta <aman@tmm1.net> Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
* avformat/hls: add http_persistent optionAman Gupta2017-12-221-0/+4
| | | | | | | | | | | | | | | This teaches the HLS demuxer to use the HTTP protocols multiple_requests=1 option, to take advantage of "Connection: Keep-Alive" when downloading playlists and segments from the HLS server. With the new option, you can avoid TCP connection and TLS negotiation overhead, which is particularly beneficial when streaming via a high-latency internet connection. Similar to the http_persistent option recently implemented in hlsenc.c Signed-off-by: Aman Gupta <aman@tmm1.net> Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
* avformat/hls: Fix DoS due to infinite loopMichael Niedermayer2017-08-271-0/+18
| | | | | | | | | | | Fixes: loop.m3u The default max iteration count of 1000 is arbitrary and ideas for a better solution are welcome Found-by: Xiaohei and Wangchu from Alibaba Security Team Previous version reviewed-by: Steven Liu <lingjiujianke@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* doc: Add muxers/demuxers list optionMulvya2017-02-111-2/+3
| | | | | Signed-off-by: Mulvya <mulvya@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* flv demuxer supports live rtmp inputs but there is no any info about it in ↵Bela Bodecs2016-12-261-2/+8
| | | | | | | the docs. Signed-off-by: Bela Bodecs <bodecsb@vivanet.hu> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* doc/demuxers: restore alphabetical orderStefano Sabatini2016-10-131-40/+40
|
* doc: fix various typos and grammar errorsMoritz Barsnick2016-10-111-2/+2
| | | | | Signed-off-by: Moritz Barsnick <barsnick@gmx.net> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* docs/demuxers: add libopenmpt sectionJosh de Kock2016-07-211-0/+27
| | | | Signed-off-by: Josh de Kock <josh@itanimul.li>
* doc/demuxers: fix "Quicktme" typoLou Logan2016-04-131-2/+2
| | | | | Signed-off-by: Lou Logan <lou@lrcd.com> Found-by: furq
* avformat/concatdec: set safe mode to enabled instead of autoMichael Niedermayer2016-03-101-2/+4
| | | | | | | | | This is safer, as a selected demuxer could still mean that it was auto-detected by a user application Reviewed-previously-by: Nicolas George <george@nsup.org> Reviewed-previously-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* doc/demuxers: add some concat demuxer script examplesTobias Rapp2016-02-031-0/+27
| | | | Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
* avformat: Remove support for libquviKieran Kunhya2016-01-241-12/+0
| | | | | libquvi has not been updated since 2013. It also has a number of security issues.
* doc/demuxers: Document enable_drefs and use_absolute_pathMichael Niedermayer2016-01-231-0/+17
| | | | | Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/mpjpeg: utilize MIME boundary value to detect start of new frameAlex Agranovsky2015-12-021-0/+15
| | | | | | This code is disabled by default so not to regress endpoints sending invalid MIME, but can be enabled via AVOption 'strict_mime_boundary' Signed-off-by: Alex Agranovsky <alex@sighthound.com>
* concatdec: add option for adding segment start time and duration metadataMarton Balint2015-11-251-0/+8
| | | | | Reviewed-by: Nicolas George <george@nsup.org> Signed-off-by: Marton Balint <cus@passwd.hu>
* Add support for Audible AA filesVesselin Bontchev2015-08-211-0/+6
| | | | https://en.wikipedia.org/wiki/Audible.com#Quality
* doc/demuxers/mpegts: apply a minor grammar fix to option descriptionStefano Sabatini2015-08-141-1/+1
| | | | Consistently use impersonal form.
* doc/demuxers/mpegts: update documentationStefano Sabatini2015-08-141-0/+13
| | | | | | The description is yet crappy, it merely copies the description of the added and undocumented options and their value range. More descriptive documentation is welcome.
* concatdec: add support for injecting packet metadataMarton Balint2015-07-171-0/+5
| | | | | Reviewed-by: Nicolas George <george@nsup.org> Signed-off-by: Marton Balint <cus@passwd.hu>
* concatdec: add support for specifying outpoint of filesMarton Balint2015-07-171-0/+19
| | | | | Reviewed-by: Nicolas George <george@nsup.org> Signed-off-by: Marton Balint <cus@passwd.hu>
* concatdec: add support for specifying inpoint of filesMarton Balint2015-07-171-0/+17
| | | | | Reviewed-by: Nicolas George <george@nsup.org> Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat/concatdec: Enable auto_convert by defaultMichael Niedermayer2015-05-291-0/+1
| | | | | | | | Users have no means to find out from a failure how to make it work or is it preferred to check and print a warning for h264 concat without auto_convert ? Reviewed-by: Nicolas George <george@nsup.org> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* lavf/img2dec: add option to disable pattern matchingMarton Balint2015-05-121-0/+4
| | | | | | Signed-off-by: Marton Balint <cus@passwd.hu> Reviewed-by: Stefano Sabatini <stefasab@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* lavf/gif: Add an option max_gif_delay to limit the frame duration.Carl Eugen Hoyos2015-03-291-0/+5
| | | | Allows playback for the sample from ticket #4369 in less than 18 hours.
* doc: add entry for APNG demuxer where needed.Benoit Fouet2014-11-251-0/+20
| | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* doc/demuxers: document gif demuxerLou Logan2014-09-031-0/+34
| | | | Signed-off-by: Lou Logan <lou@lrcd.com>
* lavf/concatdec: implement automatic conversions.Nicolas George2014-04-291-0/+8
|
* Various small spelling fixes.Reimar Döffinger2014-04-221-1/+1
| | | | Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
* avformat/img2dec: support nanosecond file timesMichael Niedermayer2014-04-121-0/+2
| | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* lavf/concatdec: allow to match streams by id.Nicolas George2014-03-231-1/+17
| | | | | | That makes the concat demuxer usable with MPEG-PS streams, even when the streams in the different parts are detected in different order.
* Fix spelling errors in texi files: accomodate -> accommodate allows to -> ↵Andreas Cadhalpun2014-03-061-1/+1
| | | | | | allows one to choosen -> chosen compability -> compatibility explictly -> explicitly overriden -> overridden specifed -> specified Trasmission -> Transmission Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* doc/demuxers: fix image2 examplesPaul B Mahol2013-09-291-3/+3
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* Merge remote-tracking branch 'qatar/master'Michael Niedermayer2013-08-281-1/+12
|\ | | | | | | | | | | | | | | | | | | * qatar/master: doc: document the asf demuxer Conflicts: doc/demuxers.texi Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * doc: document the asf demuxerLuca Barbato2013-08-281-1/+12
| | | | | | | | And drop a typo from the previous FLV entry.
* | Merge commit '21015109ec0fac0f104a5355f272ecb956ba3f4e'Michael Niedermayer2013-08-281-0/+11
|\ \ | |/ | | | | | | | | | | | | | | | | * commit '21015109ec0fac0f104a5355f272ecb956ba3f4e': doc: Document the flv demuxer Conflicts: doc/demuxers.texi Merged-by: Michael Niedermayer <michaelni@gmx.at>