MPEG-DASH - 破折号无效!错误

Posted

技术标签:

【中文标题】MPEG-DASH - 破折号无效!错误【英文标题】:MPEG-DASH - Dash is not valid! Error 【发布时间】:2017-04-11 19:54:21 【问题描述】:

我一直在尝试学习 MP4Box 和 Dash,我正在取得一些进展,但我似乎无法让我的视频正常工作。我按照说明将播放器添加到一个简单的 html 页面,并用它测试了 Dash 测试页面中已知的 MPD,一切都与播放器完美配合,因此我缩小了 MPD 文件的范围。

我通过 Dash 验证器运行了我的 MPD 文件,但它失败了。我收到以下错误:

Start XLink resolving
=====================

XLink resolving successful



Start MPD validation
====================

Line:Col[5:20]:cvc-elt.1: Cannot find the declaration of element 'MPD'.
MPD validation not successful - DASH is not valid!



BUILD FAILED
/var/www/html/conformance/current/webfe/mpdvalidator/build.xml:65: Java 
returned: 4

Total time: 53 seconds

我正在使用 MP4Box 来分割 mp4,所以它可能是一个不正确的命令。我正在使用,这是我正在使用的命令:

MP4Box -dash 4000 -frag 1000 -rap -segment-name segment_ rogue_one.mp4

当我查看 MPD 文件时,我不确定我在寻找什么,但我确实通过它查看是否可以找到任何明显的错误,但它看起来不错。这是我的 MPD 文件:

<MPD type="static" xmlns="urn:mpeg:DASH:schema:MPD:2011" profiles="urn:mpeg:dash:profile:full:2011" minBufferTime="PT1.5S" mediaPresentationDuration="PT0H2M28.34S">
    <ProgramInformation moreInformationURL="http://gpac.sourceforge.net">
        <Title>Media Presentation Description for file rogue_one.mp4 generated with GPAC </Title>
    </ProgramInformation>
    <Period start="PT0S" duration="PT0H2M28.34S">
        <AdaptationSet>
            <ContentComponent id="1" contentType="video"/>
            <ContentComponent id="2" contentType="audio" lang="eng"/>
            <Representation id="1" mimeType="video/mp4" codecs="avc1.640029,mp4a.40.02"   sampleRate="44100" numChannels="2" lang="eng" startWithSAP="1" band>
                    <SegmentList timescale="1000" duration="10050">
                    <Initialization sourceURL="rogue_one_dash.mp4"/>
                    <SegmentURL media="segment_1.m4s"/>
                    ...
                    <SegmentURL media="segment_43.m4s"/>
                </SegmentList>
            </Representation>
        </AdaptationSet>
    </Period>
</MPD>

【问题讨论】:

【参考方案1】:

在深入研究之后,ffmpeg 是问题所在。我更改了编码命令,它开始工作。奇怪的是,虽然它有效,但我仍然得到一个 Dash 无效!错误,不知道为什么。

【讨论】:

您能说出问题所在以及您的解决方案是什么吗?

以上是关于MPEG-DASH - 破折号无效!错误的主要内容,如果未能解决你的问题,请参考以下文章

如何创建具有多个后备 URL 的 MPEG-DASH 清单?

赋值表达式中的左侧无效

通知用户 Dash 中的无效输入

创建我自己的现场破折号播放器

无法从 nginx-rtmp 获得破折号流式传输

Postgres 解决由破折号 (-) 引起的语法错误