我需要使用ffmpeg在视频中添加图像覆盖。ffmpeg -i test.mp4 -i logo.png -filter_complex "[0:v][1:v] overlay=10:10:enable='between(t,1,10)'" output.mp4
我尝试了上面的代码,但覆盖图像的大小非常高,它显示在框架的顶部位置。图片1图片1显示了运行上述代码后得到的结果。我需要像image2.image2 这样的输出
ffmpeg test.mp4 -i logo.png -filter_complex "
[1][0]scale2ref=w=oh*mdar:h=ih/10[logo][input0];
[input0][logo]overlay=x=main_w*0.05:(main_h-overlay_h)-(main_h *
0.1):enable='between(t,1,10)'" output.mp4
线路描述:
- 使徽标高度为视频高度的10%
x=main_w*0.05
->将徽标放置在距离屏幕左边缘5%的位置;(main_h-overlay_h)-(main_h * 0.1)
->将徽标放置在离屏幕底边10%的位置
如果您喜欢徽标的淡入而不是突然出现,请使用此:
ffmpeg -i test.mp4 -loop 1 -i logo.png -filter_complex "
[1][0]scale2ref=w=oh*mdar:h=ih/10[logo][input0];
[logo]format=rgba,
fade=in:
st=1:
d=0.5:
alpha=1
,fade=out:st=6:d=0.5:alpha=1
[logo2];
[input0][logo2]overlay=x=main_w*0.05:(main_h-overlay_h)-(main_h * 0.1):" output.mp4
(如果不想淡出,可以删除8
行。(
之所以会发生这种情况,是因为图像的尺寸(宽度、高度(很大。您需要缩放图像。简单。
ffmpeg -i test.mp4 -i logo.png -filter_complex "[1]scale=300:100;[0:v][1] overlay=10:10:enable='between(t,1,10)'" output.mp4