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

如何在Google Transcoder的DASH manifest中使用多字幕

DASH多字幕配置报错解决:容器格式不支持

这个错误的核心原因很明确:DASH对字幕的容器格式要求比HLS严格——HLS可以直接引用.vtt、.srt这类纯文本字幕,但DASH要求字幕必须封装进MP4或者fMP4(碎片化MP4)容器里,你直接照搬HLS的字幕引用方式自然会触发报错。

下面是具体的解决步骤:

  • 把字幕转成fMP4封装格式
    用FFmpeg就能搞定,以WebVTT字幕为例:

    ffmpeg -i subtitles.vtt -c:s mp4s -f mp4 subtitles_fmp4.mp4
    

    如果是SRT格式的字幕,得先转成WebVTT再封装:

    ffmpeg -i subtitles.srt -c:s webvtt -f webvtt subtitles.vtt && ffmpeg -i subtitles.vtt -c:s mp4s -f mp4 subtitles_fmp4.mp4
    
  • 修改DASH的MPD配置文件
    在MPD里添加字幕对应的AdaptationSet,要指定正确的mimeType和编码,多字幕就加多个Representation:

    <AdaptationSet mimeType="application/mp4" codecs="wvtt">
      <Representation id="subtitle-en" bandwidth="1000">
        <BaseURL>subtitles_fmp4.mp4</BaseURL>
      </Representation>
      <Representation id="subtitle-zh" bandwidth="1000">
        <BaseURL>subtitles_zh_fmp4.mp4</BaseURL>
      </Representation>
    </AdaptationSet>
    

    要是用的是TTML字幕,把codecs改成ttml就行。

  • 验证配置
    用dash.js的测试播放器加载你的MPD文件,确认字幕能正常切换且没有报错。

额外提醒:别再直接引用纯文本字幕文件了,必须走MP4/fMP4封装这条路,带宽值不用设太高,1000左右完全够。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 20:39:54