[FFmpeg-trac] #9252(avformat:new): [dash muxer] Unplayable (empty) HLS, audio-only, master playlist
FFmpeg
trac at avcodec.org
Thu May 20 10:19:12 EEST 2021
#9252: [dash muxer] Unplayable (empty) HLS, audio-only, master playlist
----------------------------------+---------------------------------------
Reporter: pszemus | Type: defect
Status: new | Priority: normal
Component: avformat | Version: unspecified
Keywords: DASH HLS | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
----------------------------------+---------------------------------------
When using [http://ffmpeg.org/ffmpeg-all.html#dash-2 DASH muxer] to create
DASH and HLS streams from an audio-only (e.g. mp3) file, consuming only
one encoding process, the HLS stream is unplayable (DASH stream works OK).
While writing HLS master playlist,
[https://github.com/FFmpeg/FFmpeg/blob/n4.4/libavformat/dashenc.c#L1292
DASH muxer treats all audio streams as an alternative HLS audio tracks]
for video tracks, and when there's no video tracks the master HLS playlist
becomes empty:
{{{
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-
ID="group_A1",NAME="audio_0",DEFAULT=YES,URI="media_0.m3u8"
}}}
(no chunklists)
How to reproduce:
{{{
$ffmpeg -i https://filesamples.com/samples/audio/mp3/sample3.mp3 -c:a aac
-use_timeline 1 -use_template 1 -adaptation_sets "id=0,streams=a"
-hls_playlist 1 -f dash /tmp/dash/manifest.mpd
ffmpeg version 4.4 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 11 (GCC)
configuration: --prefix=/usr --bindir=/usr/bin
--datadir=/usr/share/ffmpeg --docdir=/usr/share/doc/ffmpeg
--incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man
--arch=x86_64 --optflags='-O2 -flto=auto -ffat-lto-objects -fexceptions -g
-grecord-gcc-switches -pipe -Wall -Werror=format-security
-Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection'
--extra-ldflags='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now
-specs=/usr/lib/rpm/redhat/redhat-hardened-ld ' --extra-cflags='
-I/usr/include/rav1e' --enable-libopencore-amrnb --enable-libopencore-
amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib --disable-
crystalhd --enable-fontconfig --enable-frei0r --enable-gcrypt --enable-
gnutls --enable-ladspa --enable-libaom --enable-libdav1d --enable-libass
--enable-libbluray --enable-libcdio --enable-libdrm --enable-libjack
--enable-libfreetype --enable-libfribidi --enable-libgsm --enable-
libmp3lame --enable-libmysofa --enable-nvenc --enable-openal --enable-
opencl --enable-opengl --enable-libopenjpeg --enable-libopenmpt --enable-
libopus --enable-libpulse --enable-librsvg --enable-librav1e --enable-
libsmbclient --enable-version3 --enable-libsoxr --enable-libspeex
--enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora
--enable-libvorbis --enable-libv4l2 --enable-libvidstab --enable-libvmaf
--enable-version3 --enable-vapoursynth --enable-libvpx --enable-vulkan
--enable-libglslang --enable-libx264 --enable-libx265 --enable-libxvid
--enable-libxml2 --enable-libzimg --enable-libzvbi --enable-lv2 --enable-
avfilter --enable-avresample --enable-libmodplug --enable-postproc
--enable-pthreads --disable-static --enable-shared --enable-gpl --disable-
debug --disable-stripping --shlibdir=/usr/lib64 --enable-lto --enable-
libmfx --enable-runtime-cpudetect
libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 9.100 / 5. 9.100
libswresample 3. 9.100 / 3. 9.100
libpostproc 55. 9.100 / 55. 9.100
[mp3 @ 0x55599eb0acc0] invalid concatenated file detected - using bitrate
for duration
Input #0, mp3, from
'https://filesamples.com/samples/audio/mp3/sample3.mp3':
Metadata:
encoder : Lavf57.83.100
Duration: N/A, start: 0.025057, bitrate: 128 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 128 kb/s
Metadata:
encoder : Lavc57.10
Stream mapping:
Stream #0:0 -> #0:0 (mp3 (mp3float) -> aac (native))
Press [q] to stop, [?] for help
[dash @ 0x55599f110500] Opening '/tmp/dash/init-stream0.m4s' for writing
Output #0, dash, to '/tmp/dash/manifest.mpd':
Metadata:
encoder : Lavf58.76.100
Stream #0:0: Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s
Metadata:
encoder : Lavc58.134.100 aac
[dash @ 0x55599f110500] Opening '/tmp/dash/chunk-stream0-00001.m4s.tmp'
for writing
[dash @ 0x55599f110500] Opening '/tmp/dash/manifest.mpd.tmp' for writing
[dash @ 0x55599f110500] Opening '/tmp/dash/media_0.m3u8.tmp' for writing
[dash @ 0x55599f110500] Opening '/tmp/dash/master.m3u8.tmp' for writing
[...]
[dash @ 0x55599f110500] Opening '/tmp/dash/chunk-stream0-00022.m4s.tmp'
for writing
[dash @ 0x55599f110500] Opening '/tmp/dash/manifest.mpd.tmp' for writing
[dash @ 0x55599f110500] Opening '/tmp/dash/media_0.m3u8.tmp' for writing
size=N/A time=00:01:45.79 bitrate=N/A speed= 114x
video:0kB audio:1667kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: unknown
[aac @ 0x55599ebce0c0] Qavg: 207.240
$ cat /tmp/dash/master.m3u8
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-
ID="group_A1",NAME="audio_0",DEFAULT=YES,URI="media_0.m3u8"
$ mpv /tmp/dash/master.m3u8
Empty playlist!
Exiting... (End of file)
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/9252>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list