FFmpeg 多个 drawtext 过滤器彼此相邻

问题描述

我想用 ffmpeg 在视频上绘制文字

  • 有多行
  • 这些行中的某些字词采用粗体文本样式,而另一些则不是
  • 需要使用时间轴选项对线条进行动画处理

在这里有哪些选择?我知道当要在一行中加粗一些单词时,我最好使用字幕过滤器。但据我所知,我不能动画字幕,对吧?

这就是为什么我想知道是否可以并排使用多个 drawtext 过滤器。但是如何将一个 drawtext 的宽度信息传递给下一个以便它匹配正确的坐标?

解决方法

对 ASS 字幕使用 subtitles 过滤器。可以使用 \move override tag:

移动字幕

enter image description here

示例 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,100,1,2,10,1

[Events]
Format: Layer,Start,End,Style,Name,Effect,Text
Dialogue: 0,0:00:00.00,0:00:05.00,Default,{\move(0,-10,320,350,2000)}Moving {\b1}text{\b0}{\move}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...