FFmpeg 图片/文字水印的透明度设置与缩放操作相关问题
1. 图片水印:单命令同步完成尺寸缩放+透明度调整
对应问题
尝试对图片水印做尺寸缩放的同时同步设置不透明度,无法通过单条命令完成组合操作;现有参考命令仅能实现水印缩放,无法同步调整透明度。
解决方案
在水印素材的滤镜链中,完成缩放操作后直接对接colorchannelmixer滤镜,通过Alpha通道权重参数控制水印整体不透明度,全程在单个filter_complex滤镜链内完成,不需要拆分多步处理。
可直接复用的改造后命令:
ffmpeg -i video.mp4 -i watermark.png -filter_complex "[1]scale=iw*0.1:-1,colorchannelmixer=aa=0.6[wm];[0][wm]overlay=x=15:y=10" output.mp4
- 关键参数说明:
aa=0.6控制水印整体不透明度,取值范围为0~1,0代表完全透明,1代表完全不透明,可根据实际需求替换对应数值。
2. 文字水印:设置本体透明度同时保留清晰的描边灰感
对应问题
尝试为文字水印设置本体透明度,同时保留描边的偏灰清晰视觉效果;现有参考命令存在重复参数覆盖问题,仅能调整文字尺寸、基础描边属性,无法单独配置文字本体透明度。
解决方案
利用drawtext滤镜对文字本体、描边颜色的独立透明度配置能力,在对应颜色值后以@透明度值的格式单独设置参数,将描边的不透明度锁定为100%,即可避免描边随文字本体变淡、丢失视觉效果。
可直接复用的改造后命令:
ffmpeg -i video.mp4 -filter_complex "drawtext=fontfile=wryh.ttf:text='sample':x=20:y=15:fontcolor=white@0.5:fontsize=15:bordercolor=black@1:borderw=0.51" output.mp4
- 关键参数说明:
white@0.5:文字本体为纯白色、50%不透明度,可根据需求调整透明度数值black@1:描边为纯黑色、100%不透明度,不会随文字本体透明度变化变淡
内容的提问来源于stack exchange,提问作者Jimmy

