You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用FFmpeg在水印区域像素的R、G、B通道各减25?

用FFmpeg给视频水印区域像素RGB通道各减25的实现方法

核心思路

通过FFmpeg的regionfilter滤镜精准定位水印区域,再搭配lutrgb滤镜对区域内像素的R、G、B通道分别减去25,不影响视频其他区域的画面。

命令示例

ffmpeg -i input.mp4 -filter_complex "[0:v]regionfilter=x=100:y=200:w=300:h=50:filter='lutrgb=r=r-25:g=g-25:b=b-25'[outv]" -map "[outv]" -map 0:a -c:a copy output.mp4

参数说明

  • x=100:y=200:w=300:h=50:替换为你的水印区域实际坐标与尺寸:
    • x:水印区域左上角的X轴像素坐标
    • y:水印区域左上角的Y轴像素坐标
    • w:水印区域的宽度(像素)
    • h:水印区域的高度(像素)
  • lutrgb=r=r-25:g=g-25:b=b-25:对指定区域内的每个像素,R、G、B通道值各减去25,FFmpeg会自动将负数结果限制为0,避免像素值溢出异常。
  • -c:a copy:直接复制原视频的音频流,无需重新编码,大幅节省处理时间。

如何确定水印区域坐标与尺寸

  1. 用FFmpeg查看像素坐标:
    执行以下命令,播放视频时移动鼠标到水印区域,终端会输出当前鼠标位置的像素坐标:
    ffmpeg -i input.mp4 -vf showinfo -f null -
    
  2. 计算区域尺寸:获取水印区域左上角和右下角的坐标后,宽度=右下角X值-左上角X值,高度=右下角Y值-左上角Y值。

额外提示

  • 若水印是非规则形状,需先制作水印蒙版,再通过maskedmerge等滤镜结合lutrgb处理,但固定矩形水印用上述方法即可满足需求。
  • 测试时可添加-t 10参数只处理前10秒视频,确认效果后再处理完整文件:
    ffmpeg -i input.mp4 -t 10 -filter_complex "[0:v]regionfilter=x=100:y=200:w=300:h=50:filter='lutrgb=r=r-25:g=g-25:b=b-25'[outv]" -map "[outv]" -map 0:a -c:a copy test_output.mp4
    

内容的提问来源于stack exchange,提问作者PirateApp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 12:01:52