無論圖像大小如何,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

相關內容