2)视频文件夹水印命令
ffmpeg -i input.avi -vf "movie=logo.png [logo]; [in][logo] overlay=10:10 [out]" output.avi
ffmpeg -i inputvideo.avi -vf "movie=watermarklogo.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]" outputvideo.flv
参数
|
参数
|
说
明
|
overlay
|
main_w
|
视频单帧图像宽
度
|
main_h
|
视频单帧图像高
度
|
|
overlay_w
|
水印
图
片的
宽
度
|
|
overlay_h
|
水印
图
片的高度
|
|
-vf
|
设
置video
过滤
器,
视频
旋
转
,
缩
放,水印等
处
理
|
|
af
|
设置audio过滤器
|
关于更多的参数可以参考ffmpeg官网filter的描述:https://ffmpeg.org/ffmpeg-filters.html
三、加水印可能遇到的问题
1)水印位置
水印图片位置
|
overlay值
|
左上角
|
10:10
|
右上角
|
main_w-overlay_w-10:10
|
左下角
|
10:main_h-overlay_h-10
|
右下角
|
main_w-overlay_w-10 : main_h-overlay_h-10
|
2)视频码率降低
上面加水印后发现视频画面变差,后来对比发现是因为编码方式变了
原来的编码格式
加水印后的编码格式音频编码格式adpcm_swf,视频编码flv1。水印前编码格式是aac和h264
原来的水印指令没有带“-c:v libx264 -c:a copy”这两个参数导致的
ffmpeg -i rtmp://localhost/live/name -vf "movie=/path/2.png [watermark]; [in][watermark] overlay=10:10 [out]"-f flv rtmp://locahost:1936/live/name
解决办法:转成和之前同样的编码格式,音频流直接copy。或者也可以加上-b码率和原始视频试试看
例如我的这个加上“-c:v libx264 -c:a copy 参数后,对比图
3)转264的时候编译的ffmpeg必须支持x264
否则 加-c:v libx264参数的时候可能会报错Unknown encoder 'libx264'
解决办法:先安装x264的库,然后在编译的时候加上./configure --enable-libx264
注意:1)水印视频必须要重新编码"-c:v libx264",音频流直接"-c:a copy"
2) -vcodec copy -acodec copy好像2.x版本以后可以直接简写成-c copy
-vcodec -c:v copy表示视频流可以直接copy
3)加-c copy会报Filtering and streamcopy cannot be used together.注意不要加-c copy
4)注意水印图片的尺寸大小不能大于视频尺寸,要不然水印会全部覆盖。以上视频尺寸800x432,水印尺寸196 × 106