[FFmpeg-trac] #5839(avformat:new): [feature request] [hls] hls_flags to limit single_file size
FFmpeg
trac at avcodec.org
Mon Sep 12 01:18:23 EEST 2016
#5839: [feature request] [hls] hls_flags to limit single_file size
-------------------------------------+-------------------------------------
Reporter: ARQfBfnD | Type:
Status: new | enhancement
Component: avformat | Priority: normal
Keywords: hls, | Version:
single_file, x-byterange | unspecified
Blocking: | Blocked By:
Analyzed by developer: 0 | Reproduced by developer: 0
-------------------------------------+-------------------------------------
The HLS spec[1] allows for a segment to be defined as an offset into a
resource. These resources don't have to be a single file.
Currently, the ffmpeg hls format will only write all segments into one
single file with -hls_flags single_file
`ffmpeg -i in.mp4 -f hls -hls_time 6 -hls_list_size 0 -hls_flags
single_file out.m3u8`
This results in very large files which may be undesirable.
I'm suggesting another hls_flag, "single_file_max_size". When reaching
this limit, the output segments would go into a new file.
`ffmpeg -i in.mp4 -f hls -hls_time 6 -hls_list_size 0 -hls_flags
single_file -hls_flags single_file_max_size 100M out.m3u8`
would result in:
* 10k out.m3u8
* 100M out0.ts
* 100M out1.ts
* 50M out2.ts
[1] https://tools.ietf.org/html/draft-pantos-http-live-
streaming-19#section-4.3.2.2
Tested on
ffmpeg version 3.1.3 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.2) 20160609
configuration: --prefix=/usr/local --extra-cflags=-I/usr/local/include
--extra-ldflags=-L/usr/local/lib --bindir=/usr/local/bin --disable-doc
--extra-libs=-ldl --enable-version3 --enable-libfaac --enable-libfdk_aac
--enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis
--enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid
--enable-gpl --enable-avresample --enable-postproc --enable-nonfree
--disable-debug --enable-small --enable-openssl
libavutil 55. 28.100 / 55. 28.100
libavcodec 57. 48.101 / 57. 48.101
libavformat 57. 41.100 / 57. 41.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 47.100 / 6. 47.100
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 1.100 / 2. 1.100
libpostproc 54. 0.100 / 54. 0.100
--
Ticket URL: <https://trac.ffmpeg.org/ticket/5839>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list