首页 > 解决方案 > ffmpeg 如何使移动文本平滑?

问题描述

我有以下命令用于从文本文件创建滚动文本:

ffmpeg -i vid.mp4 -vf "[in]drawtext=fontfile=C\\:/Windows/Fonts/arial.ttf:fontsize=25:fontcolor=black:x=30:y=h-n*5:textfile='credits.txt'[out]" -c:v libx264 -max_muxing_queue_size 1024 scrolling.mp4

这将缓慢地向credits.txt上移动找到的文本,但每秒都会离散地移动,而不是随着时间的推移平滑。控制它的部分是y=h-n*5,我认为帧号在哪里n,我认为每帧都会更新它,但看起来它的行为与我将其替换为t.

如果有人知道使用 ffmepg 或任何其他方法(如 image magick)平滑移动文本的任何方式,那将不胜感激。

标签: ffmpeg

解决方案


我发现这是因为在创建视频vid.mp4时,我将帧速率设置为 1。这样只有 1 fps,因此“每秒离散运动”。

创建包含-r 1在选项中的初始文件后,将其设置为-r 30创建所需的平滑移动效果。


推荐阅读