如何使用 .vtt 和 ffmpeg 硬编码刻录来给一些文本上色

如何使用 .vtt 和 ffmpeg 硬编码刻录来给一些文本上色

我有一个 .vtt 字幕,想要刻录到视频中,但我想用另一种颜色显示其中的一部分。

例如 :

This is IMPORTANT !

我希望“重要”一词以红色显示。

我的ffmpeg代码:

fmpeg -i input.mp4 -vf "subtitles=sub.vtt" output.mp4

使用 .vtt 语法,我唯一能做的改变是斜体<i>.
<c><c.red><ruby>等... 没有做任何事情......

This is <i>IMPORTANT</i> ! 

在 ffmpeg 中-vf,我可以用来force_style更改字幕颜色,但我只能更改整行,而不能更改其中的一部分。

谢谢。

答案1

FFmpeg 负责libass栅格化文本字幕的工作,顾名思义,该库仅适用于 ASS 字幕。当提供其他格式的字幕时,ffmpeg 会将其转换为 ASS。FFmpeg 仅支持解析 VTT 中有限数量的标记 - <i> <b>, <u>

因此,将 subs 转换为 ASS 格式并使用 Aegisub 等编辑器添加标记。

相关内容