[FFmpeg-trac] #11316(ffmpeg:new): DASH manifest generator: incomplete codecstring
FFmpeg
trac at avcodec.org
Thu Nov 21 14:50:46 EET 2024
#11316: DASH manifest generator: incomplete codecstring
--------------------------------+--------------------------------------
Reporter: Suxsem | Type: defect
Status: new | Priority: normal
Component: ffmpeg | Version: git-master
Keywords: DASH | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
--------------------------------+--------------------------------------
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
--
Ticket URL: <https://trac.ffmpeg.org/ticket/11316>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list