You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建含特定分段序列的音频MPEG-DASH Manifest?

Creating a Custom MPEG-DASH Manifest for Mixed-Duration Audio Segments

Got it, let's tackle this. Since you're dealing with a fixed sequence of audio segments with varying durations (3x1s, 20x10s, 7x1s), you'll want to use the <SegmentList> element in your DASH Manifest—this is perfect for non-uniform segment sequences, unlike <SegmentTemplate> which works best for regular, consistent durations.

Here's a breakdown plus a complete example Manifest to implement this:

Key Prep Notes

  • Timescale: Set this to 1000 (so durations are measured in milliseconds) to simplify calculations.
  • Consistent Encoding: Ensure all your audio segments use the same codec, bitrate, sampling rate, and channel setup—players struggle with mismatched audio parameters mid-playback.
  • Segment Packaging: Make sure each segment is a fragmented MP4 (or other DASH-compatible container) so players can stream them seamlessly.

Complete Manifest Example

<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011"
     type="static"
     profiles="urn:mpeg:dash:profile:isoff-on-demand:2011"
     minBufferTime="PT2S"
     timescale="1000">

  <Period start="PT0S">
    <!-- Audio Adaptation Set -->
    <AdaptationSet mimeType="audio/mp4"
                   codecs="mp4a.40.2"
                   audioSamplingRate="44100"
                   lang="en">

      <!-- Custom Audio Representation -->
      <Representation id="audio_128k"
                      bandwidth="128000"
                      audioSamplingRate="44100">

        <SegmentList>
          <!-- First 3 x 1-second segments -->
          <SegmentURL media="audio_1s_01.mp4" duration="1000"/>
          <SegmentURL media="audio_1s_02.mp4" duration="1000"/>
          <SegmentURL media="audio_1s_03.mp4" duration="1000"/>

          <!-- Next 20 x 10-second segments -->
          <SegmentURL media="audio_10s_01.mp4" duration="10000"/>
          <SegmentURL media="audio_10s_02.mp4" duration="10000"/>
          <!-- Repeat this line 18 more times to reach 20 total 10s segments -->
          <SegmentURL media="audio_10s_20.mp4" duration="10000"/>

          <!-- Last 7 x 1-second segments -->
          <SegmentURL media="audio_1s_04.mp4" duration="1000"/>
          <SegmentURL media="audio_1s_05.mp4" duration="1000"/>
          <SegmentURL media="audio_1s_06.mp4" duration="1000"/>
          <SegmentURL media="audio_1s_07.mp4" duration="1000"/>
          <SegmentURL media="audio_1s_08.mp4" duration="1000"/>
          <SegmentURL media="audio_1s_09.mp4" duration="1000"/>
          <SegmentURL media="audio_1s_10.mp4" duration="1000"/>
        </SegmentList>

      </Representation>
    </AdaptationSet>
  </Period>
</MPD>

Quick Walkthrough

  1. MPD Root: type="static" tells players this is an on-demand manifest with a fixed segment sequence. minBufferTime="PT2S" ensures players pre-load 2 seconds of content to avoid playback stalls.
  2. AdaptationSet: Marks this as an audio track, specifying codec (AAC in this case), sampling rate, and language.
  3. Representation: Defines the audio quality (128kbps here). The <SegmentList> is where we explicitly list every segment in order—each <SegmentURL> points to your actual audio file, and duration sets its length in milliseconds (matching our timescale="1000").
  4. Segment URLs: Replace the example filenames with your real segment paths (they can be relative or absolute URLs).

Just double-check that all segments are properly formatted and parameters match the Manifest, and you're good to go!

内容的提问来源于stack exchange,提问作者user1744147

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:20:49