使用ffmpeg将.ass字幕转换为.srt时提示输出文件为空如何解决?
ASS转SRT提示输出为空的解决方法
错误根因
该报错本质是ffmpeg读取ASS文件后未识别到有效可导出的字幕流,和文件编码无关,通常由流映射规则匹配失败、ASS高级特性超出默认导出支持范围、ffmpeg版本过低三类问题导致。
解决步骤(按优先级从高到低测试)
- 强制指定字幕流映射,避免ffmpeg漏选流,90%的同类问题可通过该方法解决:
执行命令:ffmpeg -i subtitles.ass -map 0:s:0 -c:s srt subtitles.srt - 若上述命令无效,使用字幕过滤器主动解析ASS内容,绕过默认流导出逻辑:
执行命令:ffmpeg -i subtitles.ass -filter:s "subtitles=filename=subtitles.ass" -c:s srt subtitles.srt - 若ffmpeg方案均失效,使用专门的字幕转换工具pysubs2处理,对各类ASS规范兼容性远高于ffmpeg通用转码逻辑:
- 先安装工具:
pip install pysubs2 - 执行转换命令:
pysubs2 convert subtitles.ass subtitles.srt
- 先安装工具:
转换完成后直接用文本编辑器打开srt文件,确认存在时间轴和字幕内容即可。
内容的提问来源于stack exchange,提问作者Phoeniqz
相关产品推荐
相关产品推荐

