[FFmpeg-user] MPD file creation using FFMpeg fails validation check

Rahul Prasad rahul at 47line.com
Sat Jan 16 09:24:26 CET 2016


Just found out that the MPD validation issue was because the MPD attributes
for xmlns and xsi:schemaLocation should be this

xmlns="urn:mpeg:dash:schema:mpd:2011"
xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011"

instead of
xmlns="urn:mpeg:DASH:schema:MPD:2011"
xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011"

Not sure why ffmpeg has not fixed this as yet.

But now that MPD validation has succeeded I am getting Schematron
validation error!

This is the error

location="/*[local-name()='MPD' and
namespace-uri()='urn:mpeg:dash:schema:mpd:2011']">
The On-Demand profile shall be identified by the URN
"urn:mpeg:dash:profile:isoff-on-demand:2011". The live profile shall be
identified by the URN "urn:mpeg:dash:profile:isoff-live:2011". The main
profile shall be identified by the URN
"urn:mpeg:dash:profile:isoff-main:2011". The full profile shall be
identified by the URN "urn:mpeg:dash:profile:full:2011". The mp2t-main
profile shall be identified by the URN
"urn:mpeg:dash:profile:mp2t-main:2011". The mp2t-simple profile shall be
identified by the URN "urn:mpeg:dash:profile:mp2t-simple:2011".The Dolby
AC-4 profile shall be identified by "
http://dashif.org/guidelines/dashif#ac-4". The multichannel audio extension
with MPEG-H 3D Audio profile shall be identified by "
http://dashif.org/guidelines/dashif#mha1".

Schematron validation not successful - DASH is not valid!

Appreciate your help.

​Regards,​

*Rahul *

On Sat, Jan 16, 2016 at 12:47 PM, Rahul Prasad <rahul at 47line.com> wrote:

> TL;DR DASH manifest file (mpd) created using ffmpeg fails the validation
> test and also fails to play.
>
> This is what I did:
>
> Step 1: Transcoded 2 video files with different resolution and bitrate
> (without audio stream)
>
>
>
>
> *​​ffmpeg -y -i file1.mp4 -c:v libvpx -vf scale=-2:270 -quality good
> -cpu-used 0 -b:v 400k -maxrate 400k -bufsize 400k  -keyint_min 150 -g 150
> -an -f webm -dash 1 file1-270.webmffmpeg -y -i file1.mp4 -c:v libvpx -vf
> scale=-2:360 -quality good -cpu-used 0 -b:v 1200k -maxrate 1200k -bufsize
> 1200k  -keyint_min 150 -g 150 -an -f webm -dash 1 file1-360.webm*
> Step 2: Separately transcoded the audio stream
>
>
> *​​ffmpeg -y -i file1.mp4 -c:a libvorbis -b:a 128k -vn -f webm -dash 1
> file1-audio.webm*
> Step 3: Created the Dash manifest file
>
>
> *​​ffmpeg -f webm_dash_manifest -i file1-270.webm -f webm_dash_manifest -i
> file1-360.webm -f webm_dash_manifest -i file1-audio.webm -c copy -map 0
> -map 1 -map 2 -f webm_dash_manifest -adaptation_sets "id=0,streams=0,1
> id=1,streams=2" file1.mpd*
> When I run this I get
> ​this​
>  warning "Output file is empty, nothing was encoded (check -ss / -t /
> -frames parameters if used)". However, the output file
> ​gets
>  created.
>
> Now when I tried to run this file through DASH validation (
> http://dashif.org/conformance.html) it said "MPD validation failed".
> Another validation tool (http://www-itec.uni-klu.ac.at/dash/?page_id=605)
> threw this error
>
>
> *​​Line:Col[8:57]:cvc-elt.1: Cannot find the declaration of element
> ‘MPD’.MPD validation not successful – DASH is not valid!*
>
> ​​
>
> Regards,
> Rahul Prasad
>


More information about the ffmpeg-user mailing list