[FFmpeg-trac] #8799(undetermined:new): HLS output format does not produce DASH compatible MP4
FFmpeg
trac at avcodec.org
Fri Jul 17 18:57:07 EEST 2020
#8799: HLS output format does not produce DASH compatible MP4
-------------------------------------+-------------------------------------
Reporter: gordon | Type: defect
Status: new | Priority: normal
Component: | Version:
undetermined | unspecified
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
HLS recommends at least one stream to be available packaged in a transport
stream. Otherwise, HLS and DASH overlap.
The HLS muxer does not produce files that are compatible with DASH per the
conformance tool at https://conformance.dashif.org/
It would be very helpful if there was a way to signal the HLS encoder to
produce DASH compatible fMP4 files
----
I am observing errors like:
1) ../src/ValidateAtoms.cpp : 345 : Warning for ISO/IEC 14496-12
'tkhd' alternateGroup must be 0 not 1
2) ../src/ValidateBitStreams.cpp : 478 : Warning for ISO/IEC 14496-12
Validate_ES_Descriptor: ES_ID should be 0 not 1 in media tracks
3) ../src/ValidateBitStreams.cpp : 3333 : Warning: Validate
DecoderSpecificInfo didn't use 16 bits
4) ../src/ValidateAtomList.cpp : 2326 : WARNING: In moov-1:udta-1 -
unknown/unexpected atom 'meta'
5) (2 repetition\s) ### error: ### ../src/ValidateAtomList.cpp : 180
: ### error: ### 'sidx' found for self-initializing media, violating
ISO/IEC 23009-1:2012(E), 6.3.5.2: The Indexed Self-Initializing Media
Segment ... shall carry 'dash' as a compatible brand.
6) (2 repetition\s) ### error: sidx-1 ### ../src/ValidateAtoms.cpp :
3276 : ### error: sidx-1 ### sidx offset 756 is less than starting of
@indexRange 0, OR sum of sidx offset 756 and sidx size 52 minus 1 is
greater than ending of @indexRange 756
7) ### error: ### ../src/PostprocessData.cpp : 120 : ### error: ###
Indexing information (sidx/ssix) found in segment 0 (at file absolute
offset 26735) following a moof, violating: ### error: ###
../src/PostprocessData.cpp : 123 : ### error: ### ISO/IEC 23009-1:2012(E),
8.3.3: All Segment Index ('sidx') and Subsegment Index ('ssix') boxes
shall be placed before any Movie Fragment ('moof') boxes
8) ### error: ### ../src/PostprocessData.cpp : 755 : ### error: ###
ISO/IEC 23009-1:2012(E), 6.3.4.3: If 'sidx' is present in a Media Segment,
the first 'sidx' box ... shall document the entire Segment. Violated for
Media Segment 1. Segment duration 9.156042, Sidx documents 6.016000 for
track 1, diff 3.140042
----
Ffmpeg version:
ffmpeg version 4.3 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --prefix=/usr/local --libdir=/usr/local/lib --extra-
cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib
--bindir=/usr/local/bin --disable-doc --disable-ffplay --disable-static
--enable-shared --enable-openssl --enable-gpl --enable-libass --enable-
libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus
--enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264
--enable-libx265 --enable-libaom --enable-nonfree
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
----
Example of command to produce a transport stream for hls compatibility and
several mp4 variants for hls and dash:
ffmpeg -i source.mp4 \
-an -f hls -hls_flags single_file -hls_time 6 -hls_list_size 0
-hls_playlist_type vod -profile:v baseline -level 3.0 -b:v 145k -c:v
libx264 -master_pl_name playlist-a-stream.m3u8 -hls_segment_type mpegts
-hls_segment_filename output/playlist-a.ts output/playlist-a-segments.m3u8
\
\
-an -f hls -hls_flags single_file -hls_time 6 -hls_list_size 0
-hls_playlist_type vod -profile:v high -level 3.0 -b:v 145k -c:v libx264
-master_pl_name playlist-b-stream.m3u8 -hls_segment_type fmp4
-hls_segment_filename output/playlist-b.mp4
output/playlist-b-segments.m3u8 \
\
-an -f hls -hls_flags single_file -hls_time 6 -hls_list_size 0
-hls_playlist_type vod -profile:v high -level 3.1 -b:v 730k -c:v libx264
-master_pl_name playlist-c-stream.m3u8 -hls_segment_type fmp4
-hls_segment_filename output/playlist-c.mp4
output/playlist-c-segments.m3u8 \
\
-vn -f hls -hls_flags single_file -hls_time 6 -hls_list_size 0
-hls_playlist_type vod -c:a libfdk_aac -profile:a aac_he_v2
-hls_segment_type fmp4 -master_pl_name playlist-e-stream.m3u8
-hls_segment_filename output/playlist-e.m4a
output/playlist-e-segments.m3u8 \
\
-vn -f hls -hls_flags single_file -hls_time 6 -hls_list_size 0
-hls_playlist_type vod -b:a 96k -c:a libopus -hls_segment_type fmp4
-strict experimental -hls_segment_filename output/playlist-h.m4a
-master_pl_name playlist-h-stream.m3u8 output/playlist-h-segments.m3u8
--
Ticket URL: <https://trac.ffmpeg.org/ticket/8799>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list