ffmpeg创建带文本视频的空白屏幕

前端之家收集整理的这篇文章主要介绍了ffmpeg创建带文本视频的空白屏幕前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想创建一个包含一些文本的视频.视频只有0.5秒长.背景应该只是一些颜色,我可以从照片创建这样的视频,但无法找到任何地方如何可以做到没有照片,只是使用文本来创建这样的视频.

你可以帮我吗 ?提前致谢

解决方法

将文本添加到纯色背景

使用color video source filterdrawtext video filter.

ffmpeg -f lavfi -i color=c=blue:s=320x240:d=0.5 -vf \
"drawtext=fontfile=/path/to/font.ttf:fontsize=30: \
 fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2:text='Stack Overflow'" \
output.mp4

> d = 0.5将产生0.5秒的持续时间.
>见list of supported color names and how to use a hex code to set color.

文字背后有一个透明框

另一个例子是在25%不透明度的文本背后有5个像素填充的白框:

ffmpeg -f lavfi -i color=c=red:s=320x240:d=0.5 -vf \
"drawtext=fontfile=/path/to/font.ttf:fontsize=30: \
 Box=1:Boxborderw=5:Boxcolor=white@0.25: \
 fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2:text='Stack Overflow'" \
output.mp4

多行


将两行与多个绘图文本实例对齐(左图)更为容易.右图是从外部文件和换行符的例子.

您可以链接两个绘图文本过滤器,或使用textfile选项引用外部文本文件,或在命令中添加换行符.

多个绘图文本实例

ffmpeg -f lavfi -i color=c=green:s=320x240:d=0.5 -vf \
"drawtext=fontfile=/path/to/font.ttf:fontsize=30:fontcolor=white:x=(w-text_w)/2:y=(h-text_h-text_h)/2:text='Stack',\
 drawtext=fontfile=/path/to/font.ttf:fontsize=30:fontcolor=white:x=(w-text_w)/2:y=(h+text_h)/2:text='Overflow'" \
output.mp4

外部文本文件

文本文件text.txt的内容如下所示:

Stack
Overflow

ffmpeg命令:

ffmpeg -f lavfi -i color=c=green:s=320x240:d=0.5 -vf \
"drawtext=fontfile=/path/to/font.ttf:fontsize=30: \
 fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2:textfile=text.txt" \
output.mp4

换行符命令

ffmpeg -f lavfi -i color=c=green:s=320x240:d=0.5 -vf \
"drawtext=fontfile=/path/to/font.ttf:fontsize=30: \
fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2:text='Stack
Overflow'" \
output.mp4

输出图像而不是视频

如果你想要一个图像输出,而不是用-frames:v 1 output.png替换output.mp4.

替代方法

使用subtitles filter是另一种方法.

猜你在找的HTML相关文章