无论图像大小如何,Ffmpeg 都会在缩放视频的顶部绘制文本

无论图像大小如何,Ffmpeg 都会在缩放视频的顶部绘制文本

我正在使用 ffmpeg 从单个图像制作视频并在视频顶部绘制文本。

我怎样才能drawtext将其覆盖在缩放的视频尺寸上而不是图像比例上?

现在,当我添加文本时,X 和 Y 从图像的左上角开始,而不是缩放后的视频本身。图像的尺寸小于视频比例,因此无论图像大小如何,我都需要绘制文本。如果文本超出图像比例,则会被截断,尽管剩余缩放后的视频的未填充黑色边框仍然存在。

这是我正在使用的命令。

ffmpeg -loop 1 -r 1 -i image.jpg -b:v 1M -vf "scale=320:240, drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf: text='Test Text': x=200: y=100: fontsize=30: [email protected]: box=1: [email protected]" -t 20 output.mp4

答案1

如果图像是唯一的视频源,那么视频只是图像和“从视频左上角叠加“ 含义与“ 相同从图像左上角叠加“。所以你做得对。

您提到的黑色边框是不是视频的一部分。它插入一些媒体播放器在打开非常窄的视频时会显示黑色边框,因为媒体播放器的控制面板比视频宽。例如,VLC 媒体播放器的控件/菜单栏相当宽,并且会用大边框填充视频。但 Windows Media Player 不会显示任何黑色边框,因为其控件适合 320p 视频宽度。

答案2

使用以下命令可以使其工作:

ffmpeg -loop 1 -i image.jpg -r 29.970 -c:v libx264 -t 15 -pix_fmt yuv420p -profile:v high -level 4.2 -vf "scale=1920:1080, drawtext = text='Resumes in %{eif\:15-t\:d}': x=200: y=100: fontsize=30: [email protected]: box=1: [email protected]" out.mp4

相关内容