Opened 12 days ago
#11316 new defect
DASH manifest generator: incomplete codecstring
Reported by: | Suxsem | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | ffmpeg |
Version: | git-master | Keywords: | DASH |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug:
the DASH manifest generator doesn't produce a valid codecstring, i.e.
codecs="hev1"
should be
codecs="hev1.1.6.L186.0"
in order for the stream to be playable in the browser.
This is the output of ffprobe:
ffprobe -v verbose rtsp://admin:***@camera-retro.lan/ch0_0 ffprobe version 2024-11-18-git-970d57988d-essentials_build-www.gyan.dev Copyright (c) 2007-2024 the FFmpeg developers built with gcc 14.2.0 (Rev1, Built by MSYS2 project) configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband libavutil 59. 47.100 / 59. 47.100 libavcodec 61. 25.100 / 61. 25.100 libavformat 61. 9.100 / 61. 9.100 libavdevice 61. 4.100 / 61. 4.100 libavfilter 10. 6.101 / 10. 6.101 libswscale 8. 9.101 / 8. 9.101 libswresample 5. 4.100 / 5. 4.100 libpostproc 58. 4.100 / 58. 4.100 [tcp @ 000002a2c2c0ef00] Starting connection attempt to 192.168.12.162 port 554 [tcp @ 000002a2c2c0ef00] Successfully connected to 192.168.12.162 port 554 [rtsp @ 000002a2c2c0e7c0] SDP: v=0 o=- 1732188474342789 1 IN IP4 192.168.12.162 s=Session streamed by "rRTSPServer" i=ch0_0.h264 t=0 0 a=tool:LIVE555 Streaming Media v2023.01.19 a=type:broadcast a=control:* a=range:npt=now- a=x-qt-text-nam:Session streamed by "rRTSPServer" a=x-qt-text-inf:ch0_0.h264 m=video 0 RTP/AVP 96 c=IN IP4 0.0.0.0 b=AS:700 a=rtpmap:96 H265/90000 a=fmtp:96 profile-space=0;profile-id=1;tier-flag=0;level-id=186;interop-constraints=000000000000;sprop-vps=QAEMAf//AWAAAAMAAAMAAAMAAAMAuqwJ;sprop-sps=QgEBAWAAAAMAAAMAAAMAAAMAuqABICAFEf5a7kSIi/Lc1AQEBAI=;sprop-pps=RAHA8oSJAzJA a=control:track1 m=audio 0 RTP/AVP 97 c=IN IP4 0.0.0.0 b=AS:32 a=rtpmap:97 MPEG4-GENERIC/16000 a=fmtp:97 streamtype=5;profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1408 a=control:track2 [rtsp @ 000002a2c2c0e7c0] setting jitter buffer size to 500 Last message repeated 1 times Input #0, rtsp, from 'rtsp://admin:v24226148n@camera-retro.lan/ch0_0': Metadata: title : Session streamed by "rRTSPServer" comment : ch0_0.h264 Duration: N/A, start: 0.000250, bitrate: N/A Stream #0:0: Video: hevc (Main), 1 reference frame, yuv420p(tv, bt709, left), 2304x1296, 20 fps, 20 tbr, 90k tbn Stream #0:1: Audio: aac (LC), 16000 Hz, mono, fltp
How to reproduce:
ffmpeg -i rtsp://admin:***@camera-retro.lan/ch0_0 \ -map 0 \ -codec:v copy \ -codec:a copy \ -f dash \ -use_template 1 \ -use_timeline 1 \ -window_size 50 \ -extra_window_size 5 \ -seg_duration 5 \ tmp/output.mpd ffmpeg version 2024-11-18-git-970d57988d-essentials_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers built with gcc 14.2.0 (Rev1, Built by MSYS2 project) configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband libavutil 59. 47.100 / 59. 47.100 libavcodec 61. 25.100 / 61. 25.100 libavformat 61. 9.100 / 61. 9.100 libavdevice 61. 4.100 / 61. 4.100 libavfilter 10. 6.101 / 10. 6.101 libswscale 8. 9.101 / 8. 9.101 libswresample 5. 4.100 / 5. 4.100 libpostproc 58. 4.100 / 58. 4.100 Input #0, rtsp, from 'rtsp://admin:v24226148n@camera-retro.lan/ch0_0': Metadata: title : Session streamed by "rRTSPServer" comment : ch0_0.h264 Duration: N/A, start: 0.000250, bitrate: N/A Stream #0:0: Video: hevc (Main), yuv420p(tv, bt709), 2304x1296, 80 tbr, 90k tbn Stream #0:1: Audio: aac (LC), 16000 Hz, mono, fltp Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:1 -> #0:1 (copy) [dash @ 000001b15d377a80] No bit rate set for stream 0 [dash @ 000001b15d377a80] Opening 'tmp/init-stream0.m4s' for writing [dash @ 000001b15d377a80] No bit rate set for stream 1 [dash @ 000001b15d377a80] Opening 'tmp/init-stream1.m4s' for writing Output #0, dash, to 'tmp/output.mpd': Metadata: title : Session streamed by "rRTSPServer" comment : ch0_0.h264 encoder : Lavf61.9.100 Stream #0:0: Video: hevc (Main), yuv420p(tv, bt709), 2304x1296, q=2-31, 80 tbr, 90k tbn Stream #0:1: Audio: aac (LC), 16000 Hz, mono, fltp Press [q] to stop, [?] for help [dash @ 000001b15d377a80] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly [dash @ 000001b15d377a80] Opening 'tmp/chunk-stream0-00001.m4s.tmp' for writing [dash @ 000001b15d377a80] Opening 'tmp/chunk-stream1-00001.m4s.tmp' for writing [dash @ 000001b15d377a80] Opening 'tmp/output.mpd.tmp' for writingpeed= 1.3x [dash @ 000001b15d377a80] Opening 'tmp/chunk-stream1-00002.m4s.tmp' for writing ....
This is the generated manifest:
<?xml version="1.0" encoding="utf-8"?> <MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" mediaPresentationDuration="PT4M32.9S" maxSegmentDuration="PT5.0S" minBufferTime="PT12.0S"> <ProgramInformation> <Title>Session streamed by "rRTSPServer"</Title> </ProgramInformation> <ServiceDescription id="0"> </ServiceDescription> <Period id="0" start="PT0.0S"> <AdaptationSet id="0" contentType="video" startWithSAP="1" segmentAlignment="true" bitstreamSwitching="true" maxWidth="2304" maxHeight="1296" par="16:9"> <Representation id="0" mimeType="video/mp4" codecs="hev1" bandwidth="840731" width="2304" height="1296" scanType="unknown" sar="1:1"> <SegmentTemplate timescale="90000" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="1"> <SegmentTimeline> <S t="0" d="542990" /> <S d="539404" /> <S d="538874" /> ... </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> <AdaptationSet id="1" contentType="audio" startWithSAP="1" segmentAlignment="true" bitstreamSwitching="true"> <Representation id="1" mimeType="audio/mp4" codecs="mp4a.40.2" bandwidth="33712" audioSamplingRate="16000"> <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="1" /> <SegmentTemplate timescale="16000" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="6"> <SegmentTimeline> <S t="404078" d="80895" /> <S d="80897" /> <S d="80900" /> ... </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> </Period> </MPD>
I think this could be related: https://trac.ffmpeg.org/ticket/9902
Note:
See TracTickets
for help on using tickets.