ffmpeg - FFmpeg 中的多色文本
问题描述
如何在ffmpeg中使用drawtext在视频上绘制多色文本?示例:我想在句子中突出显示专有名词,“XYZ 公司股票上涨 91%”突出显示 XYZ 白色黄色突出显示 91% 和绿色
如果您有任何其他方法不使用 ffmpeg 在视频上绘制多色文本,那也可以。
解决方案
在Aegisub(或手动)中制作 ASS 字幕并使用以下字幕过滤器ffmpeg
:
ffmpeg -i input -vf subtitles=colors.ass -c:a copy output
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]
[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,20,&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,,{\c&H00FFFF&}XYZ {\c&HFFFFFF&}company shares hike {\c&H00FF00&}91%
替代但不推荐的方法是为每种颜色使用单独的 drawtext 实例。
推荐阅读
- ios - Swift - 覆盖 UIView 的两个子类中的方法
- ajax - “ajax”和“http”请求有什么区别?
- javascript - 如果 i = 0,为什么 i++ = 0?
- mysql - 循环处理查询中的每一行
- swift - Xcode全屏pdf生成器
- ios - 为什么 UITextView 中的字符串在删除时确定键盘大小写而不是大写类型
- qt - 你如何让 QtCreator 在左侧 src 树中同时显示 cpp 和头文件?
- heroku - 无法通过电话验证帐户
- postgresql - 运行缓慢的 Postgres 查询
- javascript - 在 foreach 循环中进行 api 调用并将结果推送到另一个数组中