]> git.sesse.net Git - ffmpeg/blobdiff - doc/muxers.texi
Merge remote-tracking branch 'qatar/master'
[ffmpeg] / doc / muxers.texi
index 66ea95ec188e25212e7fed0cb5f48f805dd97b24..d2aa75e81817b8ff35f7fb185f09365a8b5f6089 100644 (file)
@@ -43,12 +43,12 @@ You can print the CRC to stdout with the command:
 ffmpeg -i INPUT -f crc -
 @end example
 
-You can select the output format of each frame with @file{ffmpeg} by
+You can select the output format of each frame with @command{ffmpeg} by
 specifying the audio and video codec and format. For example to
 compute the CRC of the input audio converted to PCM unsigned 8-bit
 and the input video converted to MPEG-2 video, use the command:
 @example
-ffmpeg -i INPUT -acodec pcm_u8 -vcodec mpeg2video -f crc -
+ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f crc -
 @end example
 
 See also the @ref{framecrc} muxer.
@@ -79,17 +79,18 @@ You can print the CRC of each decoded frame to stdout with the command:
 ffmpeg -i INPUT -f framecrc -
 @end example
 
-You can select the output format of each frame with @file{ffmpeg} by
+You can select the output format of each frame with @command{ffmpeg} by
 specifying the audio and video codec and format. For example, to
 compute the CRC of each decoded input audio frame converted to PCM
 unsigned 8-bit and of each decoded input video frame converted to
 MPEG-2 video, use the command:
 @example
-ffmpeg -i INPUT -acodec pcm_u8 -vcodec mpeg2video -f framecrc -
+ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f framecrc -
 @end example
 
 See also the @ref{crc} muxer.
 
+@anchor{image2}
 @section image2
 
 Image file muxer.
@@ -119,26 +120,26 @@ The pattern "img%%-%d.jpg" will specify a sequence of filenames of the
 form @file{img%-1.jpg}, @file{img%-2.jpg}, ..., @file{img%-10.jpg},
 etc.
 
-The following example shows how to use @file{ffmpeg} for creating a
+The following example shows how to use @command{ffmpeg} for creating a
 sequence of files @file{img-001.jpeg}, @file{img-002.jpeg}, ...,
 taking one image every second from the input video:
 @example
-ffmpeg -i in.avi -r 1 -f image2 'img-%03d.jpeg'
+ffmpeg -i in.avi -vsync 1 -r 1 -f image2 'img-%03d.jpeg'
 @end example
 
-Note that with @file{ffmpeg}, if the format is not specified with the
+Note that with @command{ffmpeg}, if the format is not specified with the
 @code{-f} option and the output filename specifies an image file
 format, the image2 muxer is automatically selected, so the previous
 command can be written as:
 @example
-ffmpeg -i in.avi -r 1 'img-%03d.jpeg'
+ffmpeg -i in.avi -vsync 1 -r 1 'img-%03d.jpeg'
 @end example
 
 Note also that the pattern must not necessarily contain "%d" or
 "%0@var{N}d", for example to create a single image file
 @file{img.jpeg} from the input video you can employ the command:
 @example
-ffmpeg -i in.avi -f image2 -vframes 1 img.jpeg
+ffmpeg -i in.avi -f image2 -frames:v 1 img.jpeg
 @end example
 
 The image muxer supports the .Y.U.V image file format. This format is
@@ -147,6 +148,18 @@ each of the YUV420P components. To read or write this image file format,
 specify the name of the '.Y' file. The muxer will automatically open the
 '.U' and '.V' files as required.
 
+@section mov
+
+MOV / MP4 muxer
+
+The muxer options are:
+
+@table @option
+@item -moov_size @var{bytes}
+Reserves space for the moov atom at the beginning of the file instead of placing the
+moov atom at the end. If the space reserved is insufficient, muxing will fail.
+@end table
+
 @section mpegts
 
 MPEG transport stream muxer.
@@ -177,7 +190,7 @@ and @code{service_name}. If they are not set the default for
 @code{service_name} is "Service01".
 
 @example
-ffmpeg -i file.mpg -acodec copy -vcodec copy \
+ffmpeg -i file.mpg -c copy \
      -mpegts_original_network_id 0x1122 \
      -mpegts_transport_stream_id 0x3344 \
      -mpegts_service_id 0x5566 \
@@ -195,14 +208,14 @@ Null muxer.
 This muxer does not generate any output file, it is mainly useful for
 testing or benchmarking purposes.
 
-For example to benchmark decoding with @file{ffmpeg} you can use the
+For example to benchmark decoding with @command{ffmpeg} you can use the
 command:
 @example
 ffmpeg -benchmark -i INPUT -f null out.null
 @end example
 
 Note that the above command does not read or write the @file{out.null}
-file, but specifying the output file is required by the @file{ffmpeg}
+file, but specifying the output file is required by the @command{ffmpeg}
 syntax.
 
 Alternatively you can write the command as:
@@ -270,7 +283,38 @@ Both eyes laced in one Block, Right-eye view is first
 
 For example a 3D WebM clip can be created using the following command line:
 @example
-ffmpeg -i sample_left_right_clip.mpg -an -vcodec libvpx -metadata stereo_mode=left_right -y stereo_clip.webm
+ffmpeg -i sample_left_right_clip.mpg -an -c:v libvpx -metadata stereo_mode=left_right -y stereo_clip.webm
 @end example
 
+@section segment
+
+Basic stream segmenter.
+
+The segmenter muxer outputs streams to a number of separate files of nearly
+fixed duration. Output filename pattern can be set in a fashion similar to
+@ref{image2}.
+
+Every segment starts with a video keyframe, if a video stream is present.
+The segment muxer works best with a single constant frame rate video.
+
+Optionally it can generate a flat list of the created segments, one segment
+per line.
+
+@table @option
+@item segment_format @var{format}
+Override the inner container format, by default it is guessed by the filename
+extension.
+@item segment_time @var{t}
+Set segment duration to @var{t} seconds.
+@item segment_list @var{name}
+Generate also a listfile named @var{name}.
+@item segment_list_size @var{size}
+Overwrite the listfile once it reaches @var{size} entries.
+@end table
+
+@example
+ffmpeg -i in.mkv -c copy -map 0 -f segment -list out.list out%03d.nut
+@end example
+
+
 @c man end MUXERS