【问题标题】:Live Streaming MPD Contain Misalignment Segment Start Time实时流媒体 MPD 包含未对齐段开始时间
【发布时间】:2019-10-22 15:22:01
【问题描述】:

直播 (MPEG-DASH) 提供包含不同片段开始时间的 MPD 文件。

我正在流式传输 3 个不同分辨率的 9 个流(总共 27 个流),并且我正在使用 Wowza 打包器。

我的 MPD 文件包含 3 个适配集,每个适配集包含一个 SegmentTimeline(段列表)-

第一段有“t”(时间)和“d”(持续时间)。

所以,我们总共有 3 个带有“t”属性的第一段(针对每个适应集)。

其中一个的值不等于另外两个。

这是我的 MPD 文件:

<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="urn:mpeg:dash:schema:mpd:2011"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd"
     profiles="urn:mpeg:dash:profile:isoff-live:2011"
     type="dynamic"
     minimumUpdatePeriod="PT1.489S" 
     publishTime="2019-06-06T12:55:32Z" 
     availabilityStartTime="2019-06-06T12:15:43Z" 
     timeShiftBufferDepth="PT25.0S"
     suggestedPresentationDelay="PT1.0S" 
     minBufferTime="PT6.0S">
<ProgramInformation>
    <Title>camera1.smil</Title>
</ProgramInformation>
<Location>http://...:1935/..../smil:camera1.smil/manifest_w1997958089.mpd</Location>
<Period id="0" start="PT0.0S">
    <AdaptationSet id="0" group="1" mimeType="video/mp4" width="3200" height="640" par="1:1" frameRate="30" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
        <SegmentTemplate timescale="90000" media="chunk_ctvideo_cfm4s_rid$RepresentationID$_cs$Time$_w1997958089_mpd.m4s" initialization="chunk_ctvideo_cfm4s_rid$RepresentationID$_cinit_w1997958089_mpd.m4s">
            <SegmentTimeline>
                <S t="212758470" d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
            </SegmentTimeline>
        </SegmentTemplate>
        <Representation id="p0va0br3000000" codecs="avc1.640033" sar="1:1" bandwidth="3000000" />
        <Representation id="p0va0br3100000" codecs="avc1.640033" sar="1:1" bandwidth="3100000" />
        <Representation id="p0va0br3500000" codecs="avc1.640033" sar="1:1" bandwidth="3500000" />
        <Representation id="p0va0br4200000" codecs="avc1.640033" sar="1:1" bandwidth="4200000" />
        <Representation id="p0va0br4300000" codecs="avc1.640033" sar="1:1" bandwidth="4300000" />
        <Representation id="p0va0br4150000" codecs="avc1.640033" sar="1:1" bandwidth="4150000" />
        <Representation id="p0va0br3400000" codecs="avc1.640033" sar="1:1" bandwidth="3400000" />
        <Representation id="p0va0br2900000" codecs="avc1.640033" sar="1:1" bandwidth="2900000" />
        <Representation id="p0va0br2800000" codecs="avc1.640033" sar="1:1" bandwidth="2800000" />
    </AdaptationSet>
    <AdaptationSet id="1" group="1" mimeType="video/mp4" width="3200" height="320" par="1:1" frameRate="30" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
        <SegmentTemplate timescale="90000" media="chunk_ctvideo_cfm4s_rid$RepresentationID$_cs$Time$_w1997958089_mpd.m4s" initialization="chunk_ctvideo_cfm4s_rid$RepresentationID$_cinit_w1997958089_mpd.m4s">
            <SegmentTimeline>
                <S t="212713470" d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
            </SegmentTimeline>
        </SegmentTemplate>
        <Representation id="p0va1br1310000" codecs="avc1.640033" sar="1:1" bandwidth="1310000" />
        <Representation id="p0va1br1320000" codecs="avc1.640033" sar="1:1" bandwidth="1320000" />
        <Representation id="p0va1br1340000" codecs="avc1.640033" sar="1:1" bandwidth="1340000" />
        <Representation id="p0va1br1840000" codecs="avc1.640033" sar="1:1" bandwidth="1840000" />
        <Representation id="p0va1br1850000" codecs="avc1.640033" sar="1:1" bandwidth="1850000" />
        <Representation id="p0va1br1860000" codecs="avc1.640033" sar="1:1" bandwidth="1860000" />
        <Representation id="p0va1br1870000" codecs="avc1.640033" sar="1:1" bandwidth="1870000" />
        <Representation id="p0va1br1380000" codecs="avc1.640033" sar="1:1" bandwidth="1380000" />
        <Representation id="p0va1br1390000" codecs="avc1.640033" sar="1:1" bandwidth="1390000" />
    </AdaptationSet>
    <AdaptationSet id="2" group="1" mimeType="video/mp4" width="3200" height="160" par="1:1" frameRate="30" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
        <SegmentTemplate timescale="90000" media="chunk_ctvideo_cfm4s_rid$RepresentationID$_cs$Time$_w1997958089_mpd.m4s" initialization="chunk_ctvideo_cfm4s_rid$RepresentationID$_cinit_w1997958089_mpd.m4s">
            <SegmentTimeline>
                <S t="212758470" d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
                <S d="45000"/>
            </SegmentTimeline>
        </SegmentTemplate>
        <Representation id="p0va2br151000" codecs="avc1.640033" sar="1:1" bandwidth="151000" />
        <Representation id="p0va2br252000" codecs="avc1.640033" sar="1:1" bandwidth="252000" />
        <Representation id="p0va2br483000" codecs="avc1.640033" sar="1:1" bandwidth="483000" />
        <Representation id="p0va2br584000" codecs="avc1.640033" sar="1:1" bandwidth="584000" />
        <Representation id="p0va2br585000" codecs="avc1.640033" sar="1:1" bandwidth="585000" />
        <Representation id="p0va2br586000" codecs="avc1.640033" sar="1:1" bandwidth="586000" />
        <Representation id="p0va2br487000" codecs="avc1.640033" sar="1:1" bandwidth="487000" />
        <Representation id="p0va2br258000" codecs="avc1.640033" sar="1:1" bandwidth="258000" />
        <Representation id="p0va2br159000" codecs="avc1.640033" sar="1:1" bandwidth="159000" />
    </AdaptationSet>
</Period>
<UTCTiming schemeIdUri="urn:mpeg:dash:utc:direct:2014" value="2019-06-06T12:55:32Z"/>
</MPD>

你可以看到错位:

<S t="212758470" d="45000"/>
<S t="212713470" d="45000"/>
<S t="212758470" d="45000"/>

我的问题是:

  • 这是有效的情况吗?
  • 如果是,这种错位的原因是什么?
  • 如果没有,我该如何解决?

请注意,这种错位并非在所有 MPD 中都发生,它有时会发生。

我的目标是为每个适应集获得完全相同的 SegmentTemplate。

【问题讨论】:

    标签: video-streaming live-streaming wowza mpeg-dash


    【解决方案1】:

    确实,中间的自适应集 (id=1) 领先其他两个自适应集 0.5 秒。值得一提的是,每个段的时长正好等于 0.5 秒。

    假设 GOP 间隔等于 0.5s,是什么剥夺了 Packager 对齐适应集的能力?也许是音频流?包括音频吗?如果是这样,我建议禁用音频并重新检查。 我还建议询问 Wowza 专家如何执行自适应集对齐。

    【讨论】:

    • 正如您在此 MPD 文件中看到的 - 没有音频流。 wowza上的票已经开。但我仍在等待群众的智慧
    猜你喜欢
    • 1970-01-01
    • 2020-05-19
    • 2011-09-29
    • 1970-01-01
    • 2012-06-07
    • 2015-09-03
    • 1970-01-01
    • 2011-04-05
    • 2014-08-04
    相关资源
    最近更新 更多