我想用 ffmpeg 在视频上绘制文本
- 有多条线路
- 这些行中的一些单词是粗体文本样式,而另一些则不是
- 线条需要使用时间线选项进行动画处理
我在这里有什么选择?我知道当要使一行中的某些单词变粗时,我最好使用字幕过滤器。但据我所知,我不能为字幕制作动画,对吧?
这就是为什么我想知道我是否可以使用多个相互相邻的drawtext过滤器。但是如何将一个drawtext的宽度信息传递给下一个drawtext以使其匹配正确的坐标?
我想用 ffmpeg 在视频上绘制文本
我在这里有什么选择?我知道当要使一行中的某些单词变粗时,我最好使用字幕过滤器。但据我所知,我不能为字幕制作动画,对吧?
这就是为什么我想知道我是否可以使用多个相互相邻的drawtext过滤器。但是如何将一个drawtext的宽度信息传递给下一个drawtext以使其匹配正确的坐标?
使用带有 ASS 字幕的字幕过滤器。可以使用\move
覆盖标签移动字幕:
示例 ASS 文件:
[Script Info]
; Script generated by Aegisub 3.2.2
; http://www.aegisub.org/
Title: Default Aegisub file
ScriptType: v4.00+
WrapStyle: 0
ScaledBorderAndShadow: yes
YCbCr Matrix: None
[Aegisub Project Garbage]
Last Style Storage: Default
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,48,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,,{\move(0,-10,320,350,0,2000)}Moving {\b1}text{\b0}{\move}