FFMPEG视频水印处理完全指南:添加、旋转、控制与去除
创作时间:
作者:
@小白创作中心
FFMPEG视频水印处理完全指南:添加、旋转、控制与去除
引用
CSDN
1.
https://blog.csdn.net/ms44/article/details/145515790
FFMPEG是一个非常强大的多媒体处理工具,可以方便地为视频添加水印。在使用ffmpeg命令时,请确保环境变量已经配置好,可以直接调用ffmpeg.exe。推荐的做法是将FFMPEG的可执行文件放到一个目录下,并将该目录添加到系统环境变量中,这样可以随时随地调用。
1. 最简单的水印添加方法
使用以下命令可以将水印图片添加到视频的左上角:
ffmpeg -hide_banner -i src.mp4 -i watermark.png -filter_complex "overlay=x=0:y=0" target.mp4 -y
src.mp4
:原视频文件watermark.png
:水印图片target.mp4
:添加水印后的输出视频x=0:y=0
:水印在视频中的位置,左上角
效果如下:
如果需要将水印放在视频的右下角,可以使用以下命令:
ffmpeg -i src.mp4 -i watermark.png -filter_complex "overlay=W-w-10:H-h-10:alpha=0.5" target.mp4
其中:
W
和H
表示视频画面的宽度和高度w
和h
分别表示水印图片的宽度和高度alpha=0.5
表示设置水印透明度为 0.5
2. 旋转水印
要实现水印的旋转效果,可以使用以下命令:
ffmpeg -i src.mp4 -loop 1 -i watermark.png -lavfi "[1:v]format=rgba,rotate='PI/2*t:c=0x00000000:ow=hypot(iw,ih):oh=ow'[out];[0:v][out]overlay=10:10" -shortest target.mp4 -y
关键参数解释:
hypot
:根据勾股定律计算图片对角长度,确保旋转后不会丢失图片部分format=rgba
:将图片显示的像素格式转换为rgba格式c=0x00000000
:将图片旋转后的背景变为白色且完全透明-loop 1
:循环播放水印overlay=10:10
:水印位置
效果如下:
3. 更多水印控制和表现
水印本身变化
方法一:使用循环播放的GIF图片
ffmpeg -hide_banner -i src.mp4 -ignore_loop 0 -i watermark.gif -filter_complex overlay -shortest target.mp4 -y
方法二:使用movie滤镜
ffmpeg -hide_banner -i src.mp4 -vf "movie=watermark.gif:loop=0,setpts=N/FRAME_RATE/TB[out];[0:v][out]overlay=x=main_w-overlay_w:y=0" -shortest target.mp4 -y
关键参数:
loop=0,setpts=N/FRAME_RATE/TB
:设置水印gif无限循环-shortest
:将输出文件的时长设置为第一个视频文件的时长
如果希望水印只播放一次,可以使用:
ffmpeg -hide_banner -i src.mp4 -i watermark.gif -filter_complex "overlay=x=0:y=0:eof_action=pass" target.mp4 -y
如果需要延迟显示水印,可以使用:
ffmpeg -hide_banner -i src.mp4 -itsoffset 3 -i watermark.gif -filter_complex "overlay=x=0:y=0:eof_action=pass" target.mp4 -y
水印显示时间变化
设置水印显示时长
ffmpeg -hide_banner -i src.mp4 -i watermark.png -filter_complex "overlay=enable='lte(t,5)'" target.mp4 -y
设置水印显示时间段
ffmpeg -hide_banner -i src.mp4 -i watermark.png -filter_complex "overlay=enable='between(t,5,10)'" target.mp4 -y
设置两个水印轮番出现
ffmpeg -i src.mp4 -i doggie1.png -i watermark.png -filter_complex "overlay=enable='lte(mod(t,10),4)',overlay=enable='gt(mod(t,10),6)'" target.mp4 -y
水印位置变化
设置水印随时间向右移动
ffmpeg -i src.mp4 -ignore_loop 0 -i watermark.gif -lavfi "overlay=x=t*20" -shortest target.mp4 -y
设置水印每隔10秒钟从左移动右直至消失
ffmpeg -i src.mp4 -ignore_loop 0 -i watermark.gif -lavfi "overlay=enable='mod(t,10)':x='100*mod(t,10)-w'" -shortest target.mp4 -y
4. 添加马赛克
如果需要给视频或图片添加马赛克,可以使用 boxblur 滤镜。该滤镜将指定区域变成模糊效果,从而达到马赛克的效果。
ffmpeg -i src.mp4 -filter_complex "[0:v]boxblur=20[blur];[blur]crop=200:200:300:300,boxblur=20[cropped];[0:v][cropped]overlay=300:300" target.mp4
其中:
[0:v]boxblur=20[blur]
:对视频画面进行模糊处理,模糊半径为 20 像素[blur]crop=200:200:300:300,boxblur=20[cropped]
:对模糊后的视频画面进行裁剪,只保留左上角起始坐标为 (300, 300),宽高为 200 的区域,并再次进行模糊处理- 最后使用 overlay 滤镜将原始视频和裁剪后的带马赛克画面叠加在一起
5. 去除水印
如果视频中的水印和马赛克无法通过软件工具进行剔除,可以在视频上添加其他的图层来遮盖住这些区域。
准备好需要添加的图层,可以是一张图片、一段文字或另一个视频等。在命令行中输入以下命令:
ffmpeg -i src.mp4 -i watermark.png -filter_complex "[0:v][1:v] overlay=x=W-w-10:y=10" -c:a copy target.mp4
其中:
[0:v][1:v]
:表示将输入文件和图层文件作为滤镜链的两个输入overlay=x=W-w-10:y=10
:使用 overlay 滤镜将图层添加到视频画面的指定位置上-c:a copy
:保留视频文件中的音频流
热门推荐
游采石矶需要多少时间?采石矶游玩要多久?一份详细时间规划攻略助你玩转!
如何有效的优化机械硬盘
铸造装备之中频感应炉发展介绍
琥珀:一种珍贵药材的多重功效与使用指南
怎样保养琥珀?让您的琥珀保持光泽与美丽的秘诀
猫咪适应新环境,小技巧大帮助!
美术好的游戏下载合集 2024经典的艺术风格手游大全
性别认同障碍的原因有哪些方面表现
工业齿轮油的选用原则——如何选用合适的工业齿轮油?
家电产品哪些需要CCC认证?如何查询CCC认证证书?
研学旅行力促铜川教育与经济文化深度融合
健康险和医疗险的区别:从定义到服务全方位解析
董宇辉职位变动背后:直播行业的变局与挑战
康复——肘腕|肱三头肌远端肌腱断裂修复术后康复程序
股票隔夜单操作指南:从入门到精通
如何培训团队奉献精神
数字化急救:急救虚拟仿真实训系统
郑钦文爆冷出局 其实她曾考虑因伤退赛
从“冲量扩张”到“价值驱动” 保险代理人转型提速
劳保手套尺寸选择全知道:舒适与防护兼得的关键
DDR4 SDRAM:现代计算机系统的主流内存标准
从电子垃圾中提炼贵金属黄金
自动驾驶合规宝典5~ADS安全评估和验证概述
外贸客户背调:如何精准挖掘高价值买家?
黄金再度与美元、美债收益率同涨!这是否暗示着什么?
参与·融入·互识·共进——中国当代学术“走出去”策略
JS回调方法出错怎么办?11个实用解决方案
一篇文章带你了解音乐版权,教你合理使用音乐版权
关于白蛋白的知识,你需要明明白白?
如何通过5G技术提升医疗领域的服务质量?