[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:35:06 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_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-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
--
--
Ticket URL: <https://trac.ffmpeg.org/ticket/9902#comment:2>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list