]> git.sesse.net Git - ffmpeg/blobdiff - doc/muxers.texi
doc/muxers/image2: apply several formatting changes
[ffmpeg] / doc / muxers.texi
index 776ba2b7b987278cc5c830efd1dc508ca87ed976..989cb96f6dd9ceef2dc9f5f742551b8e9224a6d9 100644 (file)
@@ -184,26 +184,49 @@ can not be smaller than one centi second.
 @section hls
 
 Apple HTTP Live Streaming muxer that segments MPEG-TS according to
-the HTTP Live Streaming specification.
+the HTTP Live Streaming (HLS) specification.
 
 It creates a playlist file and numbered segment files. The output
 filename specifies the playlist filename; the segment filenames
 receive the same basename as the playlist, a sequential number and
 a .ts extension.
 
+For example, to convert an input file with @command{ffmpeg}:
 @example
 ffmpeg -i in.nut out.m3u8
 @end example
 
+See also the @ref{segment} muxer, which provides a more generic and
+flexible implementation of a segmenter, and can be used to perform HLS
+segmentation.
+
+This muxer supports the following options:
+
 @table @option
-@item -hls_time @var{seconds}
-Set the segment length in seconds.
-@item -hls_list_size @var{size}
-Set the maximum number of playlist entries.
-@item -hls_wrap @var{wrap}
-Set the number after which index wraps.
-@item -start_number @var{number}
-Start the sequence from @var{number}.
+@item hls_time @var{seconds}
+Set the segment length in seconds. Default value is 2.
+
+@item hls_list_size @var{size}
+Set the maximum number of playlist entries. If set to 0 the list file
+will contain all the segments. Default value is 5.
+
+@item hls_wrap @var{wrap}
+Set the number after which the segment filename number (the number
+specified in each segment file) wraps. If set to 0 the number will be
+never wrapped. Default value is 0.
+
+This option is useful to avoid to fill the disk with many segment
+files, and limits the maximum number of segment files written to disk
+to @var{wrap}.
+
+@item start_number @var{number}
+Start the playlist sequence number from @var{number}. Default value is
+0.
+
+Note that the playlist sequence number must be unique for each segment
+and it is not to be confused with the segment filename sequence number
+which can be cyclic, for example if the @option{wrap} option is
+specified.
 @end table
 
 @anchor{ico}
@@ -291,16 +314,32 @@ Note also that the pattern must not necessarily contain "%d" or
 ffmpeg -i in.avi -f image2 -frames:v 1 img.jpeg
 @end example
 
-@table @option
-@item start_number @var{number}
-Start the sequence from @var{number}. Default value is 1. Must be a
-non-negative number.
+The @option{strftime} option allows you to expand the filename with
+date and time information. Check the documentation of
+the @code{strftime()} function for the syntax.
+
+For example to generate image files from the @code{strftime()}
+"%Y-%m-%d_%H-%M-%S" pattern, the following @command{ffmpeg} command
+can be used:
+@example
+ffmpeg -f v4l2 -r 1 -i /dev/video0 -f image2 -strftime 1 "%Y-%m-%d_%H-%M-%S.jpg"
+@end example
 
-@item -update @var{number}
-If @var{number} is nonzero, the filename will always be interpreted as just a
-filename, not a pattern, and this file will be continuously overwritten with new
-images.
+@subsection Options
 
+@table @option
+@item start_number
+Start the sequence from the specified number. Default value is 1. Must
+be a non-negative number.
+
+@item update
+If set to 1, the filename will always be interpreted as just a
+filename, not a pattern, and the corresponding file will be continuously
+overwritten with new images. Default value is 0.
+
+@item strftime
+If set to 1, expand the filename with date and time information from
+@code{strftime()}. Default value is 0.
 @end table
 
 The image muxer supports the .Y.U.V image file format. This format is
@@ -318,22 +357,22 @@ This muxer implements the matroska and webm container specs.
 The recognized metadata settings in this muxer are:
 
 @table @option
+@item title
+Set title name provided to a single track.
 
-@item title=@var{title name}
-Name provided to a single track
-@end table
+@item language
+Specify the language of the track in the Matroska languages form.
 
-@table @option
+The language can be either the 3 letters bibliographic ISO-639-2 (ISO
+639-2/B) form (like "fre" for French), or a language code mixed with a
+country code for specialities in languages (like "fre-ca" for Canadian
+French).
 
-@item language=@var{language name}
-Specifies the language of the track in the Matroska languages form
-@end table
-
-@table @option
+@item stereo_mode
+Set stereo 3D video layout of two views in a single video track.
 
-@item stereo_mode=@var{mode}
-Stereo 3D video layout of two views in a single video track
-@table @option
+The following values are recognized:
+@table @samp
 @item mono
 video is not stereo
 @item left_right
@@ -375,7 +414,6 @@ ffmpeg -i sample_left_right_clip.mpg -an -c:v libvpx -metadata stereo_mode=left_
 This muxer supports the following options:
 
 @table @option
-
 @item reserve_index_space
 By default, this muxer writes the index for seeking (called cues in Matroska
 terms) at the end of the file, because it cannot know in advance how much space
@@ -390,7 +428,6 @@ for most use cases should be about 50kB per hour of video.
 
 Note that cues are only written if the output is seekable and this option will
 have no effect if it is not.
-
 @end table
 
 @anchor{md5}
@@ -648,11 +685,12 @@ situations, giving a small seek granularity at the cost of additional container
 overhead.
 @end table
 
+@anchor{segment}
 @section segment, stream_segment, ssegment
 
 Basic stream segmenter.
 
-The segmenter muxer outputs streams to a number of separate files of nearly
+This 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}.
 
@@ -678,6 +716,9 @@ the option @var{segment_list}. The list type is specified by the
 list are set by default to the basename of the corresponding segment
 files.
 
+See also the @ref{hls} muxer, which provides a more specific
+implementation for HLS segmentation.
+
 The segment muxer supports the following options:
 
 @table @option