diff mbox

[FFmpeg-devel] avformat/hlsenc: actual segment file size and duration in segment filenames

Message ID 122f7c46-0416-2c98-0277-76fff89e98d5@vivanet.hu
State Superseded
Headers show

Commit Message

Bodecs Bela Jan. 3, 2017, 8:38 a.m. UTC
2017.01.03. 1:22 keltezéssel, Steven Liu írta:
> 2017-01-03 2:58 GMT+08:00 Bodecs Bela <bodecsb@vivanet.hu>:
>
>> Dear All,
>>
>> this patch makes it possible to put actual segment file size (measured
>> in bytes) and/or duration (calculated in microseconds) into segment
>> filenames. This feature is useful when post-processing live streaming
>> access log files. New behaviour works only when -use_localtime option
>> is set and second_level_segment_size or/and
>> second_level_segment_duration new hls_flags are specified. %%s is the
>> placeholder for size and %%t for duration in hls_segment_filename
>> option. Fix sized trailing zeropadding also works eg. %%09s or %%023t.
>>
>> A command to test new features:
>> ./ffmpeg -loglevel info -y -f lavfi -i color=c=red:size=640x480:r=25 -f
>> lavfi -i sine=f=440:b=4:r=44100 -c:v mpeg2video -g 25 -acodec aac
>> -cutoff 20000 -ac 2 -ar 44100 -ab 192k -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
>>
>> this will produce segments like this:
>> segment_20170102194334_0003_00122200_0000003000000.ts
>> segment_20170102194334_0004_00120072_0000003000000.ts
>> etc.
>>
>>
>> thank you in advance,
>>
>> Bela Bodecs
>>
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel@ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>>
> you should add document for the new option.
I have enclosed it.
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Comments

Moritz Barsnick Jan. 3, 2017, 10:42 a.m. UTC | #1
On Tue, Jan 03, 2017 at 09:38:18 +0100, Bodecs Bela wrote:
>  doc/muxers.texi | 19 ++++++++++++++++++-
>  1 file changed, 18 insertions(+), 1 deletion(-)

You should probably squash this with the other patch, into one commit.

> -Makes it possible to use segment indexes as %%d besides date/time values when use_localtime is on.
> +Makes it possible to use segment indexes as %%d in hls_segment_filename expression besides date/time values when use_localtime is on. To get fixed width numbers with trailing zeroes, %%0xd format is available where x is the required width.

You could break these lines (texinfo formatting will handle the real
representation later), but I'm not sure it's totally necessary.

> +@example
> +./ffmpeg -loglevel info -y -f lavfi -i color=c=red:size=640x480:r=25  \
> +   -f lavfi -i sine=f=440:b=4:r=44100 -c:v mpeg2video -g 25 -acodec aac -cutoff 20000 -ac 2 -ar 44100 -ab 192k \
> +   -f hls -hls_time 3 -hls_list_size 5 \

a) replace ./ffmpeg with ffmpeg (as most users would expect to use it),
b) please use simpler syntax for the stuff not related to what you are
trying to document; i.e.: ffmpeg -i input.mov -f hls -hls_time 3 -hls_list_size 5 [...]
> +This will produce segments like this:
> +@file{segment_20170102194334_0003_00122200_0000003000000.ts}, @file{segment_20170102194334_0004_00120072_0000003000000.ts} etc.

The rest seems fine to me!

Moritz
diff mbox

Patch

From 83346eaedb3d4be2ec0494ffd6f49244bf44c920 Mon Sep 17 00:00:00 2001
From: Bela Bodecs <bodecsb@vivanet.hu>
Date: Tue, 3 Jan 2017 09:34:38 +0100
Subject: [PATCH] doc/muxers: hls second_level_segment_duration,
 second_level_segment_size

Documentation of new feature of hlsenc to include segment size and
duration in their name.

Signed-off-by: Bela Bodecs <bodecsb@vivanet.hu>
---
 doc/muxers.texi | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index 018f289..b97e9f9 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -584,7 +584,24 @@  seeking. This flag should be used with the @code{hls_time} option.
 Generate @code{EXT-X-PROGRAM-DATE-TIME} tags.
 
 @item second_level_segment_index
-Makes it possible to use segment indexes as %%d besides date/time values when use_localtime is on.
+Makes it possible to use segment indexes as %%d in hls_segment_filename expression besides date/time values when use_localtime 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. 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. To get fixed width numbers with trailing zeroes, %%0xt format is available where x is the required width.
+
+@example
+./ffmpeg -loglevel info -y -f lavfi -i color=c=red:size=640x480:r=25  \
+   -f lavfi -i sine=f=440:b=4:r=44100 -c:v mpeg2video -g 25 -acodec aac -cutoff 20000 -ac 2 -ar 44100 -ab 192k \
+   -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
+@end example
+This will produce segments like this:
+@file{segment_20170102194334_0003_00122200_0000003000000.ts}, @file{segment_20170102194334_0004_00120072_0000003000000.ts} etc.
+
 
 @end table
 
-- 
2.5.3.windows.1