如何将输入颜色的大小设置为与视频大小相同?

How to set the same size for the input color as the video size?

我有许多宽度和高度不同的视频,我需要在其上叠加随机颜色。而且我不知道如何将颜色输入的大小设置为与我所有视频的大小相同...

准确的颜色尺寸只适用于相同尺寸的视频。但是当队列到达另一个具有不同宽度和高度的视频时,会弹出错误。

for %%i in (*.mp4) do ffmpeg /
-i "%%i" -f lavfi -i "color=random@1:s=624x1110" /
-hide_banner -y -c:v libx264 -preset slow /
-filter_complex /
"[0:v]setsar=sar=1/1[ckout]; /
 [ckout][1:v]blend=shortest=1:all_mode=overlay:all_opacity=0.05[out]" -map "[out]" "output/%%~ni.mp4"

使用 scale2ref 过滤器,

ffmpeg /
-i "%%i" -f lavfi -i "color=random@1:s=32x32" /
-hide_banner -y -c:v libx264 -preset slow /
-filter_complex /
"[0:v]setsar=sar=1/1[ckout];[1][ckout]scale2ref[clr][ckout]; /
 [ckout][clr]blend=shortest=1:all_mode=overlay:all_opacity=0.05[out]" -map "[out]" "output/%%~ni.mp4"

或者,只需使用 drawbox 过滤器。

ffmpeg -i "%%i" -hide_banner -y -c:v libx264 -preset slow /
-vf "setsar=1,drawbox=t=fill:c=random@0.05" "output/%%~ni.mp4"