添加带格式和位置的软字幕

添加带格式和位置的软字幕

到目前为止,我一直使用 ffmpeg 处理视频的所有事情,将动画帧串联在一起,添加音频,叠加图像和添加字幕。因此,我希望我的问题的答案仍然在 ffmpeg 中,但如果有必要,我愿意使用其他程序。

我已经创建了 ASS 字幕文件(复数表示多种语言),并利用了字体、颜色和定位信息。但是当我将其中一个添加到视频中时,它丢失了所有格式信息。我发现使用 ffmpeg 保留该信息的唯一方法是硬字幕,将文本永久渲染到视频中,但我希望观看者能够在语言之间切换。

这是我目前正在做的事情:

ffmpeg \
-i video_in.mp4 -i sub_eng.ass -i sub_spa.ass \
-c copy -c:s mov_text \
-map 0:v -map 0:a -map 1 -map 2 \
-metadata:s:s:0 language=eng \
-metadata:s:s:1 language=spa \
video_out.mp4

有没有办法用位置信息对视频进行软字幕?字幕中的每一行都有自己的位置(模仿对话泡泡来表示谁在说话)。

编辑:Gyan 的 MKV 部分解决方案

ffmpeg \
-i video_in.mkv -i sub_eng.ass -i sub_spa.ass \
-c copy \
-map 0:v -map 0:a -map 1 -map 2 \
-metadata:s:s:0 language=eng \
-metadata:s:s:1 language=spa \
video_out.mkv

答案1

我使用这个命令:

map 0 -map 1 -metadata:s:s:0 language=eng -metadata:s:s:0 title=Subtitle 1 -c:a copy -c:v copy -c:s copy -c:s mov_text

相关内容