如何使用ffmpeg将.srt字幕文件转换为ttml格式XML字幕
SRT字幕转TTML格式解决方案
错误原因
你所用的ffmpeg 4.2版本默认未正确识别ttml输出格式,你第一次用xml作为输出后缀时,ffmpeg错误匹配了webm_dash_manifest封装格式,该格式不支持字幕流,因此抛出无对应流的错误。
方案1:ffmpeg转换(需4.4及以上版本)
升级ffmpeg到4.4或更高版本后,指定字幕编码器为ttml即可完成转换:
ffmpeg -i my_srt.srt -c:s ttml -y srt_to_ttml.ttml
方案2:ttconv工具转换(全版本兼容)
不想升级ffmpeg的话,可以用专门的字幕转换工具ttconv,操作更简单,对字幕样式的兼容性也更好:
- 安装工具(需提前安装Python3和pip):
pip3 install ttconv
- 执行转换命令:
srt2ttml my_srt.srt srt_to_ttml.ttml
注意事项
- 转换前请确认srt文件为UTF-8编码,否则可能出现乱码,可以用
file my_srt.srt命令查看编码格式。 - 如果srt包含自定义样式、特殊符号,优先用ttconv方案,转换后信息保留更完整。
内容的提问来源于stack exchange,提问作者geo-freak
相关产品推荐
相关产品推荐

