From patchwork Sun Jan 1 23:22:45 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bodecs Bela X-Patchwork-Id: 2016 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.89.21 with SMTP id n21csp3751825vsb; Sun, 1 Jan 2017 15:22:56 -0800 (PST) X-Received: by 10.28.232.85 with SMTP id f82mr47345009wmh.127.1483312976288; Sun, 01 Jan 2017 15:22:56 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id p11si46808779wmf.12.2017.01.01.15.22.55; Sun, 01 Jan 2017 15:22:56 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3AC97689B71; Mon, 2 Jan 2017 01:22:50 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail.vivacom.hu (mail.vivacom.hu [217.173.41.231]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 56C29689982 for ; Mon, 2 Jan 2017 01:22:44 +0200 (EET) Received: from localhost (localhost [127.0.0.1]) by mail.vivacom.hu (Postfix) with ESMTP id D0FF18853C for ; Mon, 2 Jan 2017 00:22:47 +0100 (CET) X-Virus-Scanned: amavisd-new at example.com Received: from mail.vivacom.hu ([127.0.0.1]) by localhost (mail.vivacom.intra [127.0.0.1]) (amavisd-new, port 10024) with LMTP id oLTpdgL324Ga for ; Mon, 2 Jan 2017 00:22:45 +0100 (CET) Received: from [192.168.0.10] (pool-dsl-27-004b.externet.hu [217.173.39.75]) by mail.vivacom.hu (Postfix) with ESMTPA id 9FC588845A for ; Mon, 2 Jan 2017 00:22:45 +0100 (CET) References: <7ce7749f-9fa3-8b80-59e2-bce17b0b2496@vivanet.hu> To: ffmpeg-devel@ffmpeg.org From: Bodecs Bela Message-ID: <3fabaf89-b883-d65e-5e44-16d124746214@vivanet.hu> Date: Mon, 2 Jan 2017 00:22:45 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: Subject: Re: [FFmpeg-devel] [PATCH] doc/hlsenc: hls_segment_filename, use_localtime, , use_localtime_mkdir, hls_flags X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" 2017.01.02. 0:12 keltezéssel, Steven Liu írta: > 2017-01-02 5:53 GMT+08:00 Bodecs Bela : > >> Dear All, >> >> I added some more details and example to hls muxer documentation. I >> reformatted hls_flags option list to table. >> > Where is the patch? I am sorry. I have atteched it now, >> >> thank you, >> >> Bela Bodecs >> >> >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel From ea151c46c50e4b717d71f605ce57ffd345f62bb6 Mon Sep 17 00:00:00 2001 From: Bela Bodecs Date: Sun, 1 Jan 2017 22:48:27 +0100 Subject: [PATCH] doc/hlsenc: hls_segment_filename, use_localtime, use_localtime_mkdir added some more details and example. hls_flags option list reformatted to table Signed-off-by: Bela Bodecs --- doc/muxers.texi | 45 ++++++++++++++++++++++++++++++++------------- 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/doc/muxers.texi b/doc/muxers.texi index c2598b2..e8a883f 100644 --- a/doc/muxers.texi +++ b/doc/muxers.texi @@ -441,15 +441,20 @@ ffmpeg -i in.nut -hls_segment_filename 'file%03d.ts' out.m3u8 This example will produce the playlist, @file{out.m3u8}, and segment files: @file{file000.ts}, @file{file001.ts}, @file{file002.ts}, etc. +@var{filename} may contain full path or relative path specification, but only the file name part without any path info will be contained in the m3u8 segment list. +Should relative path is specified, path of 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 m3u8 segment list. + + @item use_localtime -Use strftime on @var{filename} to expand the segment filename with localtime. +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 @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. +@file{file-20160215-1455569023.ts}, @file{file-20160215-1455569024.ts}, etc. (Notice: in some systems/environments %s specifier is not available. See 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 @end example @@ -457,14 +462,21 @@ 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 up to one subdirectory which +Used together with use_localtime, 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 @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{201560215/file-20160215-1455569023.ts}, @file{201560215/file-20160215-1455569024.ts}, etc. +@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 +@end example +This example will create a directory hierarchy 2016/02/15 (if any of them does not exist), and then +produce the playlist, @file{out.m3u8}, and segment files: +@file{2016/02/15/file-20160215-1455569023.ts}, @file{2016/02/15/file-20160215-1455569024.ts}, etc. @item hls_key_info_file @var{key_info_file} @@ -523,7 +535,12 @@ ffmpeg -f lavfi -re -i testsrc -c:v h264 -hls_flags delete_segments \ -hls_key_info_file file.keyinfo out.m3u8 @end example -@item hls_flags single_file + +@item hls_flags @var{flags} +Possible values: + +@table @samp +@item single_file If this flag is set, the muxer will store all segments in a single MPEG-TS file, and will use byte ranges in the playlist. HLS playlists generated with this way will have the version number 4. @@ -534,37 +551,39 @@ ffmpeg -i in.nut -hls_flags single_file out.m3u8 Will produce the playlist, @file{out.m3u8}, and a single segment file, @file{out.ts}. -@item hls_flags delete_segments +@item delete_segments Segment files removed from the playlist are deleted after a period of time equal to the duration of the segment plus the duration of the playlist. -@item hls_flags append_list +@item append_list Append new segments into the end of old segment list, and remove the @code{#EXT-X-ENDLIST} from the old segment list. -@item hls_flags round_durations +@item round_durations Round the duration info in the playlist file segment info to integer values, instead of using floating point. -@item hls_flags discont_starts +@item discont_starts Add the @code{#EXT-X-DISCONTINUITY} tag to the playlist, before the first segment's information. -@item hls_flags omit_endlist +@item omit_endlist Do not append the @code{EXT-X-ENDLIST} tag at the end of the playlist. -@item hls_flags split_by_time +@item split_by_time Allow segments to start on frames other than keyframes. This improves behavior on some players when the time between keyframes is inconsistent, but may make things worse on others, and can cause some oddities during seeking. This flag should be used with the @code{hls_time} option. -@item hls_flags program_date_time +@item program_date_time Generate @code{EXT-X-PROGRAM-DATE-TIME} tags. -@item hls_flags second_level_segment_index +@item second_level_segment_index Makes it possible to use segment indexes as %%d besides date/time values when use_localtime is on. +@end table + @item hls_playlist_type event Emit @code{#EXT-X-PLAYLIST-TYPE:EVENT} in the m3u8 header. Forces @option{hls_list_size} to 0; the playlist can only be appended to. -- 2.5.3.windows.1