[FFmpeg-trac] #5839(avformat:open): [feature request] [hls] hls_flags to limit single_file size
FFmpeg
trac at avcodec.org
Sat Sep 17 06:42:50 EEST 2016
#5839: [feature request] [hls] hls_flags to limit single_file size
-------------------------------------+-------------------------------------
Reporter: ARQfBfnD | Owner: stevenliu
Type: enhancement | Status: open
Priority: wish | Component: avformat
Version: git-master | Resolution:
Keywords: hls | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Comment (by stevenliu):
Replying to [comment:16 ARQfBfnD]:
> I tried your latest patch from the mailing list - it appears to do
something, but the output files sizes (5MB+) are all over the place,
nowhere near the number I specified (2.5MB)
>
>
> {{{
> root at 28340ba48105:~# ./bin/ffmpeg -i in.mov -c copy -hls_list_size 0
-hls_segment_size 2500000 -t 60 -f hls -hls_time 10 -hls_segment_filename
'file%03d.ts' output-test.m3u8
> ffmpeg version N-81669-gb82c1a3 Copyright (c) 2000-2016 the FFmpeg
developers
> built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.2) 20160609
> configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static
--extra-cflags=-I/root/ffmpeg_build/include --extra-
ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --enable-gpl --enable-
libass --enable-libx264 --enable-nonfree
> libavutil 55. 29.100 / 55. 29.100
> libavcodec 57. 55.101 / 57. 55.101
> libavformat 57. 49.100 / 57. 49.100
> libavdevice 57. 0.102 / 57. 0.102
> libavfilter 6. 62.100 / 6. 62.100
> libswscale 4. 1.100 / 4. 1.100
> libswresample 2. 1.100 / 2. 1.100
> libpostproc 54. 0.100 / 54. 0.100
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'in.mov':
> Metadata:
> major_brand : qt
> minor_version : 0
> compatible_brands: qt
> creation_time : 2016-09-09T00:47:25.000000Z
> Duration: 03:29:46.96, start: 0.000000, bitrate: 5906 kb/s
> Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661),
yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 5760 kb/s, 25 fps, 25
tbr, 2500 tbn, 50 tbc (default)
> Metadata:
> creation_time : 2016-09-09T00:47:25.000000Z
> handler_name : Core Media Data Handler
> encoder : H.264
> timecode : 00:00:00:00
> Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
stereo, fltp, 108 kb/s (default)
> Metadata:
> creation_time : 2016-09-09T00:47:25.000000Z
> handler_name : Core Media Data Handler
> Stream #0:2(und): Data: none (tmcd / 0x64636D74) (default)
> Metadata:
> creation_time : 2016-09-09T00:47:25.000000Z
> handler_name : Core Media Data Handler
> timecode : 00:00:00:00
> [hls @ 0x3741ac0] Using AVStream.codec to pass codec parameters to
muxers is deprecated, use AVStream.codecpar instead.
> Last message repeated 1 times
> Output #0, hls, to 'output-test.m3u8':
> Metadata:
> major_brand : qt
> minor_version : 0
> compatible_brands: qt
> encoder : Lavf57.49.100
> Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661),
yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 5760 kb/s, 25
fps, 25 tbr, 90k tbn, 25 tbc (default)
> Metadata:
> creation_time : 2016-09-09T00:47:25.000000Z
> handler_name : Core Media Data Handler
> encoder : H.264
> timecode : 00:00:00:00
> Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
stereo, 108 kb/s (default)
> Metadata:
> creation_time : 2016-09-09T00:47:25.000000Z
> handler_name : Core Media Data Handler
> Stream mapping:
> Stream #0:0 -> #0:0 (copy)
> Stream #0:1 -> #0:1 (copy)
> Press [q] to stop, [?] for help
> frame= 1501 fps=0.0 q=-1.0 Lsize=N/A time=00:01:00.01 bitrate=N/A speed=
544x
> video:43785kB audio:846kB subtitle:0kB other streams:0kB global
headers:0kB muxing overhead: unknown
> root at 28340ba48105:~# ls -lh
> -rw-r--r-- 1 root root 5.7M Sep 16 16:01 file000.ts
> -rw-r--r-- 1 root root 5.7M Sep 16 16:01 file001.ts
> -rw-r--r-- 1 root root 5.8M Sep 16 16:01 file002.ts
> -rw-r--r-- 1 root root 5.8M Sep 16 16:01 file003.ts
> -rw-r--r-- 1 root root 16M Sep 16 16:01 file004.ts
> -rw-r--r-- 1 root root 7.0M Sep 16 16:01 file005.ts
> -rw-r--r-- 1 root root 431 Sep 16 16:01 output-test.m3u8
> }}}
I saw your test mov is 5Mbps+ ,maybe your test way is wrong, isn't it?
because hls split at keyframe default, if your GOP of the mov(avc codec),
if the bitrate is too big than the value you set -hls_segment_size
2500000, it's wrong,
you can set 25000000 and check the result.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/5839#comment:17>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list