ffmpeg 踩坑实录 添加实时水印(二)

摘要:
所以我想到了使用以前的ffmpeg。静态水印:ffmpeg-i/usr/local/test/448da411-05cb-4ff2-a108-1721014e8e52。mp4 vfdrawt=“fontfile=arial.ttf:x=w-tw:fontcolor==白:fontsize=30:text='1q1'”1。mp4动态水印:ffmpeg-i/usr/local/test/448da411-05cb-4ff2-a108-1721014e8e52。mp4 vfdrawt=“expansion=strftime:basetime=$:fontfile=arial.ttf:x=w-tw:fontcolor==红:fontsize=30:text='%Y-%m-%d%H:%m:%S”1。mp4,所有这些都已在我的计算机上实现。

一、背景介绍

      最近领导要求做一个视频录制的相关项目。其中,需要对视频文件进行添加 实时时间水印。于是,我想到了使用之前的ffmpeg来做。

二、ffmpeg实际操作

       首先把需要添加水印的视频文件,上传到服务器指定位置 比如 “/usr/local/1.mp4”,这样的地方。其次,我们需要了解如何去给视频添加水印。

这里提供两种方式,一种是静态的,一种是动态的。(相关安装请参考 《ffmpeg 踩坑实录(一)》)

  静态水印:

ffmpeg -i /usr/local/test/448da411-05cb-4ff2-a108-1721014e8e52.mp4 -vf drawtext="fontfile=arial.ttf:x=w-tw:fontcolor=white:fontsize=30:text='1q1q1'"  1.mp4

  动态水印:

 ffmpeg -i /usr/local/test/448da411-05cb-4ff2-a108-1721014e8e52.mp4 -vf drawtext="expansion=strftime:basetime=$(date +%s -d '2018-10-13 14:10:50'):fontfile=arial.ttf:x=w-tw:fontcolor=red:fontsize=30:text='%Y-%m-%d  %H\:%M\: %S"  1.mp4

    以上两种,均在我本机实现过。前一种就是在视频文件全程右上角 贴上了1q1q1q字样的水印。

    后一种就是在视频文件的右上角贴上了以“2018-10-13 14:10:50”为起始时间的动态时间水印。

ffmpeg 踩坑实录 添加实时水印(二)第1张

三、命令相关内容详解

    静态水印中  -i 表示的是 输入文件

                    -vf 表示的是  视频滤镜,使用了drawtext滤镜,basetime是视频时间戳的初始值,text是显示时间的格式,fontsize后面一串是关于水印的颜色、字体、背景等设置

动态水印中 采取了 “expansion=strftime”的形式通过表达时,指定水印数值。

更多的内容,可以参考官方的文档,其中给出了不少实际的案例。

四、存在的问题和待改进的地方

   1.静态水印不满足要求,验证完成之后便没有对其进行深入尝试;

    2.动态水印,有两个问题,第一个 是录制完成之后才对其进行水印的添加,这样打在视频文件上的水印会跟实际录制的时间有一定的误差,如果不在意的仍可以使用该方法实现

                                              第二个 目前文中所列出来的命令,是指定了起始时间的。这样来说,其实是不对的,因为服务器的时间在流逝。但可以采用java拼接命令行,在这个时候把当时的服务器时间插入进去。这样完成了以当时服务器时间作为起始时间的 动态时间水印。

   3.效率问题,这次添加水印的视频文件 是大约3分钟时长的MP4文件,两种处理加水印的方式 时间均在十秒左右,比较耗费时间。后期如果采用该方法,需要提升相关效率。

五、参考文献

【1】《ffmpeg为视频添加时间戳 - 手动编译ffmpeg

【2】 《官方

六 补充

上述第四部分列出的问题中  关于动态时间水印的起始时间问题,可以通过前端请求到业务层,由业务层拼接 执行命令语句 。比如java,获得当时服务器时间 然后拼接加水印的语句。即可获得相关效果

 

免责声明:文章转载自《ffmpeg 踩坑实录 添加实时水印(二)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇markdown 使图片左对齐在.net中实现压缩多个文件为.zip文件 【转】下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【随笔】手机QQ v4.0

  最近几天广大iOS和Android用户先后更新了手机QQ v4.0,反馈意见褒贬不一,有句话是“好事不出门,坏事传千里”,给用户一个好的更新版本可能1000个用户里面会有1个用户给出五星好评,但是一旦做出了一个有争议的更新版本,那么10个用户里面可能就有1个给出一星评价,这次企鹅就遭殃了,据说从4.0版本推出到现在几天的时间内已经收到3W+个一星评级,...

Delphi写DLL要注意的问题 (转)

今天写一个dll准备给.net调用, dll写出之后给用delphi测试一下, 居然出错, 更别说给.net调用了.查来查去原来是参数和返回值使用string类型, 后面看了'Delphi 编写 DLL 返回字符串,.net 调用。' 这篇文章才解决, 顺便也收藏了一下,原来delphi写的dll有这么多限制的.   这一点我们需要注意  a. 参数和返回...

【物联网智能网关13】Html5:Canvas+WebSocket实现远程实时通信(上)

在上一篇博文《网关为核心,互联网为基础构建物联网平台》中简要介绍了基于.NET Micro Framework如何构建Web Server应用,本篇文章将基于Html5的Canvas和WebSocket技术详细介绍远程实时通信的实现。 无论是windows还是linux平台都已提供现成的Web Server技术,在服务端支持诸如ASP.net、ASP、PH...

[SAP ABAP开发技术总结]动态语句、动态程序

  在ABAP中写动态的程序,灵活的程序,一定要知道的 1.13.         动态语句... 22 1.13.1.     内表动态访问... 22 1.13.2.     动态类型... 23 1.13.3.     动态SQL. 23 1.13.4.     动态调用类的方法... 23 1.13.5.     ASSIGN 动态分配... 2...

FFMPEG 常用命令行

目录 1. 分离音视频 2. 解复用 3. 视频转码 4. 视频封装 5. 视频剪切 6. 视频录制 7.叠加水印 8.将MP3转换为PCM数据 9. 推送RTP流、接收RTP流并存为ts文件 10. ffmpeg 编码 11. ffmpeg 解码 12. 截取 YUV 13. 压缩分辨率 14. ffplay 播放YUV 15. ffplay 播放...

Ffmpeg解码获取一帧图像

Opening a Video File First things first - let's look at how to open a video file and get at the streams contained in it. The first thing we need to do is to initialize libavformat...