#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:v242261...@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:v242261...@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 &quot;rRTSPServer&quot;</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
_______________________________________________
FFmpeg-trac mailing list
FFmpeg-trac@avcodec.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-trac

To unsubscribe, visit link above, or email
ffmpeg-trac-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to