环境说明:系统编码: UTF-8 (更好地支持中文,防止乱码)静态水印(图片和文字)1.图片水印ffmpeg –i test.flv -acodec copy-vcodec copy -vf "movie=test.png[watermark];[in][watermark]overlay=10:10:1[out]" output.flv#参数说明:-i test.flv 表示要进行水印添加处理的视频
-acodec copy-vcodec copy表示保持音视频编码不变
-b 300k 表示处理视频的比特率
-vf “…” 中间便是水印处理参数,movie是指图片水印路径,搭配overlay一起使用,重要的是overlay=后面的部分,第一个参数表示水印距离视频左边的距离,第二个参数表示水印距离视频上边的距离,第三个参数 为1,表示支持透明水印。使用透明的png图片进行视频编码后,成功获得带透明水印的视频,并且画质也比较好。详情请见:https://ffmpeg.org/ffmpeg-filters.html#overlay-1output.flv 处理后的视频2.文字水印ffmpeg -i test.flv -vf "drawtext=fontfile=simhei.ttf: text='筑梦之路':x=100:y=10:fontsize=24:fontcolor=yellow:shadowy=2" drawtext.mp4#参数说明:文字水印filter是drawtext,首先要有simhei.ttf这个文件,可以去网上下载,也可以去C:\Windows\Fonts\目录下去找,text是文字内容,x:y是显示位置,fontsize文字大小,fontcolor文字颜色详情请看https://ffmpeg.org/ffmpeg-filters.html#drawtext-1
其他视频水印处理相关内容#直播推流加水印ffmpeg -i rtmp://localhost/live/name -vf "movie=test.png[watermark];[in][watermark] overlay=10:10[out]" -c:v libx264 -c:a copy -f flv rtmp://localhost:1936/live/name#处理水印图片大小ffmpeg -i logo.png -strict -2 -s 240x240 logo-1.png#添加本地时间水印ffmpeg  -i src.mp4 -vf "drawtext=fontsize=160:text='%{localtime\:%T}'" -c:v libx264 -an -f mp4 output.mp4 -y#把视频的pts时间戳作为水印,精度毫秒ffmpeg -t 5 -i src.mp4 -vf "drawtext=fontsize=160:text='%{pts\:hms}'" -c:v libx264 -an -f mp4 output.mp4 -y#视频文件加水印ffmpeg -i input.avi -vf "movie=logo.png [logo]; [in][logo] overlay=10:10 [out]" output.avifimpeg -i inputvideo.avi -vf "movie=watermarklogo.png [watermark];[in][watermark] overlay=10:main  h-overlay h-10 [out]" outputvideo.flvfimpeg -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  视频过滤器:旋转 缩放 水印等处理-af  音频过滤器#常用水印位置左上角    10:10右上角    main_w-overlay_w-10:10左下角    10:main_h-overlay_h-10右下角    main_w-overlay_w-10:main_h-overlay_h-10示例(右上角):ffmpeg -i test.mp4 -i logo.png -filter_complex "overlay=x=main_w-overlay_w:y=0" out.mp4 -y
动态水印(gif图片和视频)#循环播放gif方式ffmpeg -i test.mp4 -ignore_loop 0 -i test.gif -filter_complex overlay -shortest out.mp4 -y#movie滤镜,支持视频水印ffmpeg -i test.mp4 -vf "movie=test.gif:loop=0,setpts=N/FRAME_RATE/TB[out];[0:v][out]overlay=x=main_w-overlay_w:y=0" -shortest out.mp4 -y##参数说明:loop=0,setpts=N/FRAME_RATE/TB :设置水印gif无限循环-shortest :将输出文件的时长设置为第一个视频文件的时长,如果不设置,你会发现命令会一直执行根本不会停下来,因为gif图的循环是无限的#水印播放一次, eof_action为passffmpeg -i test.mp4 -i test.gif -filter_complex "overlay=x=0:y=0:eof_action=pass" out.mp4 -y#设置水印延迟出现时间 -itsoffset 3 【3秒后才出现水印】ffmpeg -i test.mp4 -itsoffset 3 -i test.gif -filter_complex "overlay=x=0:y=0:eof_action=pass" out.mp4 -y#设置水印显示时长 【显示5秒后消失】ffmpeg -i test.mp4 -i test.png -filter_complex "overlay=enable='lte(t,5)'" out.mp4 -y#设置水印显示时间段 【在视频的5-10秒内显示】
ffmpeg  -i test.mp4 -i test.png -filter_complex "overlay=enable='between(t,5,10)'" out.mp4 -y#设置两个水印轮番出现 【第一个水印显示4秒后消失,2秒后第二个水印显示4秒后消失】ffmpeg -i test.mp4 -i test1.png -i test2.png -filter_complex "overlay=enable='lte(mod(t,10),4)',overlay=enable='gt(mod(t,10),6)'" out.mp4 -y#设置水印随时间向右移动 【水印每秒向右移动20像素,直到消失】ffmpeg -i test.mp4 -ignore_loop 0 -i test.gif -lavfi "overlay=x=t*20" -shortest out.mp4 -y#设置水印每隔10秒钟从左移动右直至消失fmpeg -i test.mp4 -ignore_loop 0 -i test.gif -lavfi "overlay=enable='mod(t,10)':x='100*mod(t,10)-w'" -shortest out.mp4 -y
水印旋转起来#实现旋转存在问题:图片是长方形的,旋转后图片丢失了部分
图片移走的部分是绿色的,完全无法直视#解决后ffmpeg -i test.mp4 -i s1.jpg -lavfi "[1:v]format=rgba,rotate='PI/6:c=0x00000000:ow=hypot(iw,ih):oh=ow'[out];[0:v][out]overlay=10:10" out.mp4 -y思路:调整水印宽高,根据勾股定律计算图片对角长度(hypot),将这个值设置为水印的宽高,这样,图片无论如何旋转,都不会超过设定的宽高,也就不会出现图片部分丢失的情况了;将图片显示的像素格式转换为rgba格式,如果做过前端的小伙伴会很熟悉的,最后的a表示透明度,如此一来,c=0x00000000的作用就是将图片旋转后的背景变为白色且完全透明,这样就不会遮挡视频了#不停旋转ffmpeg -i test.mp4 -loop 1 -i s1.jpg -lavfi "[1:v]format=rgba,rotate='PI/2*t:c=0x00000000:ow=hypot(iw,ih):oh=ow'[out];[0:v][out]overlay=10:10" -shortest out.mp4 -y

参考资料:(多多向大佬学习)

ffmpeg第3篇:为视频添加静态水印 - 愉快编程 - 博客园

ffmpeg第5篇:让水印图片旋转起来 - 愉快编程 - 博客园

ffmepg 视频添加水印 —— 筑梦之路相关推荐

  1. K8S中使用显卡GPU(N卡) —— 筑梦之路

    前些年做AI项目的时候经常用到显卡,大多数时候都是传统部署,对于资源的利用率并不高,而显卡也不便宜,K8S集群内调用显卡可以更加细致地进行显卡计算资源的分配,提高资源利用率. 之前记录和显卡相关的一些 ...

  2. 不关闭Selinux\Firewalld的情况下OpenSSH 9.0/9.1/9.2升级说明——筑梦之路

    前面写了一些文章,关于利用官方源码编译或者制作rpm包来升级openssh,修复安全漏洞 centos 7 制作openssh8.7/8.8/8.9/9.0 p1 rpm包升级--筑梦之路_筑梦之路的 ...

  3. 时间同步设置NTP和Chrony两种方式—— 筑梦之路

    之前写的:Chrony时间同步服务器的搭建--筑梦之路_筑梦之路的博客-CSDN博客_搭建chrony服务器 linux 下部署NTP服务器 时间同步_筑梦之路的博客-CSDN博客 操作系统:cent ...

  4. Nginx SSL漏洞(SWEET32)扫描和修复 —— 筑梦之路

    1.扫描nmap -sV --script ssl-enum-ciphers -p 443 www.baidu.comnmap --script="ssl-enum-ciphers" ...

  5. CentOS 8 安装freePBX 软交换电话软件——筑梦之路

    简单介绍: Freepbx是一个集成了Asterisk的工具,提供GUI (graphical user interface)用户图形界面.通过Freepbx可以十分方便的配置各类电话系统.由于Ast ...

  6. ffmpeg去除视频水印之计算水印位置 —— 筑梦之路

    1.截取一张视频的完整图片#[不推荐,容易算不准]使用截图工具截图一张视频完整的截图#[推荐]使用ffmpeg 命令截取视频第一帧图,示例如下ffmpeg -i test.mp4 -ss 1 -f i ...

  7. Oracle 12c 读书笔记——筑梦之路

    Oracle 12c  笔记 2020-7-13 #查看数据库状态 select status from v$instance; #修改密码 alter user system identified ...

  8. SSH 隧道转发——筑梦之路

    SSH 简介 SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据.但是,SSH 还同时提供了一个非常有用的功能,这就是端口转发优点:linux自带,传输加密,支持socks代理用法示例 ...

  9. 国产数据库备份恢复(TiDB\达梦\OceanBase\openGauss\GaussDB\GBASE)——筑梦之路

    TiDB: BR 简介 | PingCAP Docs 备份原理介绍: BR 设计原理 | PingCAP Docs BR 设计原理 BR 将备份或恢复操作命令下发到各个 TiKV 节点.TiKV 收到 ...

  10. linux 常用解压、压缩命令合集——筑梦之路

    1. tar文件解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!)2. gz文件解压1:gunzip Fi ...

最新文章

  1. 接近岁末,今日股市收盘大跳水
  2. Python3 基础语法(笔记2)
  3. 今天做内存操作系统(xp装在内存中)
  4. 腾讯,字节,阿里,小米,京东大厂Offer拿到手软!讲的明明白白!
  5. 解读OC中的load和initialize
  6. java查询线程状态命令_JAVA 线程死锁,以及linux 命令和jstack 命令 查看线程死锁状态信息...
  7. TensorFlow 最佳学习资源大全(含课程、书籍、博客、实战项目)
  8. 电脑服务器系统被管理员停用,Win7系统任务管理器已被系统管理员停用怎么办?...
  9. Python字符串加密
  10. 如何下载谷歌地球高程为TIF格式的文件
  11. Python学习:Python分析中国人口(一)爬取数据
  12. 2012年8月至今读书列表 --- 持续更新
  13. 华灿光电收购美新半导体 未来形成LED和传感器双主业发展
  14. 一位大学教授的感叹:一流大学的真实样子!
  15. Javascript学习总结——继承
  16. 微信自定义分享--失效问题
  17. PPT制作(文字排版)
  18. 官宣!微软跨平台 UI 框架 .NET MAUI 6 正式发布!
  19. 函数极限与数列极限桥梁:Heine定理
  20. Linux 操作系统管理命令(全)

热门文章

  1. 乐Pro3 乐视X720/乐视X722通刷官方线刷包_救砖包_解账户锁
  2. Leetcode. Largest Rectangle in Histogram
  3. IIS反向代理 URL重写 404或500 错误问题的解决方案
  4. 服务器d盘位置不可用,系统之家Windows7本地磁盘位置不可用拒绝访问的解决方法...
  5. 主表先查出数据再左连接
  6. 算法系列:Reservoir Sampling
  7. python爬虫之爬取招聘岗位信息
  8. 大数据助力普惠金融发展
  9. 小米路由器装linux,小米路由器3安装Misstar 从开始到失败
  10. 6 猜数字游戏 (15分)——数学分析能力