#6888: HLS segmenter doesn't cut .m4s files at its expected duration ------------------------------------+------------------------------------ Reporter: beloko | Owner: Type: defect | Status: new Priority: normal | Component: avformat Version: git-master | Resolution: Keywords: HLS | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | ------------------------------------+------------------------------------
Comment (by beloko): Thank you for this workaround. I confirm that DASH segmenter is more accurate than HLS segmenter for this job. All my .m4s files have the expected 4 seconds duration. I checked each file duration with FFPROBE. However for now, I'm not able to create a valid HLS streams having video and audio muxed in the same stream. DASH segmenter create two streams. First stream have video only and second stream have audio only. Finally video and audio segments don't have the same durations. Result looks strange. Here is the command line where I just replace ''-an'' by ''-c:a libfdk_aac'' : {{{ ffmpeg.exe -i "http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_1080p_30fps_normal.mp4" -loglevel verbose -threads 0 -c:a libfdk_aac -sn -c:v libx264 -x264opts scenecut=-1 -force_key_frames "expr:gte(t,n_forced*4)" -r 25 -min_seg_duration 4000000 -window_size 99999 -t 30 -hls_playlist 1 "C:\inetpub\wwwroot\fmp4_x264\big_bunny.mpd" }}} I get three m3u8 files : . master.m3u8 (supposed to be the main playlist) {{{ #EXTM3U #EXT-X-VERSION:6 #EXT-X-STREAM-INF:BANDWIDTH=488727 media_1.m3u8 }}} . media_0.m3u8 (as video stream playlist) {{{ #EXTM3U #EXT-X-VERSION:6 #EXT-X-TARGETDURATION:4 #EXT-X-MEDIA-SEQUENCE:1 #EXT-X-MAP:URI="init-stream0.m4s" #EXTINF:4.000000, chunk-stream0-00001.m4s #EXTINF:4.000000, chunk-stream0-00002.m4s #EXTINF:4.000000, chunk-stream0-00003.m4s #EXTINF:4.000000, chunk-stream0-00004.m4s #EXTINF:4.000000, chunk-stream0-00005.m4s #EXTINF:4.000000, chunk-stream0-00006.m4s #EXTINF:4.000000, chunk-stream0-00007.m4s #EXTINF:2.000000, chunk-stream0-00008.m4s #EXT-X-ENDLIST }}} . media_1.m3u8 (as audio stream playlist) {{{ #EXTM3U #EXT-X-VERSION:6 #EXT-X-TARGETDURATION:5 #EXT-X-MEDIA-SEQUENCE:1 #EXT-X-MAP:URI="init-stream1.m4s" #EXTINF:3.925333, chunk-stream1-00001.m4s #EXTINF:4.010667, chunk-stream1-00002.m4s #EXTINF:3.989333, chunk-stream1-00003.m4s #EXTINF:4.010667, chunk-stream1-00004.m4s #EXTINF:3.989333, chunk-stream1-00005.m4s #EXTINF:4.010667, chunk-stream1-00006.m4s #EXTINF:3.989333, chunk-stream1-00007.m4s #EXTINF:2.074667, chunk-stream1-00008.m4s #EXT-X-ENDLIST }}} To get a valid HLS stream, all audio segments should have a 4 seconds duration as expected. And master.m3u8 content should be something like that : {{{ #EXTM3U #EXT-X-INDEPENDENT-SEGMENTS #EXT-X-VERSION:6 #EXT-X-MEDIA:TYPE=AUDIO,GROUP- ID="media_1.m3u8",NAME="media_1.m3u8",LANGUAGE="en",URI="media_1.m3u8" #EXT-X-STREAM-INF:BANDWIDTH=488727,AUDIO="media_1.m3u8" media_0.m3u8 }}} -- Ticket URL: <https://trac.ffmpeg.org/ticket/6888#comment:10> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker _______________________________________________ FFmpeg-trac mailing list FFmpeg-trac@avcodec.org http://ffmpeg.org/mailman/listinfo/ffmpeg-trac