• Bodecs Bela's avatar
    avformat/hlsenc: strftime identifiers and segment index · 0ff8c6b6
    Bodecs Bela authored
     in filenames
    
    Putting date/time values into segment filenames is very usefull.
    But to produce non-conflicting segment filenames with -use_localtime
    option with date/time
    values in hls_segment_filename option, sometimes is not enough.
    Like in cases when multiple segments produced in the same second.
    But hlsenc currently does not make possible to use segment index (%d) at
    the
    
    same time whe use_localtime is in effect, due to identifier conflict.
    This patch makes possible to use strftime identifiers and still put
    segment index (%d) at same time in segment filenames by introducing
    second_level_segment_index flag. When -use_localtime is active,
    identifier %d is for month day index, so %%d is the segment index
    placeholder. This enhanced behaviour only exists when new
    second_level_segment_index flag is specified.
    For instance putting 'segment_%Y%m%d%H%M%S_%%05d.ts' value into
    -hls_segment_filename option and specifing -hls_flags
    second_level_segment_index and -use_localtime 1, may produce segment
    filename as 'segment_20161230235758_00002.ts'
    
    An example:
    
    ffmpeg -loglevel info -y -f lavfi -i color=c=red:size=640x480:r=25 -f
    lavfi -i anullsrc=r=44100:cl=stereo -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 delete_segments+second_level_segment_index -use_localtime 1
    -hls_segment_filename "segment_%Y%m%d%H%M%S_%%05d.ts" stream.m3u8
    
    will produce segments filenames:
    
    ....
    segment_20161227005902_00013.ts
    segment_20161227005902_00014.ts
    segment_20161227005902_00015.ts
    segment_20161227005903_00016.ts
    segment_20161227005903_00017.ts
    segment_20161227005903_00018.ts
    segment_20161227005903_00019.ts
    segment_20161227005903_00020.ts
    ....
    Signed-off-by: 's avatarBela Bodecs <bodecsb@vivanet.hu>
    0ff8c6b6
Name
Last commit
Last update
..
doxy Loading commit data...
examples Loading commit data...
.gitignore Loading commit data...
APIchanges Loading commit data...
Doxyfile Loading commit data...
Makefile Loading commit data...
authors.texi Loading commit data...
bitstream_filters.texi Loading commit data...
bootstrap.min.css Loading commit data...
build_system.txt Loading commit data...
codecs.texi Loading commit data...
decoders.texi Loading commit data...
default.css Loading commit data...
demuxers.texi Loading commit data...
developer.texi Loading commit data...
devices.texi Loading commit data...
doxy-wrapper.sh Loading commit data...
encoders.texi Loading commit data...
errno.txt Loading commit data...
faq.texi Loading commit data...
fate.texi Loading commit data...
fate_config.sh.template Loading commit data...
ffmpeg-bitstream-filters.texi Loading commit data...
ffmpeg-codecs.texi Loading commit data...
ffmpeg-devices.texi Loading commit data...
ffmpeg-filters.texi Loading commit data...
ffmpeg-formats.texi Loading commit data...
ffmpeg-protocols.texi Loading commit data...
ffmpeg-resampler.texi Loading commit data...
ffmpeg-scaler.texi Loading commit data...
ffmpeg-utils.texi Loading commit data...
ffmpeg.texi Loading commit data...
ffmpeg.txt Loading commit data...
ffplay.texi Loading commit data...
ffprobe.texi Loading commit data...
ffprobe.xsd Loading commit data...
ffserver.conf Loading commit data...
ffserver.texi Loading commit data...
fftools-common-opts.texi Loading commit data...
filter_design.txt Loading commit data...
filters.texi Loading commit data...
formats.texi Loading commit data...
general.texi Loading commit data...
git-howto.texi Loading commit data...
indevs.texi Loading commit data...
issue_tracker.txt Loading commit data...
libav-merge.txt Loading commit data...
libavcodec.texi Loading commit data...
libavdevice.texi Loading commit data...
libavfilter.texi Loading commit data...
libavformat.texi Loading commit data...
libavutil.texi Loading commit data...
libswresample.texi Loading commit data...
libswscale.texi Loading commit data...
metadata.texi Loading commit data...
mips.txt Loading commit data...
multithreading.txt Loading commit data...
muxers.texi Loading commit data...
nut.texi Loading commit data...
optimization.txt Loading commit data...
outdevs.texi Loading commit data...
patchwork Loading commit data...
platform.texi Loading commit data...
print_options.c Loading commit data...
protocols.texi Loading commit data...
rate_distortion.txt Loading commit data...
resampler.texi Loading commit data...
scaler.texi Loading commit data...
snow.txt Loading commit data...
style.min.css Loading commit data...
swresample.txt Loading commit data...
swscale.txt Loading commit data...
t2h.init Loading commit data...
t2h.pm Loading commit data...
tablegen.txt Loading commit data...
texi2pod.pl Loading commit data...
texidep.pl Loading commit data...
utils.texi Loading commit data...
writing_filters.txt Loading commit data...