[FFmpeg-trac] #8049(undetermined:new): dash muxer does not specify full codec string parameters for AV1

FFmpeg trac at avcodec.org
Tue Jul 30 02:10:02 EEST 2019


#8049: dash muxer does not specify full codec string parameters for AV1
-------------------------------------+-------------------------------------
             Reporter:  brion        |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:  av1,dash     |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:

 When using the dash muxer to produce DASH output containing an AV1 video
 stream, the codec string is listed only as "av01" without the full
 parameters, such as "av01.0.04M.08".

 This results in failure to play in Chrome, where
 MediaSource.isTypeSupported('video/mp4; codecs="av01"') without those
 parameters returns false.

 The parameters should be extracted from the extradata per
 https://aomediacodec.github.io/av1-isobmff/#codecsparam

 How to reproduce:
 {{{
 % $ ffmpeg -t 1 -i crowd_run_1080p50.y4m -s 640x360 -strict -2 -c:v
 libaom-av1 -cpu-used 8 -tile-columns 2 -g 50 -keyint_min 50 -f dash
 foo.mpd
 ffmpeg version 4.1.4 Copyright (c) 2000-2019 the FFmpeg developers
   built with Apple LLVM version 10.0.1 (clang-1001.0.46.4)
   configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1.4_1 --enable-shared
 --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-
 cflags='-I/Library/Java/JavaVirtualMachines/adoptopenjdk-12.0.1.jdk/Contents/Home/include
 -I/Library/Java/JavaVirtualMachines/adoptopenjdk-12.0.1.jdk/Contents/Home/include/darwin'
 --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-
 libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-
 librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora
 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265
 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype
 --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-
 libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex
 --enable-videotoolbox --disable-libjack --disable-indev=jack --enable-
 libaom --enable-libsoxr
   libavutil      56. 22.100 / 56. 22.100
   libavcodec     58. 35.100 / 58. 35.100
   libavformat    58. 20.100 / 58. 20.100
   libavdevice    58.  5.100 / 58.  5.100
   libavfilter     7. 40.101 /  7. 40.101
   libavresample   4.  0.  0 /  4.  0.  0
   libswscale      5.  3.100 /  5.  3.100
   libswresample   3.  3.100 /  3.  3.100
   libpostproc    55.  3.100 / 55.  3.100
 Input #0, yuv4mpegpipe, from 'crowd_run_1080p50.y4m':
   Duration: 00:00:10.00, start: 0.000000, bitrate: 1244162 kb/s
     Stream #0:0: Video: rawvideo (I420 / 0x30323449),
 yuv420p(progressive), 1920x1080, SAR 1:1 DAR 16:9, 50 fps, 50 tbr, 50 tbn,
 50 tbc
 Stream mapping:
   Stream #0:0 -> #0:0 (rawvideo (native) -> av1 (libaom-av1))
 Press [q] to stop, [?] for help
 [libaom-av1 @ 0x7fb83f002a00] 1.0.0
 [dash @ 0x7fb83f012a00] Opening 'init-stream0.m4s' for writing
 Output #0, dash, to 'foo.mpd':
   Metadata:
     encoder         : Lavf58.20.100
     Stream #0:0: Video: av1 (libaom-av1), yuv420p, 640x360 [SAR 1:1 DAR
 16:9], q=-1--1, 200 kb/s, 50 fps, 12800 tbn, 50 tbc
     Metadata:
       encoder         : Lavc58.35.100 libaom-av1
     Side data:
       cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
 [dash @ 0x7fb83f012a00] Opening 'chunk-stream0-00001.m4s.tmp' for writing
 [dash @ 0x7fb83f012a00] Opening 'foo.mpd.tmp' for writingate=N/A
 speed=0.0205x
 frame=   50 fps=1.0 q=-0.0 Lsize=N/A time=00:00:00.98 bitrate=N/A
 speed=0.02x
 video:88kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: unknown

 % $ cat foo.mpd

 <?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="PT1.0S"
         minBufferTime="PT2.0S">
         <ProgramInformation>
         </ProgramInformation>
         <Period id="0" start="PT0.0S">
                 <AdaptationSet id="0" contentType="video"
 segmentAlignment="true" bitstreamSwitching="true">
                         <Representation id="0" mimeType="video/mp4"
 codecs="av01" bandwidth="200000" width="640" height="360"
 frameRate="50/1">
                                 <SegmentTemplate timescale="12800"
 initialization="init-stream$RepresentationID$.m4s" media="chunk-
 stream$RepresentationID$-$Number%05d$.m4s" startNumber="1">
                                         <SegmentTimeline>
                                                 <S t="0" d="12800" />
                                         </SegmentTimeline>
                                 </SegmentTemplate>
                         </Representation>
                 </AdaptationSet>
         </Period>
 </MPD>

 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/8049>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list