我正在尝试增加整个视频的模糊效果。我的代码是这样的,但 FFmpeg 似乎无法识别t
:
ffmpeg -i input.mp4 -filter_complex "[0]smartblur=t*2" output.mp4
我记得使用t
过overlay
但我不知道为什么它在这里不起作用。
我也尝试过boxblur
,gblur
但是没有用。
我正在尝试增加整个视频的模糊效果。我的代码是这样的,但 FFmpeg 似乎无法识别t
:
ffmpeg -i input.mp4 -filter_complex "[0]smartblur=t*2" output.mp4
我记得使用t
过overlay
但我不知道为什么它在这里不起作用。
我也尝试过boxblur
,gblur
但是没有用。
根据文档,似乎没有任何模糊过滤器支持基于时间的表达。
通过将模糊视频与原始视频混合,我们可以获得在视频播放时模糊程度增加的效果。
原始视频的权重在开始时为 1,在结束时为 0,而模糊视频的权重在开始时为 0,在结束时为 1。
示例(假设视频时长为10秒):
ffmpeg -y -i input.mp4 -filter_complex "[0:v]smartblur=luma_radius=5[blr];[0:v][blr]blend=all_expr=(1-T/10)*A+(T/10)*B" output.mp4
[0:v]smartblur=luma_radius=5[blr]
- 模糊输入并将结果存储在中[blr]
。(1-T/10)
- 当 T=0 时等于 1,当 T=10 时等于 0(T/10)
- 当 T=0 时等于 0,当 T=10 时等于 1[0:v][blr]blend=all_expr=(1-T/10)*A+(T/10)*B
对原始视频和模糊视频进行加权和(混合),模糊权重随时间增加。示例(使用合成视频):
ffmpeg -y -f lavfi -i testsrc=size=192x108:rate=1:duration=10 -filter_complex "[0:v]smartblur=luma_radius=5[blr];[0:v][blr]blend=all_expr=(1-T/10)*A+(T/10)*B" output.mp4