[FFmpeg-trac] #9902(undetermined:new): Unable to Play encoded video using FFmpeg webm_dash_manifest encoder with Dash.js

FFmpeg trac at avcodec.org
Sat Sep 3 14:03:36 EEST 2022


#9902: Unable to Play encoded video using FFmpeg webm_dash_manifest encoder with
Dash.js
-------------------------------------+-------------------------------------
             Reporter:  shirsendu    |                    Owner:  (none)
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:
                                     |  undetermined
              Version:  git-master   |               Resolution:
             Keywords:  dash         |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
Changes (by Carl Eugen Hoyos):

 * keywords:   => dash
 * version:  unspecified => git-master


Old description:

> Hi,
>     I am trying to transcode in webm dash format using
>
> ffmpeg \
>  -f webm_dash_manifest -i video_160x90_250k.webm \
>  -f webm_dash_manifest -i video_320x180_500k.webm \
>  -f webm_dash_manifest -i video_640x360_750k.webm \
>  -f webm_dash_manifest -i audio_128k.webm \
>  -c copy -map 0 -map 1 -map 2 -map 3 \
>  -adaptation_sets "id=0,streams=0,1,2 id=1,streams=3" \
>  -f webm_dash_manifest \
>  manifest.mpd
>
> Which generates a manifest.mpd file which looks like this
>
> ```
> <?xml version="1.0" encoding="UTF-8"?>
> <MPD
>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>   xmlns="urn:mpeg:DASH:schema:MPD:2011"
>   xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011"
>   type="static"
>   mediaPresentationDuration="PT8864.3S"
>   minBufferTime="PT1S"
>   profiles="urn:mpeg:dash:profile:webm-on-demand:2012">
> <Period id="0" start="PT0S" duration="PT8864.3S" >
> <AdaptationSet id="0" mimeType="audio/webm" codecs="opus" lang="hin"
> audioSamplingRate="48000" bitstreamSwitching="true"
> subsegmentAlignment="true" subsegmentStartsWithSAP="1">
> <Representation id="0" bandwidth="99209">
> <BaseURL>audio.webm</BaseURL>
> <SegmentBase
>   indexRange="109939455-109976406">
> <Initialization
>   range="0-864" />
> </SegmentBase>
> </Representation>
> </AdaptationSet>
> <AdaptationSet id="1" mimeType="video/webm" codecs="av1" lang="hin"
> bitstreamSwitching="false" subsegmentAlignment="true"
> subsegmentStartsWithSAP="1">
> <Representation id="1" bandwidth="474873" width="792" height="330">
> <BaseURL>video-800p.webm</BaseURL>
> <SegmentBase
>   indexRange="200763509-200791162">
> <Initialization
>   range="0-884" />
> </SegmentBase>
> </Representation>
> <Representation id="2" bandwidth="1236911" width="1272" height="530">
> <BaseURL>video-1280p.webm</BaseURL>
> <SegmentBase
>   indexRange="596699241-596726959">
> <Initialization
>   range="0-884" />
> </SegmentBase>
> </Representation>
> <Representation id="3" bandwidth="3732848" width="1920" height="800">
> <BaseURL>video-1920p.webm</BaseURL>
> <SegmentBase
>   indexRange="1775390115-1775417858">
> <Initialization
>   range="0-884" />
> </SegmentBase>
> </Representation>
> </AdaptationSet>
> </Period>
> </MPD>
> ```
>
> Trying to play the video using dash.js failed saying
>
> then if I change this specific line codecs part
> ```
> <AdaptationSet id="1" mimeType="video/webm" codecs="av1" lang="hin"
> bitstreamSwitching="false" subsegmentAlignment="true"
> subsegmentStartsWithSAP="1">
> ```
> codecs="av1" -> codecs="av01.0.01M.08.0.111.01.01.01.0"
>
> then files starts playing normally
>
> site note I got this codec name when I try to transcode using dash
> encoder in ffmpeg not the webm_dash_manifest encoder
>
> also bitstreamSwitching in video is false by default where it should be
> true for a video

New description:

 Hi,
     I am trying to transcode in webm dash format using
 {{{
 ffmpeg \
  -f webm_dash_manifest -i video_160x90_250k.webm \
  -f webm_dash_manifest -i video_320x180_500k.webm \
  -f webm_dash_manifest -i video_640x360_750k.webm \
  -f webm_dash_manifest -i audio_128k.webm \
  -c copy -map 0 -map 1 -map 2 -map 3 \
  -adaptation_sets "id=0,streams=0,1,2 id=1,streams=3" \
  -f webm_dash_manifest \
  manifest.mpd
 }}}
 Which generates a manifest.mpd file which looks like this

 {{{
 <?xml version="1.0" encoding="UTF-8"?>
 <MPD
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="urn:mpeg:DASH:schema:MPD:2011"
   xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011"
   type="static"
   mediaPresentationDuration="PT8864.3S"
   minBufferTime="PT1S"
   profiles="urn:mpeg:dash:profile:webm-on-demand:2012">
 <Period id="0" start="PT0S" duration="PT8864.3S" >
 <AdaptationSet id="0" mimeType="audio/webm" codecs="opus" lang="hin"
 audioSamplingRate="48000" bitstreamSwitching="true"
 subsegmentAlignment="true" subsegmentStartsWithSAP="1">
 <Representation id="0" bandwidth="99209">
 <BaseURL>audio.webm</BaseURL>
 <SegmentBase
   indexRange="109939455-109976406">
 <Initialization
   range="0-864" />
 </SegmentBase>
 </Representation>
 </AdaptationSet>
 <AdaptationSet id="1" mimeType="video/webm" codecs="av1" lang="hin"
 bitstreamSwitching="false" subsegmentAlignment="true"
 subsegmentStartsWithSAP="1">
 <Representation id="1" bandwidth="474873" width="792" height="330">
 <BaseURL>video-800p.webm</BaseURL>
 <SegmentBase
   indexRange="200763509-200791162">
 <Initialization
   range="0-884" />
 </SegmentBase>
 </Representation>
 <Representation id="2" bandwidth="1236911" width="1272" height="530">
 <BaseURL>video-1280p.webm</BaseURL>
 <SegmentBase
   indexRange="596699241-596726959">
 <Initialization
   range="0-884" />
 </SegmentBase>
 </Representation>
 <Representation id="3" bandwidth="3732848" width="1920" height="800">
 <BaseURL>video-1920p.webm</BaseURL>
 <SegmentBase
   indexRange="1775390115-1775417858">
 <Initialization
   range="0-884" />
 </SegmentBase>
 </Representation>
 </AdaptationSet>
 </Period>
 </MPD>
 }}}

 Trying to play the video using dash.js failed saying

 then if I change this specific line codecs part
 {{{
 <AdaptationSet id="1" mimeType="video/webm" codecs="av1" lang="hin"
 bitstreamSwitching="false" subsegmentAlignment="true"
 subsegmentStartsWithSAP="1">
 }}}
 codecs="av1" -> codecs="av01.0.01M.08.0.111.01.01.01.0"

 then files starts playing normally

 site note I got this codec name when I try to transcode using dash encoder
 in ffmpeg not the webm_dash_manifest encoder

 also bitstreamSwitching in video is false by default where it should be
 true for a video

--
Comment:

 Please understand that valid tickets on this bug tracker always contain a
 command line together with the complete, uncut console output.
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/9902#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list