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

FFmpeg trac at avcodec.org
Mon Sep 5 09:37:34 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            |
-------------------------------------+-------------------------------------
Description changed by shirsendu:

Old description:

> Hi,
>     I am trying to transcode in webm dash format using
>
> {{{
> ffmpeg \
>  -f webm_dash_manifest -i video-800p.webm \
>  -f webm_dash_manifest -i video-1280p.webm \
>  -f webm_dash_manifest -i video-1920p.webm \
>  -f webm_dash_manifest -i audio.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
> }}}
>
> {{{
> webm_dash_manifest_duration: 6.91658e+06
>       webm_dash_manifest_initialization_range: 544
>       webm_dash_manifest_file_name: video-1280p.webm
>       webm_dash_manifest_track_number: 1
>       webm_dash_manifest_cues_start: 645266452
>       webm_dash_manifest_cues_end: 645288083
>       webm_dash_manifest_bandwidth: 1230753
>       webm_dash_manifest_cluster_keyframe: 1
>       webm_dash_manifest_cue_timestamps:
> 0,6708,13417,20125,26833,33542,40250,46958,53667,60375,67083,73792,80500,87208,93917,100625,107333,114042,120750,127458,134167,140875,147583,154292,161000,167708,174417,181125,187833,194542,201250,207958,214667,221375,228083,234792,241500,248208,254917,26
> [libdav1d @ 000002a65e5cdc80] libdav1d 1.0.0-46-gcd5e415
> Input #3, webm_dash_manifest, from './media/_Movie/Chandigarh Kare
> Aashiqui/Chandigarh Kare Aashiqui/video-1920p.webm':
>   Metadata:
>     title           :
>     ENCODER         : Lavf59.27.100
>   Duration: 01:55:16.58, bitrate: 2139 kb/s
>   Stream #3:0: Video: av1 (Main), yuv420p10le(tv, bt709, progressive),
> 1920x820, SAR 1:1 DAR 96:41, 24 fps, 24 tbr, 1k tbn (default)
>     Metadata:
>       title           : Encoded by HashMiner!
>       ENCODER         : Lavc59.37.100 libsvtav1
>       DURATION        : 01:55:16.584000000
>       webm_dash_manifest_duration: 6.91658e+06
>       webm_dash_manifest_initialization_range: 544
>       webm_dash_manifest_file_name: video-1920p.webm
>       webm_dash_manifest_track_number: 1
>       webm_dash_manifest_cues_start: 1850068057
>       webm_dash_manifest_cues_end: 1850089705
>       webm_dash_manifest_bandwidth: 3777662
>       webm_dash_manifest_cluster_keyframe: 1
>       webm_dash_manifest_cue_timestamps:
> 0,6708,13417,20125,26833,33542,40250,46958,53667,60375,67083,73792,80500,87208,93917,100625,107333,114042,120750,127458,134167,140875,147583,154292,161000,167708,174417,181125,187833,194542,201250,207958,214667,221375,228083,234792,241500,248208,254917,26
> Output #0, webm_dash_manifest, to './media/Movie/4-1/0/manifest.mpd':
>   Metadata:
>     title           :
>     encoder         : Lavf59.27.100
>   Stream #0:0(hin): Audio: opus, 48000 Hz, stereo, fltp (default)
>     Metadata:
>       title           :
>       ENCODER         : Lavc59.37.100 libopus
>       DURATION        : 01:55:16.648000000
>       webm_dash_manifest_duration: 6.91665e+06
>       webm_dash_manifest_initialization_range: 503
>       webm_dash_manifest_file_name: audio.webm
>       webm_dash_manifest_track_number: 1
>       webm_dash_manifest_cues_start: 85783808
>       webm_dash_manifest_cues_end: 85812590
>       webm_dash_manifest_bandwidth: 99206
>       webm_dash_manifest_cluster_keyframe: 1
>       webm_dash_manifest_cue_timestamps:
> -7,0,4974,4981,9974,9981,14974,14981,19974,19981,24974,24981,29974,29981,34974,34981,39974,39981,44974,44981,49974,49981,54974,54981,59974,59981,64974,64981,69974,69981,74974,74981,79974,79981,84974,84981,89974,89981,94974,94981,99974,99981,104974,104981,
>   Stream #0:1: Video: av1 (Main), yuv420p10le(tv, bt709, progressive),
> 768x328 [SAR 1:1 DAR 96:41], q=2-31, 24 fps, 24 tbr, 1k tbn (default)
>     Metadata:
>       title           : Encoded by HashMiner!
>       ENCODER         : Lavc59.37.100 libsvtav1
>       DURATION        : 01:55:16.584000000
>       webm_dash_manifest_duration: 6.91658e+06
>       webm_dash_manifest_initialization_range: 544
>       webm_dash_manifest_file_name: video-800p.webm
>       webm_dash_manifest_track_number: 1
>       webm_dash_manifest_cues_start: 212306368
>       webm_dash_manifest_cues_end: 212327942
>       webm_dash_manifest_bandwidth: 481344
>       webm_dash_manifest_cluster_keyframe: 1
>       webm_dash_manifest_cue_timestamps:
> 0,6708,13417,20125,26833,33542,40250,46958,53667,60375,67083,73792,80500,87208,93917,100625,107333,114042,120750,127458,134167,140875,147583,154292,161000,167708,174417,181125,187833,194542,201250,207958,214667,221375,228083,234792,241500,248208,254917,26
>   Stream #0:2: Video: av1 (Main), yuv420p10le(tv, bt709, progressive),
> 1344x574 [SAR 1:1 DAR 96:41], q=2-31, 24 fps, 24 tbr, 1k tbn (default)
>     Metadata:
>       title           : Encoded by HashMiner!
>       ENCODER         : Lavc59.37.100 libsvtav1
>       DURATION        : 01:55:16.584000000
>       webm_dash_manifest_duration: 6.91658e+06
>       webm_dash_manifest_initialization_range: 544
>       webm_dash_manifest_file_name: video-1280p.webm
>       webm_dash_manifest_track_number: 1
>       webm_dash_manifest_cues_start: 645266452
>       webm_dash_manifest_cues_end: 645288083
>       webm_dash_manifest_bandwidth: 1230753
>       webm_dash_manifest_cluster_keyframe: 1
>       webm_dash_manifest_cue_timestamps:
> 0,6708,13417,20125,26833,33542,40250,46958,53667,60375,67083,73792,80500,87208,93917,100625,107333,114042,120750,127458,134167,140875,147583,154292,161000,167708,174417,181125,187833,194542,201250,207958,214667,221375,228083,234792,241500,248208,254917,26
>   Stream #0:3: Video: av1 (Main), yuv420p10le(tv, bt709, progressive),
> 1920x820 [SAR 1:1 DAR 96:41], q=2-31, 24 fps, 24 tbr, 1k tbn (default)
>     Metadata:
>       title           : Encoded by HashMiner!
>       ENCODER         : Lavc59.37.100 libsvtav1
>       DURATION        : 01:55:16.584000000
>       webm_dash_manifest_duration: 6.91658e+06
>       webm_dash_manifest_initialization_range: 544
>       webm_dash_manifest_file_name: video-1920p.webm
>       webm_dash_manifest_track_number: 1
>       webm_dash_manifest_cues_start: 1850068057
>       webm_dash_manifest_cues_end: 1850089705
>       webm_dash_manifest_bandwidth: 3777662
>       webm_dash_manifest_cluster_keyframe: 1
>       webm_dash_manifest_cue_timestamps:
> 0,6708,13417,20125,26833,33542,40250,46958,53667,60375,67083,73792,80500,87208,93917,100625,107333,114042,120750,127458,134167,140875,147583,154292,161000,167708,174417,181125,187833,194542,201250,207958,214667,221375,228083,234792,241500,248208,254917,26
> Stream mapping:
>   Stream #0:0 -> #0:0 (copy)
>   Stream #1:0 -> #0:1 (copy)
>   Stream #2:0 -> #0:2 (copy)
>   Stream #3:0 -> #0:3 (copy)
> Press [q] to stop, [?] for help
> frame=    0 fps=0.0 q=-1.0 q=-1.0 q=-1.0 size=       2kB time=00:00:00.00
> bitrate=N/A speed=   0x
> frame=    0 fps=0.0 q=-1.0 Lq=-1.0 q=-1.0 size=       2kB
> time=00:00:00.00 bitrate=N/A speed=   0x
> video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
> muxing overhead: unknown
> }}}
>
> 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 audio.webm \
  -f webm_dash_manifest -i video-800p.webm \
  -f webm_dash_manifest -i video-1280p.webm \
  -f webm_dash_manifest -i video-1920p.webm \
  -c copy -map 0 -map 1 -map 2 -map 3 \
  -adaptation_sets "id=0,streams=0 id=1,streams=1,2,3" \
  -f webm_dash_manifest \
  manifest.mpd
 }}}

 {{{
       webm_dash_manifest_duration: 6.91658e+06
       webm_dash_manifest_initialization_range: 544
       webm_dash_manifest_file_name: video-1280p.webm
       webm_dash_manifest_track_number: 1
       webm_dash_manifest_cues_start: 645266452
       webm_dash_manifest_cues_end: 645288083
       webm_dash_manifest_bandwidth: 1230753
       webm_dash_manifest_cluster_keyframe: 1
       webm_dash_manifest_cue_timestamps:
 0,6708,13417,20125,26833,33542,40250,46958,53667,60375,67083,73792,80500,87208,93917,100625,107333,114042,120750,127458,134167,140875,147583,154292,161000,167708,174417,181125,187833,194542,201250,207958,214667,221375,228083,234792,241500,248208,254917,26
 [libdav1d @ 000002a65e5cdc80] libdav1d 1.0.0-46-gcd5e415
 Input #3, webm_dash_manifest, from './media/_Movie/Chandigarh Kare
 Aashiqui/Chandigarh Kare Aashiqui/video-1920p.webm':
   Metadata:
     title           :
     ENCODER         : Lavf59.27.100
   Duration: 01:55:16.58, bitrate: 2139 kb/s
   Stream #3:0: Video: av1 (Main), yuv420p10le(tv, bt709, progressive),
 1920x820, SAR 1:1 DAR 96:41, 24 fps, 24 tbr, 1k tbn (default)
     Metadata:
       title           : Encoded by HashMiner!
       ENCODER         : Lavc59.37.100 libsvtav1
       DURATION        : 01:55:16.584000000
       webm_dash_manifest_duration: 6.91658e+06
       webm_dash_manifest_initialization_range: 544
       webm_dash_manifest_file_name: video-1920p.webm
       webm_dash_manifest_track_number: 1
       webm_dash_manifest_cues_start: 1850068057
       webm_dash_manifest_cues_end: 1850089705
       webm_dash_manifest_bandwidth: 3777662
       webm_dash_manifest_cluster_keyframe: 1
       webm_dash_manifest_cue_timestamps:
 0,6708,13417,20125,26833,33542,40250,46958,53667,60375,67083,73792,80500,87208,93917,100625,107333,114042,120750,127458,134167,140875,147583,154292,161000,167708,174417,181125,187833,194542,201250,207958,214667,221375,228083,234792,241500,248208,254917,26
 Output #0, webm_dash_manifest, to './media/Movie/4-1/0/manifest.mpd':
   Metadata:
     title           :
     encoder         : Lavf59.27.100
   Stream #0:0(hin): Audio: opus, 48000 Hz, stereo, fltp (default)
     Metadata:
       title           :
       ENCODER         : Lavc59.37.100 libopus
       DURATION        : 01:55:16.648000000
       webm_dash_manifest_duration: 6.91665e+06
       webm_dash_manifest_initialization_range: 503
       webm_dash_manifest_file_name: audio.webm
       webm_dash_manifest_track_number: 1
       webm_dash_manifest_cues_start: 85783808
       webm_dash_manifest_cues_end: 85812590
       webm_dash_manifest_bandwidth: 99206
       webm_dash_manifest_cluster_keyframe: 1
       webm_dash_manifest_cue_timestamps:
 -7,0,4974,4981,9974,9981,14974,14981,19974,19981,24974,24981,29974,29981,34974,34981,39974,39981,44974,44981,49974,49981,54974,54981,59974,59981,64974,64981,69974,69981,74974,74981,79974,79981,84974,84981,89974,89981,94974,94981,99974,99981,104974,104981,
   Stream #0:1: Video: av1 (Main), yuv420p10le(tv, bt709, progressive),
 768x328 [SAR 1:1 DAR 96:41], q=2-31, 24 fps, 24 tbr, 1k tbn (default)
     Metadata:
       title           : Encoded by HashMiner!
       ENCODER         : Lavc59.37.100 libsvtav1
       DURATION        : 01:55:16.584000000
       webm_dash_manifest_duration: 6.91658e+06
       webm_dash_manifest_initialization_range: 544
       webm_dash_manifest_file_name: video-800p.webm
       webm_dash_manifest_track_number: 1
       webm_dash_manifest_cues_start: 212306368
       webm_dash_manifest_cues_end: 212327942
       webm_dash_manifest_bandwidth: 481344
       webm_dash_manifest_cluster_keyframe: 1
       webm_dash_manifest_cue_timestamps:
 0,6708,13417,20125,26833,33542,40250,46958,53667,60375,67083,73792,80500,87208,93917,100625,107333,114042,120750,127458,134167,140875,147583,154292,161000,167708,174417,181125,187833,194542,201250,207958,214667,221375,228083,234792,241500,248208,254917,26
   Stream #0:2: Video: av1 (Main), yuv420p10le(tv, bt709, progressive),
 1344x574 [SAR 1:1 DAR 96:41], q=2-31, 24 fps, 24 tbr, 1k tbn (default)
     Metadata:
       title           : Encoded by HashMiner!
       ENCODER         : Lavc59.37.100 libsvtav1
       DURATION        : 01:55:16.584000000
       webm_dash_manifest_duration: 6.91658e+06
       webm_dash_manifest_initialization_range: 544
       webm_dash_manifest_file_name: video-1280p.webm
       webm_dash_manifest_track_number: 1
       webm_dash_manifest_cues_start: 645266452
       webm_dash_manifest_cues_end: 645288083
       webm_dash_manifest_bandwidth: 1230753
       webm_dash_manifest_cluster_keyframe: 1
       webm_dash_manifest_cue_timestamps:
 0,6708,13417,20125,26833,33542,40250,46958,53667,60375,67083,73792,80500,87208,93917,100625,107333,114042,120750,127458,134167,140875,147583,154292,161000,167708,174417,181125,187833,194542,201250,207958,214667,221375,228083,234792,241500,248208,254917,26
   Stream #0:3: Video: av1 (Main), yuv420p10le(tv, bt709, progressive),
 1920x820 [SAR 1:1 DAR 96:41], q=2-31, 24 fps, 24 tbr, 1k tbn (default)
     Metadata:
       title           : Encoded by HashMiner!
       ENCODER         : Lavc59.37.100 libsvtav1
       DURATION        : 01:55:16.584000000
       webm_dash_manifest_duration: 6.91658e+06
       webm_dash_manifest_initialization_range: 544
       webm_dash_manifest_file_name: video-1920p.webm
       webm_dash_manifest_track_number: 1
       webm_dash_manifest_cues_start: 1850068057
       webm_dash_manifest_cues_end: 1850089705
       webm_dash_manifest_bandwidth: 3777662
       webm_dash_manifest_cluster_keyframe: 1
       webm_dash_manifest_cue_timestamps:
 0,6708,13417,20125,26833,33542,40250,46958,53667,60375,67083,73792,80500,87208,93917,100625,107333,114042,120750,127458,134167,140875,147583,154292,161000,167708,174417,181125,187833,194542,201250,207958,214667,221375,228083,234792,241500,248208,254917,26
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #1:0 -> #0:1 (copy)
   Stream #2:0 -> #0:2 (copy)
   Stream #3:0 -> #0:3 (copy)
 Press [q] to stop, [?] for help
 frame=    0 fps=0.0 q=-1.0 q=-1.0 q=-1.0 size=       2kB time=00:00:00.00
 bitrate=N/A speed=   0x
 frame=    0 fps=0.0 q=-1.0 Lq=-1.0 q=-1.0 size=       2kB time=00:00:00.00
 bitrate=N/A speed=   0x
 video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: unknown
 }}}

 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="PT6916.65S"
   minBufferTime="PT1S"
   profiles="urn:mpeg:dash:profile:webm-on-demand:2012">
 <Period id="0" start="PT0S" duration="PT6916.65S" >
 <AdaptationSet id="0" mimeType="audio/webm" codecs="opus" lang="hin"
 audioSamplingRate="48000" bitstreamSwitching="true"
 subsegmentAlignment="true" subsegmentStartsWithSAP="1">
 <Representation id="0" bandwidth="99206">
 <BaseURL>audio.webm</BaseURL>
 <SegmentBase
   indexRange="85783808-85812590">
 <Initialization
   range="0-503" />
 </SegmentBase>
 </Representation>
 </AdaptationSet>
 <AdaptationSet id="1" mimeType="video/webm" codecs="av1"
 bitstreamSwitching="false" subsegmentAlignment="true"
 subsegmentStartsWithSAP="1">
 <Representation id="1" bandwidth="481344" width="768" height="328">
 <BaseURL>video-800p.webm</BaseURL>
 <SegmentBase
   indexRange="212306368-212327942">
 <Initialization
   range="0-544" />
 </SegmentBase>
 </Representation>
 <Representation id="2" bandwidth="1230753" width="1344" height="574">
 <BaseURL>video-1280p.webm</BaseURL>
 <SegmentBase
   indexRange="645266452-645288083">
 <Initialization
   range="0-544" />
 </SegmentBase>
 </Representation>
 <Representation id="3" bandwidth="3777662" width="1920" height="820">
 <BaseURL>video-1920p.webm</BaseURL>
 <SegmentBase
   indexRange="1850068057-1850089705">
 <Initialization
   range="0-544" />
 </SegmentBase>
 </Representation>
 </AdaptationSet>
 </Period>
 </MPD>
 }}}
 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

--
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/9902#comment:3>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list