From patchwork Tue Nov 15 22:15:27 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Moritz Barsnick X-Patchwork-Id: 1437 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.90.1 with SMTP id o1csp1844011vsb; Tue, 15 Nov 2016 14:15:53 -0800 (PST) X-Received: by 10.28.184.88 with SMTP id i85mr5590483wmf.49.1479248152968; Tue, 15 Nov 2016 14:15:52 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id v127si4687995wmg.9.2016.11.15.14.15.52; Tue, 15 Nov 2016 14:15:52 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 12D92689D48; Wed, 16 Nov 2016 00:15:50 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2AF33689C13 for ; Wed, 16 Nov 2016 00:15:43 +0200 (EET) Received: from paradise.fritz.box.fritz.box ([80.144.0.203]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0MfAog-1cQ6Nw3HwY-00OpeR; Tue, 15 Nov 2016 23:15:42 +0100 From: Moritz Barsnick To: FFmpeg development discussions and patches Date: Tue, 15 Nov 2016 23:15:27 +0100 Message-Id: <1479248127-19895-1-git-send-email-barsnick@gmx.net> X-Mailer: git-send-email 2.7.4 X-Provags-ID: V03:K0:EH0YL0RFsw2tYrc5ptGBUXft0N4NhL0rUCAPmG5zAUAv34SKSZV 7rYryomguVB00//NIy0aCK1jHqhy1jozUeukvBirQ9gIr45tMD8EPABYXY9CIjo8XOoaOFS htJpwJ3GiSWcG1eyJzlIjMOliP4CG3/lqcGkCSTz08vEg8jTv4l1ehVXu5KGosj/8sI9OfA m6hJxgDLhUSdQbI11XJEw== X-UI-Out-Filterresults: notjunk:1; V01:K0:ENk1J7meL38=:5lNpIWyAIjjeLT1/DGwVCs wlkVT73oAe6YfPTSHXTAinZCd3ZyEv+3kyOAUR9djMrRIQZDFieXhIY3gIzOqk8Kwu3mt/pJ3 RFpD1OtneP667Px7XSJxhoyFy+pIJZLZQMrBYrPA1G6n+4V1H5Wk2WQyfMbPfyNnG9hKfjsTw /KmO5igMEQkJWAvGEaQ2phAb01LbQ1PLte6jjtrLt+UTg+oap0BdhBjlgSm5Ji4BRNywE0g/s fOZetpf4un+Lzo0H89+F85YZNmARHb3eYa8icBYpXyzOVU63zqnYNX2w2TP+idkwKh0YXin4I 1xN52zdf0/nDTipaR8vD/3m9mD+0tlktZ+c2yP7GDfYZnb70dvf9qg4U6Hh3rWEdimX1KyTSp jVAqfZSKDg6XEQAOkR5DiXDiFQ15J3ALcMTysxIpcMIlKxjQQ2o3KXf1qIP5us/TukEcAnYkF AalCtOtkJvSJ65Bu+7DDtEpP1E7joRboz3zsp5w5HsojwVdkrP1bQhD2oooUNRVYt+FC9aLXo w7DCVtoJICrcQimriD1K7bIue8TdslwfcYP4nHlBlQ1/Tr+iMchvqemvU0s/GFskgUC7zQa2i 9emBFQkovHCKf+U+DBok1RQpOqBGLOaqJZltu3hrec9NcLjuCMr/R+W8M2XBqG1Re9QiQasBG Ebp3PKV2yrG0rc1uRIl/OFFlBrCVuoW52+Fac8gES0E6MB2eTYwIne5NoHw0TDnRcTYA3tCsx JjqEAtSGjbPiRL3RF4SgStQNQvYLepn1JiXN66vCOiHY53OaQikSTAAgqo8= Subject: [FFmpeg-devel] [PATCH] doc/bsfs: various improvements X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Moritz Barsnick MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" - Restored alphabetical order. - Enhanced sections aac_adtstoasc, dca_core, h264_mp4toannexb. - Added sections hevc_mp4toannexb and vp9_superframe. - Renamed (if required) and filled previously empty sections mjpegadump, mov2textsub/text2movsub, mp3decomp, and remove_extra. Signed-off-by: Moritz Barsnick --- I can also submit this as a series of smaller commits, if that's easier to review. My original local branch had 10 commits... doc/bitstream_filters.texi | 95 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 83 insertions(+), 12 deletions(-) diff --git a/doc/bitstream_filters.texi b/doc/bitstream_filters.texi index a85327f..e397ff9 100644 --- a/doc/bitstream_filters.texi +++ b/doc/bitstream_filters.texi @@ -26,19 +26,26 @@ with their parameters, if any. @section aac_adtstoasc -Convert MPEG-2/4 AAC ADTS to MPEG-4 Audio Specific Configuration -bitstream filter. +Convert MPEG-2/4 AAC ADTS to an MPEG-4 Audio Specific Configuration +bitstream. This filter creates an MPEG-4 AudioSpecificConfig from an MPEG-2/4 ADTS header and removes the ADTS header. -This is required for example when copying an AAC stream from a raw -ADTS AAC container to a FLV or a MOV/MP4 file. +This filter is required for example when copying an AAC stream from a +raw ADTS AAC or an MPEG-TS container to MP4A-LATM, to an FLV file, or +to MOV/MP4 files and related formats such as 3GP or M4A. Please note +that it is auto-inserted for MP4A-LATM and MOV/MP4 and related formats. @section chomp Remove zero padding at the end of a packet. +@section dca_core + +Extract the core from a DCA/DTS stream, dropping extensions such as +DTS-HD. + @section dump_extra Add extradata to the beginning of the filtered packets. @@ -67,10 +74,6 @@ the header stored in extradata to the key packets: ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts @end example -@section dca_core - -Extract DCA core from DTS-HD streams. - @section h264_mp4toannexb Convert an H.264 bitstream from length prefixed mode to start code @@ -78,7 +81,7 @@ prefixed mode (as defined in the Annex B of the ITU-T H.264 specification). This is required by some streaming formats, typically the MPEG-2 -transport stream format ("mpegts"). +transport stream format (muxer @code{mpegts}). For example to remux an MP4 file containing an H.264 stream to mpegts format with @command{ffmpeg}, you can use the command: @@ -87,6 +90,29 @@ format with @command{ffmpeg}, you can use the command: ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts @end example +Please note that this filter is auto-inserted for MPEG-TS (muxer +@code{mpegts}) and raw H.264 (muxer @code{h264}) output formats. + +@section hevc_mp4toannexb + +Convert an HEVC/H.265 bitstream from length prefixed mode to start code +prefixed mode (as defined in the Annex B of the ITU-T H.265 +specification). + +This is required by some streaming formats, typically the MPEG-2 +transport stream format (muxer @code{mpegts}). + +For example to remux an MP4 file containing an HEVC stream to mpegts +format with @command{ffmpeg}, you can use the command: + +@example +ffmpeg -i INPUT.mp4 -codec copy -bsf:v hevc_mp4toannexb OUTPUT.ts +@end example + +Please note that this filter is auto-inserted for MPEG-TS (muxer +@code{mpegts}) and raw HEVC/H.265 (muxer @code{h265} or +@code{hevc}) output formats. + @section imxdump Modifies the bitstream to fit in MOV and to be usable by the Final Cut @@ -137,11 +163,22 @@ exiftran -i -9 frame*.jpg ffmpeg -i frame_%d.jpg -c:v copy rotated.avi @end example -@section mjpega_dump_header +@section mjpegadump + +Add an MJPEG A header to the bitstream, to enable decoding by +Quicktime. -@section movsub +@anchor{mov2textsub} +@section mov2textsub -@section mp3_header_decompress +Extract a representable text file from MOV subtitles, stripping the +metadata header from each subtitle packet. + +See also the @ref{text2movsub} filter. + +@section mp3decomp + +Decompress non-standard compressed MP3 audio headers. @section mpeg4_unpack_bframes @@ -181,4 +218,38 @@ applies the modification to every byte. @section remove_extra +Remove extradata from packets. + +It accepts the following parameter: +@table @option +@item freq +Set which frame types to remove extradata from. + +@table @samp +@item k +Remove extradata from non-keyframes only. + +@item keyframe +Remove extradata from keyframes only. + +@item e, all +Remove extradata from all frames. + +@end table +@end table + +@anchor{text2movsub} +@section text2movsub + +Convert text subtitles to MOV subtitles (as used by the @code{mov_text} +codec) with metadata headers. + +See also the @ref{mov2textsub} filter. + +@section vp9_superframe + +Merge VP9 invisible (alt-ref) frames back into VP9 superframes. This +fixes merging of split/segmented VP9 streams where the alt-ref frame +was split from its visible counterpart. + @c man end BITSTREAM FILTERS