X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=doc%2Fmuxers.texi;h=5565fd5f45f9500b29105c86e1c632519d8033d1;hb=8bd791969960d6258177ebf8b68391fd4b432fd1;hp=268c15202334754877110ff48e7c66b3fe08d8fb;hpb=9a88a47be4da9cd25a582feec7cc36790500b481;p=ffmpeg diff --git a/doc/muxers.texi b/doc/muxers.texi index 268c1520233..5565fd5f45f 100644 --- a/doc/muxers.texi +++ b/doc/muxers.texi @@ -94,21 +94,23 @@ compatibility with software that only supports a single audio stream in AVI @anchor{chromaprint} @section chromaprint -Chromaprint fingerprinter +Chromaprint fingerprinter. -This muxer feeds audio data to the Chromaprint library, which generates -a fingerprint for the provided audio data. It takes a single signed -native-endian 16-bit raw audio stream. +This muxer feeds audio data to the Chromaprint library, +which generates a fingerprint for the provided audio data. See @url{https://acoustid.org/chromaprint} + +It takes a single signed native-endian 16-bit raw audio stream of at most 2 channels. @subsection Options @table @option @item silence_threshold -Threshold for detecting silence, ranges from 0 to 32767. -1 for default -(required for use with the AcoustID service). +Threshold for detecting silence, ranges from -1 to 32767. -1 disables silence detection and +is required for use with the AcoustID service. Default is -1. @item algorithm -Algorithm index to fingerprint with. +Version of algorithm to fingerprint with. Range is 0 to 4. Version 2 requires that silence +detection be enabled. Default is 1. @item fp_format Format to output the fingerprint as. Accepts the following options: @@ -120,7 +122,7 @@ Binary raw fingerprint Binary compressed fingerprint @item base64 -Base64 compressed fingerprint +Base64 compressed fingerprint @emph{(default)} @end table @@ -245,11 +247,11 @@ Enable (1) or disable (0) use of SegmentTimeline in SegmentTemplate. @item -single_file @var{single_file} Enable (1) or disable (0) storing all segments in one file, accessed using byte ranges. @item -single_file_name @var{file_name} -DASH-templated name to be used for baseURL. Implies @var{single_file} set to "1". +DASH-templated name to be used for baseURL. Implies @var{single_file} set to "1". In the template, "$ext$" is replaced with the file name extension specific for the segment format. @item -init_seg_name @var{init_name} -DASH-templated name to used for the initialization segment. Default is "init-stream$RepresentationID$.m4s" +DASH-templated name to used for the initialization segment. Default is "init-stream$RepresentationID$.$ext$". "$ext$" is replaced with the file name extension specific for the segment format. @item -media_seg_name @var{segment_name} -DASH-templated name to used for the media segments. Default is "chunk-stream$RepresentationID$-$Number%05d$.m4s" +DASH-templated name to used for the media segments. Default is "chunk-stream$RepresentationID$-$Number%05d$.$ext$". "$ext$" is replaced with the file name extension specific for the segment format. @item -utc_timing_url @var{utc_url} URL of the page that will return the UTC timestamp in ISO format. Example: "https://time.akamai.com/?iso" @item method @var{method} @@ -289,14 +291,20 @@ Set container format (mp4/webm) options using a @code{:} separated list of key=value parameters. Values containing @code{:} special characters must be escaped. -@item dash_segment_type @var{dash_segment_type} +@item -dash_segment_type @var{dash_segment_type} Possible values: +@item auto +If this flag is set, the dash segment files format will be selected based on the stream codec. This is the default mode. + @item mp4 -If this flag is set, the dash segment files will be in in ISOBMFF format. This is the default format. +If this flag is set, the dash segment files will be in in ISOBMFF format. @item webm If this flag is set, the dash segment files will be in in WebM format. +@item -ignore_io_errors @var{ignore_io_errors} +Ignore IO errors during open and write. Useful for long-duration runs with network output. + @end table @anchor{framecrc} @@ -617,7 +625,7 @@ This example will produce the playlist, @file{out.m3u8}, and segment files: but only the file name part without any path info will be contained in the m3u8 segment list. Should a relative path be specified, the path of the created segment files will be relative to the current working directory. -When use_localtime_mkdir is set, the whole expanded value of @var{filename} will be written into the m3u8 segment list. +When strftime_mkdir is set, the whole expanded value of @var{filename} will be written into the m3u8 segment list. When @code{var_stream_map} is set with two or more variant streams, the @var{filename} pattern must contain the string "%v", this string specifies @@ -646,34 +654,40 @@ This example will produce the playlists segment file sets: @file{vs1/file_000.ts}, @file{vs1/file_001.ts}, @file{vs1/file_002.ts}, etc. @item use_localtime +Same as strftime option, will be deprecated. + +@item strftime Use strftime() on @var{filename} to expand the segment filename with localtime. The segment number is also available in this mode, but to use it, you need to specify second_level_segment_index hls_flag and %%d will be the specifier. @example -ffmpeg -i in.nut -use_localtime 1 -hls_segment_filename 'file-%Y%m%d-%s.ts' out.m3u8 +ffmpeg -i in.nut -strftime 1 -hls_segment_filename 'file-%Y%m%d-%s.ts' out.m3u8 @end example This example will produce the playlist, @file{out.m3u8}, and segment files: @file{file-20160215-1455569023.ts}, @file{file-20160215-1455569024.ts}, etc. Note: On some systems/environments, the @code{%s} specifier is not available. See @code{strftime()} documentation. @example -ffmpeg -i in.nut -use_localtime 1 -hls_flags second_level_segment_index -hls_segment_filename 'file-%Y%m%d-%%04d.ts' out.m3u8 +ffmpeg -i in.nut -strftime 1 -hls_flags second_level_segment_index -hls_segment_filename 'file-%Y%m%d-%%04d.ts' out.m3u8 @end example This example will produce the playlist, @file{out.m3u8}, and segment files: @file{file-20160215-0001.ts}, @file{file-20160215-0002.ts}, etc. @item use_localtime_mkdir -Used together with -use_localtime, it will create all subdirectories which +Same as strftime_mkdir option, will be deprecated . + +@item strftime_mkdir +Used together with -strftime_mkdir, it will create all subdirectories which is expanded in @var{filename}. @example -ffmpeg -i in.nut -use_localtime 1 -use_localtime_mkdir 1 -hls_segment_filename '%Y%m%d/file-%Y%m%d-%s.ts' out.m3u8 +ffmpeg -i in.nut -strftime 1 -strftime_mkdir 1 -hls_segment_filename '%Y%m%d/file-%Y%m%d-%s.ts' out.m3u8 @end example This example will create a directory 201560215 (if it does not exist), and then produce the playlist, @file{out.m3u8}, and segment files: @file{20160215/file-20160215-1455569023.ts}, @file{20160215/file-20160215-1455569024.ts}, etc. @example -ffmpeg -i in.nut -use_localtime 1 -use_localtime_mkdir 1 -hls_segment_filename '%Y/%m/%d/file-%Y%m%d-%s.ts' out.m3u8 +ffmpeg -i in.nut -strftime 1 -strftime_mkdir 1 -hls_segment_filename '%Y/%m/%d/file-%Y%m%d-%s.ts' out.m3u8 @end example This example will create a directory hierarchy 2016/02/15 (if any of them do not exist), and then produce the playlist, @file{out.m3u8}, and segment files: @@ -758,17 +772,17 @@ Possible values: @table @samp @item mpegts -If this flag is set, the hls segment files will format to mpegts. -the mpegts files is used in all hls versions. +Output segment files in MPEG-2 Transport Stream format. This is +compatible with all HLS versions. @item fmp4 -If this flag is set, the hls segment files will format to fragment mp4 looks like dash. -the fmp4 files is used in hls after version 7. +Output segment files in fragmented MP4 format, similar to MPEG-DASH. +fmp4 files may be used in HLS version 7 and above. @end table @item hls_fmp4_init_filename @var{filename} -set filename to the fragment files header file, default filename is @file{init.mp4}. +Set filename to the fragment files header file, default filename is @file{init.mp4}. When @code{var_stream_map} is set with two or more variant streams, the @var{filename} pattern must contain the string "%v", this string specifies @@ -833,24 +847,24 @@ Generate @code{EXT-X-PROGRAM-DATE-TIME} tags. @item second_level_segment_index Makes it possible to use segment indexes as %%d in hls_segment_filename expression -besides date/time values when use_localtime is on. +besides date/time values when strftime is on. To get fixed width numbers with trailing zeroes, %%0xd format is available where x is the required width. @item second_level_segment_size Makes it possible to use segment sizes (counted in bytes) as %%s in hls_segment_filename -expression besides date/time values when use_localtime is on. +expression besides date/time values when strftime is on. To get fixed width numbers with trailing zeroes, %%0xs format is available where x is the required width. @item second_level_segment_duration Makes it possible to use segment duration (calculated in microseconds) as %%t in hls_segment_filename -expression besides date/time values when use_localtime is on. +expression besides date/time values when strftime is on. To get fixed width numbers with trailing zeroes, %%0xt format is available where x is the required width. @example ffmpeg -i sample.mpeg \ -f hls -hls_time 3 -hls_list_size 5 \ -hls_flags second_level_segment_index+second_level_segment_size+second_level_segment_duration \ - -use_localtime 1 -use_localtime_mkdir 1 -hls_segment_filename "segment_%Y%m%d%H%M%S_%%04d_%%08s_%%013t.ts" stream.m3u8 + -strftime 1 -strftime_mkdir 1 -hls_segment_filename "segment_%Y%m%d%H%M%S_%%04d_%%08s_%%013t.ts" stream.m3u8 @end example This will produce segments like this: @file{segment_20170102194334_0003_00122200_0000003000000.ts}, @file{segment_20170102194334_0004_00120072_0000003000000.ts} etc.