博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ffmpeg实现视频马赛克特效
阅读量:4200 次
发布时间:2019-05-26

本文共 2106 字,大约阅读时间需要 7 分钟。

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的用法参考:

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

转载地址:http://tmfli.baihongyu.com/

你可能感兴趣的文章
Redis源码剖析--整数集合Intset
查看>>
Redis源码剖析--对象object
查看>>
Redis源码剖析--字符串t_string
查看>>
Redis源码剖析--快速列表quicklist
查看>>
Redis源码剖析--列表list
查看>>
Android开发学习 之 五、基本界面控件-4时间控件
查看>>
详细解读Jquery的$.get(),$.post(),$.ajax(),$.getJSON()用法
查看>>
同步与异步的区别
查看>>
IT行业--简历模板及就业秘籍
查看>>
JNI简介及实例
查看>>
DOM4J使用教程
查看>>
JAVA实现文件树
查看>>
Drools 规则引擎
查看>>
OLTP和OLAP区别
查看>>
JMeter最常用的三种类型的压力测试
查看>>
Hibernate HQL 语法大全(上)
查看>>
深入Java事务的原理与应用
查看>>
CSS单位和CSS默认值大全
查看>>
交大我来了--周末再见了
查看>>
网页中flash wmode属性
查看>>