Commit 92f1940e authored by Anton Khirnov's avatar Anton Khirnov

avconv: replace -vcodec/-acodec/-scodec with a better system.

The new option doesn't depend on its placement wrt -new* options (which
don't exist anymore) and works in a similar way as per-stream AVOptions.

-[vas]codec remain as aliases to -codec:[vas]
parent ff884c79
This diff is collapsed.
...@@ -97,6 +97,34 @@ input file name ...@@ -97,6 +97,34 @@ input file name
@item -y @item -y
Overwrite output files. Overwrite output files.
@item -c[:@var{stream_type}][:@var{stream_index}] @var{codec}
@item -codec[:@var{stream_type}][:@var{stream_index}] @var{codec}
Select an encoder (when used before an output file) or a decoder (when used
before an input file) for one or more streams. @var{codec} is the name of a
decoder/encoder or a special value @code{copy} (output only) to indicate that
the stream is not to be reencoded.
@var{stream_type} may be 'v' for video, 'a' for audio, 's' for subtitle and 'd'
for data streams. @var{stream_index} is a global zero-based stream index if
@var{stream_type} isn't given, otherwise it counts only streams of the given
type. If @var{stream_index} is omitted, this option applies to all streams of
the given type or all streams of any type if @var{stream_type} is missing as
well (note that this only makes sense when all streams are of the same type or
@var{codec} is @code{copy}).
For example
@example
avconv -i INPUT -map 0 -c:v libx264 -c:a copy OUTPUT
@end example
encodes all video streams with libx264 and copies all audio streams.
For each stream, the last matching @code{c} option is applied, so
@example
avconv -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis OUTPUT
@end example
will copy all the streams except the second video, which will be encoded with
libx264, and the 138th audio, which will be encoded with libvorbis.
@item -t @var{duration} @item -t @var{duration}
Restrict the transcoded/captured video sequence Restrict the transcoded/captured video sequence
to the duration specified in seconds. to the duration specified in seconds.
...@@ -159,9 +187,6 @@ avconv -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg ...@@ -159,9 +187,6 @@ avconv -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg
@item -dframes @var{number} @item -dframes @var{number}
Set the number of data frames to record. Set the number of data frames to record.
@item -scodec @var{codec}
Force subtitle codec ('copy' to copy stream).
@item -slang @var{code} @item -slang @var{code}
Set the ISO 639 language code (3 letters) of the current subtitle stream. Set the ISO 639 language code (3 letters) of the current subtitle stream.
...@@ -282,8 +307,7 @@ It is of little use elsewise. ...@@ -282,8 +307,7 @@ It is of little use elsewise.
@item -bufsize @var{size} @item -bufsize @var{size}
Set video buffer verifier buffer size (in bits). Set video buffer verifier buffer size (in bits).
@item -vcodec @var{codec} @item -vcodec @var{codec}
Force video codec to @var{codec}. Use the @code{copy} special value to Set the video codec. This is an alias for @code{-codec:v}.
tell that the raw codec data must be copied as is.
@item -sameq @item -sameq
Use same quantizer as source (implies VBR). Use same quantizer as source (implies VBR).
...@@ -296,8 +320,8 @@ at the exact requested bitrate. ...@@ -296,8 +320,8 @@ at the exact requested bitrate.
On pass 1, you may just deactivate audio and set output to null, On pass 1, you may just deactivate audio and set output to null,
examples for Windows and Unix: examples for Windows and Unix:
@example @example
avconv -i foo.mov -vcodec libxvid -pass 1 -an -f rawvideo -y NUL avconv -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y NUL
avconv -i foo.mov -vcodec libxvid -pass 1 -an -f rawvideo -y /dev/null avconv -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y /dev/null
@end example @end example
@item -passlogfile @var{prefix} @item -passlogfile @var{prefix}
...@@ -541,7 +565,7 @@ Show QP histogram. ...@@ -541,7 +565,7 @@ Show QP histogram.
@item -vbsf @var{bitstream_filter} @item -vbsf @var{bitstream_filter}
Bitstream filters available are "dump_extra", "remove_extra", "noise", "h264_mp4toannexb", "imxdump", "mjpegadump", "mjpeg2jpeg". Bitstream filters available are "dump_extra", "remove_extra", "noise", "h264_mp4toannexb", "imxdump", "mjpegadump", "mjpeg2jpeg".
@example @example
avconv -i h264.mp4 -vcodec copy -vbsf h264_mp4toannexb -an out.h264 avconv -i h264.mp4 -c:v copy -vbsf h264_mp4toannexb -an out.h264
@end example @end example
@item -force_key_frames @var{time}[,@var{time}...] @item -force_key_frames @var{time}[,@var{time}...]
Force key frames at the specified timestamps, more precisely at the first Force key frames at the specified timestamps, more precisely at the first
...@@ -571,8 +595,7 @@ and is mapped to the corresponding demuxer options. ...@@ -571,8 +595,7 @@ and is mapped to the corresponding demuxer options.
@item -an @item -an
Disable audio recording. Disable audio recording.
@item -acodec @var{codec} @item -acodec @var{codec}
Force audio codec to @var{codec}. Use the @code{copy} special value to Set the audio codec. This is an alias for @code{-codec:a}.
specify that the raw codec data must be copied as is.
@item -alang @var{code} @item -alang @var{code}
Set the ISO 639 language code (3 letters) of the current audio stream. Set the ISO 639 language code (3 letters) of the current audio stream.
@end table @end table
...@@ -612,7 +635,7 @@ Bitstream filters available are "dump_extra", "remove_extra", "noise", "mp3comp" ...@@ -612,7 +635,7 @@ Bitstream filters available are "dump_extra", "remove_extra", "noise", "mp3comp"
@table @option @table @option
@item -scodec @var{codec} @item -scodec @var{codec}
Force subtitle codec ('copy' to copy stream). Set the subtitle codec. This is an alias for @code{-codec:s}.
@item -slang @var{code} @item -slang @var{code}
Set the ISO 639 language code (3 letters) of the current subtitle stream. Set the ISO 639 language code (3 letters) of the current subtitle stream.
@item -sn @item -sn
...@@ -620,7 +643,7 @@ Disable subtitle recording. ...@@ -620,7 +643,7 @@ Disable subtitle recording.
@item -sbsf @var{bitstream_filter} @item -sbsf @var{bitstream_filter}
Bitstream filters available are "mov2textsub", "text2movsub". Bitstream filters available are "mov2textsub", "text2movsub".
@example @example
avconv -i file.mov -an -vn -sbsf mov2textsub -scodec copy -f rawvideo sub.txt avconv -i file.mov -an -vn -sbsf mov2textsub -c:s copy -f rawvideo sub.txt
@end example @end example
@end table @end table
...@@ -677,7 +700,7 @@ For example, to select the stream with index 2 from input file ...@@ -677,7 +700,7 @@ For example, to select the stream with index 2 from input file
index 6 from input @file{b.mov} (specified by the identifier "1:6"), index 6 from input @file{b.mov} (specified by the identifier "1:6"),
and copy them to the output file @file{out.mov}: and copy them to the output file @file{out.mov}:
@example @example
avconv -i a.mov -i b.mov -vcodec copy -acodec copy -map 0:2 -map 1:6 out.mov avconv -i a.mov -i b.mov -c copy -map 0:2 -map 1:6 out.mov
@end example @end example
To select all video and the third audio stream from an input file: To select all video and the third audio stream from an input file:
...@@ -945,7 +968,7 @@ stream, in the order of the definition of output streams. ...@@ -945,7 +968,7 @@ stream, in the order of the definition of output streams.
You can transcode decrypted VOBs: You can transcode decrypted VOBs:
@example @example
avconv -i snatch_1.vob -f avi -vcodec mpeg4 -b 800k -g 300 -bf 2 -acodec libmp3lame -ab 128k snatch.avi avconv -i snatch_1.vob -f avi -c:v mpeg4 -b 800k -g 300 -bf 2 -c:a libmp3lame -ab 128k snatch.avi
@end example @end example
This is a typical DVD ripping example; the input is a VOB file, the This is a typical DVD ripping example; the input is a VOB file, the
...@@ -989,7 +1012,7 @@ only formats accepting a normal integer are suitable. ...@@ -989,7 +1012,7 @@ only formats accepting a normal integer are suitable.
You can put many streams of the same type in the output: You can put many streams of the same type in the output:
@example @example
avconv -i test1.avi -i test2.avi -map 0.3 -map 0.2 -map 0.1 -map 0.0 -vcodec copy -acodec copy -vcodec copy -acodec copy test12.nut avconv -i test1.avi -i test2.avi -map 0.3 -map 0.2 -map 0.1 -map 0.0 -c copy test12.nut
@end example @end example
The resulting output file @file{test12.avi} will contain first four streams from The resulting output file @file{test12.avi} will contain first four streams from
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment