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

ISOBMFF(MP4)中存储字幕的Atom(Box)是哪个?FFmpeg硬嵌疑问

ISOBMFF(MP4)中字幕的存储Atom及硬嵌入字幕的结构问题

一、MP4中软字幕的存储Atom

在ISOBMFF(MP4)规范里,软字幕(可独立开关、不合并到视频帧的字幕)是作为独立媒体轨道存在的,相关信息主要存在这些Atom里:

  • stbl(样本表Box)的子Box:字幕轨道会有对应的stsd(样本描述Box),根据字幕格式不同,会有特定的描述条目:
    • 3GPP定时文本(比如SRT转成的内嵌软字幕):用tx3g类型的样本条目
    • WebVTT字幕:对应wvtt类型条目
    • TTML字幕:对应ttml类型条目
      同时,该轨道的mdia(媒体Box)下的hdlr(处理者引用Box)会标记处理类型为text,明确这是字幕轨道。
  • 少数场景下,字幕元数据可能存在meta(元数据Box)里,但这不是主流方式。

二、你的硬嵌入字幕为什么看不到结构差异

你用的FFmpeg命令是硬嵌字幕:ffmpeg -i input.mp4 -vf "subtitles=subtitle.srt" -c:v libx264 -c:a aac -strict experimental -b:a 192k output.mp4,这种方式是直接把字幕的像素画进了每帧视频里——相当于修改了原视频流的内容,并没有新增独立的字幕轨道,自然不会产生新的字幕相关Atom。所以对比原文件和新文件的mp4dump结果,结构上不会有差异,因为字幕已经变成视频帧的一部分,和原视频轨道共用一套stbl等视频相关Atom。

如果要生成带独立软字幕的MP4,你可以用这类命令:

ffmpeg -i input.mp4 -i subtitle.srt -c:v copy -c:a copy -c:s mov_text output_softsub.mp4

这样生成的文件会多一条字幕轨道,此时用mp4dump就能看到对应的字幕Atom了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 04:37:45