一、ffmpeg加水印命令,主要从直播和视频文件加水印1)直播推流加水印示例ffmpeg -i rtmp://localhost/live/name  -vf
"movie=/path/2.png [watermark]; [in][watermark] overlay=10:10 [out]" -c:v
libx264 -c:a copy -f flv rtmp://locahost:1936/live/name   

2)视频文件夹水印命令

ffmpeg -i input.avi -vf "movie=logo.png [logo]; [in][logo] overlay=10:10
[out]" output.avi
Bottom left corner ffmpeg -i inputvideo.avi -vf "movie=watermarklogo.png
[watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]"
outputvideo.flvBottom right corner 
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
二、ffmpeg水印参数说明
参数参数说明
   overlaymain_w视频单帧图像宽度
main_h视频单帧图像高度
overlay_w水印图片的宽度
overlay_h水印图片的高度
-vf设置video过滤器,视频旋转,缩放,水印等处理
af设置audio过滤器
关于更多的参数可以参考ffmpeg官网filter的描述:https://ffmpeg.org/ffmpeg-filters.html
<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









          





友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信