FFMPEG:MP4封装格式中外挂字幕的提取

快速导航

    • 起因
    • 字幕编码
    • 探索
    • TIMED_TXT字幕的提取
    • 结论
    • 后话


起因

一直以为MP4无法封装外挂字幕,直到今天看到MEGUI混流器中输出MP4时也可添加外挂字幕

FFMPEG:MP4封装格式中外挂字幕的提取_第1张图片
于是试着封装了一个MP4,效果和MKV相同。


字幕编码

MKV中.SRT字幕的编码格式
那么,.SRT封装入MP4后是什么编码呢?
.SRT封装入MP4后的字幕编码格式

显然,用MP4封装外挂字幕的过程中,UTF-8编码的.SRT文件被重新编码成TIMED_TEXT编码的文件了。


探索

笔者将装有TIMED_TEXT字幕的MP4拖入MKVTOOLNIX,发现其字幕流并未被识别。猜测可能原因:1:MKVTOOLNIX对MP4文件只侦测其音频流和视频流;2:笔者使用的MKVTOOLNIX版本过于老旧。
FFMPEG:MP4封装格式中外挂字幕的提取_第2张图片
笔者又使用MEGUI自带的流提取器进行试验,发现其不支持对MP4文件的流提取
FFMPEG:MP4封装格式中外挂字幕的提取_第3张图片
笔者未实验小丸工具箱等其他软件。


TIMED_TXT字幕的提取

ffmpeg -i input.mp4 -map 0:s sub.ass


结论

1、MP4中外挂字幕的编码:TIMED_TEXT(又称:.TTXT,MOV_TEXT)

2、用以上命令导出的字幕文件为SSA编码


后话

FFMPEG:MP4封装格式中外挂字幕的提取_第4张图片

你可能感兴趣的:(FFMPEG:MP4封装格式中外挂字幕的提取)