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实现的效果比较好,推荐