我想用 FFMPEG 将文本添加到视频文件中。虽然我能够用纯文本来做到这一点
$FFMPEG -y -i $SOURCE \ -vf drawtext="fontfile=/usr/share/fonts/Lato-Reg-webfont.ttf:fontsize=40:box=1:boxcolor=black:fontcolor=white:text=' $WATERMARK':x=(main_w-text_w)-10:y=(main_h-text_h)-4" \ -threads $THREADS -f mp4 -vcodec mpeg4 -b $MOBILE_BITRATE -r $MOBILE_FRAME_RATE -strict -2 \ -s $RESOLUTION_SD -acodec libfaac -ar $MOBILE_AUDIO_RATE -ac $MOBILE_AUDIO_CHANNELS -ab $MOBILE_AUDIO_BITRATE \ $VIDEONAME_MOBILE-android.mp4
这看起来不够好。所以我尝试添加一个透明的 PNG 文件作为水印。寻找我尝试过的例子:
$FFMPEG -y -i $SOURCE \ -vf "movie=$WATERMARK_SMALL_PATH [watermark]; [in][watermark] overlay=10:main_h/2-overlay_h/2 [out]" \ -threads $THREADS -f mp4 - vcodec mpeg4 -b $MOBILE_BITRATE -r $MOBILE_FRAME_RATE -strict -2 \ -s $RESOLUTION_SD -acodec libfaac -ar $MOBILE_AUDIO_RATE -ac $MOBILE_AUDIO_CHANNELS -ab $MOBILE_AUDIO_BITRATE \ $VIDEONAME_4mp
它不会工作。如果这对任何人有用,我可以分享确切的错误输出。
使用覆盖过滤器,您不需要movie=格式。这更容易,所以改用这种格式:
ffmpeg -y -i inputmovie -i inputpicture.png -filter_complex 'overlay=0:0' -s 1280x720 ...other parameters... outputfile.mp4
我输入的尺寸仅作为示例 - 您的尺寸会有所不同。请注意,图片和电影帧的大小是相同的,这里实际上没有进行缩放。的0:0是图片离开电影的顶部对齐帧-因为它们都是相同的大小,这是合乎逻辑的。