1. FFmpeg多媒体处理核心技能解析
作为一款开源的音视频处理神器,FFmpeg在多媒体处理领域占据着不可替代的地位。今天我们就来深入探讨几个实际工作中最常遇到的FFmpeg操作场景:添加水印(包括位置控制)、录音录像时的分辨率设置,以及如何查看和指定分辨率。这些技能对于视频编辑、直播推流、安防监控等领域的开发者来说都是必备的。
我从事音视频开发多年,处理过各种FFmpeg相关的"疑难杂症"。本文将分享我在实际项目中使用FFmpeg处理水印和分辨率问题的经验,包括一些官方文档中没有提及的实用技巧和常见坑点。无论你是刚接触FFmpeg的新手,还是想进一步提升技能的老手,相信都能从中获得实用的知识。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. FFmpeg水印添加全攻略
2.1 基础水印添加方法
给视频添加水印是版权保护、品牌展示的常见需求。FFmpeg通过filter_complex功能可以轻松实现这一需求。最基本的命令格式如下:
bash复制ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay" output.mp4
这个命令做了三件事:
- 读取输入视频(input.mp4)
- 读取水印图片(watermark.png)
- 使用overlay滤镜将水印叠加到视频上
注意:水印图片最好是PNG格式,因为它支持透明度。如果使用JPG等不透明格式,水印会显示为矩形块。
2.2 精准控制水印位置
实际项目中,我们往往需要精确控制水印的位置。FFmpeg提供了多种定位方式:
2.2.1 相对坐标定位
bash复制ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4
这里的"10:10"表示水印距离视频左边缘10像素,距离上边缘10像素。这种绝对像素值定位在需要精确控制时非常有用。
2.2.2 动态计算定位
更灵活的方式是使用表达式计算位置,这在处理不同分辨率视频时特别实用:
bash复制ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=x=main_w-overlay_w-10:y=10" output.mp4
这个命令将水印放置在:
- 水平方向:视频宽度(main_w)减去水印宽度(overlay_w)再减10像素(即距离右边缘10像素)
- 垂直方向:距离上边缘10像素
2.2.3 九宫格定位法
FFmpeg还支持类似CSS的定位关键词:
| 位置参数 | 效果描述 |
|---|---|
| overlay=0:0 | 左上角 |
| overlay=(main_w-overlay_w)/2:0 | 顶部居中 |
| overlay=main_w-overlay_w:0 | 右上角 |
| overlay=0:(main_h-overlay_h)/2 | 左侧居中 |
| overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2 | 正中央 |
| overlay=main_w-overlay_w:(main_h-overlay_h)/2 | 右侧居中 |
| overlay=0:main_h-overlay_h | 左下角 |
| overlay=(main_w-overlay_w)/2:main_h-overlay_h |
