fftools/ffmpeg_demux: implement -bsf for input
Previously bitstream filters could only be applied right before muxing, this allows to apply them right after demuxing.
This commit is contained in:
@@ -2093,13 +2093,13 @@ an output mpegts file:
|
||||
ffmpeg -i inurl -streamid 0:33 -streamid 1:36 out.ts
|
||||
@end example
|
||||
|
||||
@item -bsf[:@var{stream_specifier}] @var{bitstream_filters} (@emph{output,per-stream})
|
||||
Apply bitstream filters to matching streams.
|
||||
@item -bsf[:@var{stream_specifier}] @var{bitstream_filters} (@emph{input/output,per-stream})
|
||||
Apply bitstream filters to matching streams. The filters are applied to each
|
||||
packet as it is received from the demuxer (when used as an input option) or
|
||||
before it is sent to the muxer (when used as an output option).
|
||||
|
||||
@var{bitstream_filters} is a comma-separated list of bitstream filter
|
||||
specifications. The specified bitstream filters are applied to coded packets in
|
||||
the order they are written in. Each bitstream filter specification is of the
|
||||
form
|
||||
specifications, each of the form
|
||||
@example
|
||||
@var{filter}[=@var{optname0}=@var{optval0}:@var{optname1}=@var{optval1}:...]
|
||||
@end example
|
||||
@@ -2107,12 +2107,22 @@ Any of the ',=:' characters that are to be a part of an option value need to be
|
||||
escaped with a backslash.
|
||||
|
||||
Use the @code{-bsfs} option to get the list of bitstream filters.
|
||||
|
||||
E.g.
|
||||
@example
|
||||
ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
|
||||
ffmpeg -bsf:v h264_mp4toannexb -i h264.mp4 -c:v copy -an out.h264
|
||||
@end example
|
||||
applies the @code{h264_mp4toannexb} bitstream filter (which converts
|
||||
MP4-encapsulated H.264 stream to Annex B) to the @emph{input} video stream.
|
||||
|
||||
On the other hand,
|
||||
@example
|
||||
ffmpeg -i file.mov -an -vn -bsf:s mov2textsub -c:s copy -f rawvideo sub.txt
|
||||
@end example
|
||||
applies the @code{mov2textsub} bitstream filter (which extracts text from MOV
|
||||
subtitles) to the @emph{output} subtitle stream. Note, however, that since both
|
||||
examples use @code{-c copy}, it matters little whether the filters are applied
|
||||
on input or output - that would change if transcoding was happening.
|
||||
|
||||
@item -tag[:@var{stream_specifier}] @var{codec_tag} (@emph{input/output,per-stream})
|
||||
Force a tag/fourcc for matching streams.
|
||||
|
||||
Reference in New Issue
Block a user