Colors ffmpeg如何在视频上放置颜色覆盖

Colors ffmpeg如何在视频上放置颜色覆盖,colors,ffmpeg,overlay,opacity,Colors,Ffmpeg,Overlay,Opacity,我想在视频上加一个颜色覆盖层(蓝色、红色、绿色或十六进制值),使其具有Instagram过滤效果 我认为应该是这样的: ffmpeg -i video.mp4 -i "red.png" -filter_complex "blend=all_mode='screen':all_opacity=0.7" output.mp4 或者使用all_mode=overlay 但我有一个错误: First input link top parameters (SAR 0:1) do not match th

我想在视频上加一个颜色覆盖层(蓝色、红色、绿色或十六进制值),使其具有Instagram过滤效果

我认为应该是这样的:

ffmpeg -i video.mp4 -i "red.png" -filter_complex "blend=all_mode='screen':all_opacity=0.7" output.mp4
或者使用
all_mode=overlay

但我有一个错误:

First input link top parameters (SAR 0:1) do not match the corresponding second input link bottom parameters (SAR 1:1).
我也试过使用
lutrgb=r=1.5
,但没有给它一个红色(它会去掉红色)


我做错了什么?

这两个输入必须共享相同的维度和SAR。您可以使用
setsar
过滤器设置相同的SAR,也可以通过使用
color
完全避免使用图像文件:

ffmpeg -i video.mp4 -f lavfi -i "color=red:s=1280x720" -filter_complex "blend=shortest=1:all_mode=overlay:all_opacity=0.7" output.mp4
其中,
s=1280x720
是输入视频帧的大小

具有
[0x |#]RRGGBB[AA]
格式


更新:

如果输入视频SAR仍有问题,请尝试使用
setsar
过滤器显式设置:

ffmpeg -i video.mp4 -f lavfi -i "color=red:s=1280x720" \
-filter_complex "[0:v]setsar=sar=1/1[s];\
[s][1:v]blend=shortest=1:all_mode=overlay:all_opacity=0.7[out]" \
-map [out] -map 0:a output.mp4

谢谢aergistal,我接受了您的代码,但仍然有相同的错误(SAR 0:1和1:1)。我还得到了“未能在解析的_blend_0上配置输出焊盘”,但之前也有这种情况。如果我选择蓝色或绿色,这并不重要。它总是“粉红的”。它只会变得更暗的白色,但颜色不会穿透。你知道解决方案吗?看看参数。它有多种模式。谢谢,我发现它的模式是所有:覆盖(不是屏幕)我读到的lavfi相当于-过滤器复杂。你为什么把它们分开?我想结合我的其他代码,但这很难:-I audio.mp3-最短(=>另一个音频)-最短-t8(=>只能是8秒长)裁剪=500:500(=>裁剪它)这不适用裁剪:ffmpeg-I video.mp4-f lavfi-I“color=Red:s=1280x720”-I audio.mp3-最短-t8-过滤器复合体”[0:v]setsar=sar=1/1[s];[s][1:v]blend=shortest=1:all_mode=overlay:all_opacity=0.7[out];crop=500:500[out]“-map[out]-map 2:a output.mp4请发布命令的完整控制台输出。谢谢,这里是要点,请在我更新的回答中尝试该命令,效果非常好。非常感谢你。颜色更粉红,但我认为这是正常的,当你放置不透明。也许我必须使用“0xFF000050”作为例子,就像你建议的那样(使用alpha)。即使使用不透明度1,我仍然可以透过颜色覆盖看到。是的,你可以进行实验。如果需要,可以使用
png
执行相同的操作。如果答案能解决你的问题,请接受。