ffmpeg实现视频马赛克特效

ffmpeg实现视频马赛克特效

boxblur实现

对区域图层做模糊效果后再叠加到原来的图层上

ffmpeg -t 10 -i input.mp4 -filter_complex “[0:v]crop=w=100:h=100:x=300:y=300,boxblur=luma_radius=25:luma_power=2[boxblur];[0:v][boxblur]overlay=300:300[vout]” -map “[vout]” -map 0:a -c:v libx264 -crf 28 -preset veryfast -c:a copy -movflags +faststart output.mp4 -y

ffmpeg -t 10 -i input.mp4  -filter_complex  "[0:v]crop=w=100:h=100:x=300:y=300,boxblur=luma_radius=25:luma_power=2[boxblur];[0:v][boxblur]overlay=300:300[vout]" -map "[vout]" -map 0:a -c:v libx264 -crf 28 -preset veryfast -c:a copy -movflags +faststart output.mp4 -y 

boxblur的值范围为[0,25]模糊像素
chroma_param radius value must be >= 0 and <= 25
boxblur的用法参考:
http://ffmpeg.org/ffmpeg-filters.html#boxblur

ffmpeg -t 10 -i input.mp4 -filter_complex “[0:v]split[blurin][originalin];[blurin]crop=w=100:h=100:x=300:y=300,boxblur=luma_radius=5:luma_power=5[blurout];[originalin][blurout]overlay=x=300:y=300[vout]” -map “[vout]” -map 0:a -c:v libx264 -crf 28 -preset veryfast -c:a copy -movflags +faststart output.mp4 -y

ffmpeg -t 10 -i input.mp4 -filter_complex "[0:v]split[blurin][originalin];[blurin]crop=w=100:h=100:x=300:y=300,boxblur=luma_radius=5:luma_power=5[blurout];[originalin][blurout]overlay=x=300:y=300[vout]" -map "[vout]" -map 0:a -c:v libx264 -crf 28 -preset veryfast -c:a copy -movflags +faststart output.mp4 -y 

这种方式与上面一样,只是通过split把源分为2个,打上标签后一个做模糊再overlay。

delogo实现

ffmpeg -t 10 -i input.mp4 -filter_complex “delogo=x=300:y=300:w=100:h=100” -c:v libx264 -crf 28 -preset veryfast -c:a copy -movflags +faststart output.mp4 -y

ffmpeg -t 10 -i input.mp4 -filter_complex "delogo=x=300:y=300:w=100:h=100" -c:v libx264 -crf 28 -preset veryfast -c:a copy -movflags +faststart output.mp4 -y  

通过周围的像素做插值计算实现。

overlay叠加半透明图片

在视频的上面叠加一个半透明的图片实现
ffmpeg -i input.mp4 -i other.png -filter_complex “overlay=x=(main_w-overlay_w)/2:y=(main_h-overlay_h)/2” -c:v libx264 -crf 28 -preset veryfast -c:a copy -movflags +faststart output.mp4 -y

ffmpeg -i input.mp4 -i other.png -filter_complex "overlay=x=(main_w-overlay_w)/2:y=(main_h-overlay_h)/2" -c:v libx264 -crf 28 -preset veryfast -c:a copy -movflags +faststart output.mp4 -y

总结

个人感觉 deloge实现的效果比较好,推荐

发布了141 篇原创文章 · 获赞 107 · 访问量 30万+

猜你喜欢

转载自blog.csdn.net/ternence_hsu/article/details/103877455