Sorry I realized I sent you an mpeg ts example below, but I’ve seen the same with fmp4. This tells me that the logic that decides how to fragment the segments is independent of the file format.
Sent from my iPhone > On Jun 21, 2018, at 9:09 AM, Ronak Patel <[email protected]> > wrote: > > Hi, > > > We are considering using fMP4 assets to power our new audio only streaming. > One of our big requirements is to have the ability to deterministically clip > the streams at the proper aac frame boundaries. > > I've noticed that ffmpeg has been getting more stable in how it fragments the > source mp4, but it still is not completely consistent. Just a reminder that > this stream is audio only, no video, so keyframes and I-frames are not > involved. > > Here's an example that illustrates a problematic manifest: > > #EXTM3U > #EXT-X-VERSION:4 > #EXT-X-TARGETDURATION:1 > #EXT-X-MEDIA-SEQUENCE:0 > #EXT-X-PLAYLIST-TYPE:VOD > #EXT-X-DISCONTINUITY > #EXTINF:1.021778, > #EXT-X-BYTERANGE:9588@0 > output_44_64_heaac_1sec_ts.ts > #EXTINF:0.928889, > #EXT-X-BYTERANGE:7708@9588 > output_44_64_heaac_1sec_ts.ts > #EXTINF:1.021778, > #EXT-X-BYTERANGE:9024@17296 > output_44_64_heaac_1sec_ts.ts > #EXTINF:0.928889, > #EXT-X-BYTERANGE:7896@26320 > output_44_64_heaac_1sec_ts.ts > #EXTINF:1.021778, > #EXT-X-BYTERANGE:9024@34216 > output_44_64_heaac_1sec_ts.ts > #EXTINF:0.928889, > #EXT-X-BYTERANGE:8272@43240 > output_44_64_heaac_1sec_ts.ts > #EXTINF:0.975333, > #EXT-X-BYTERANGE:8272@51512 > output_44_64_heaac_1sec_ts.ts > #EXTINF:1.021778, > #EXT-X-BYTERANGE:8648@59784 > output_44_64_heaac_1sec_ts.ts > > We generated this manifest by running this command: > > ffmpeg -i output_44_64_heaac.aac -codec copy -hls_time 0.975238095238095 > -hls_segment_type mpegts -hls_flags single_file+append_list+split_by_time > -hls_playlist_type vod output_44_64_heaac_1sec_ts.m3u8 > > And here's information about my version of ffmpeg: > > ffprobe version git-2018-05-06-053ee99 Copyright (c) 2007-2018 the FFmpeg > developers > built with Apple LLVM version 9.1.0 (clang-902.0.39.1) > configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD-053ee99 > --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables > --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-gpl > --enable-libfdk-aac --enable-libmp3lame --enable-libopus > --enable-librubberband --enable-libvorbis --enable-libvpx --enable-libx264 > --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma > --enable-nonfree > libavutil 56. 18.100 / 56. 18.100 > libavcodec 58. 19.100 / 58. 19.100 > libavformat 58. 13.101 / 58. 13.101 > libavdevice 58. 4.100 / 58. 4.100 > libavfilter 7. 21.100 / 7. 21.100 > libavresample 4. 0. 0 / 4. 0. 0 > libswscale 5. 2.100 / 5. 2.100 > libswresample 3. 2.100 / 3. 2.100 > libpostproc 55. 2.100 / 55. 2.100 > > > Even specifying split_by_time doesn't force ffmpeg to split exactly at the > correct amount of AAC frames (42 in this case). Is this a bug in ffmpeg or a > limitation of the fMP4 file format? Was this fixed in newer versions? > > Thanks, > > Ronak > > > _______________________________________________ > ffmpeg-user mailing list > [email protected] > http://ffmpeg.org/mailman/listinfo/ffmpeg-user > > To unsubscribe, visit link above, or email > [email protected] with subject "unsubscribe". _______________________________________________ ffmpeg-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
