200分求:使用ffmpeg给视频加水印

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了200分求:使用ffmpeg给视频加水印相关的知识,希望对你有一定的参考价值。

谁使用过ffmpeg给视频加水印
不要从网上复制一大堆来这里
我都看了很多了
不是不全就是说的不清楚
会的给我留言
影音转霸2009 2.5这东西可以在程序里调用?
我是要在程序里给视频加水印

参考技术A ffmpeg 加水印,不是所有的版本都支持的,要0.5以前的版本,还需要带vhook里watermarter.dll 再用ffmpeg 命令行就可以了。当然整个过程很复杂
建议你用 影音转霸2009 2.5 专业视频加水印工具
参考技术B ffmpeg -y -i D:\shang.mp4 -acodec copy -b 500k -vf "movie=logo.png [watermark]; [in][watermark] overlay=30:20 [out]" D:\shang1.mp4 这个是加水印的,如果要同时去水印和加水印就用下面这个:ffmpeg -y -i D:\xi.ts -filter_complex "delogo=32:32:80:50:10; movie=logo.png [watermark]; [in][watermark] overlay=30:30 [out]" pair1.ts
贴出来大家一起分享,网上找了好久都没有关于这方面的资料,后来是在一位热心朋友的帮助下弄出来的!
参考技术C 用视频剪辑高手试试,它支持自定义ffmpeg命令,先把视频导入,再编辑好水印命令,就可以给视频添加水印了 参考技术D 请问你调试通过了没 我现在也在给视频加水印呢 如果你调试过了帮我一把行吧 谢谢了

ffmpeg 踩坑实录

一、背景介绍

      最近领导要求做一个视频录制的相关项目。其中,需要对视频文件进行添加 实时时间水印。于是,我想到了使用之前的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”为起始时间的动态时间水印。

技术分享图片

 

三、命令相关内容详解

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

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

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

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

 

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

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

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

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

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

 

五、参考文献

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

【2】 《官方

 

 

 

以上是关于200分求:使用ffmpeg给视频加水印的主要内容,如果未能解决你的问题,请参考以下文章

FFmpeg进阶:给视频添加文字水印

使用ffmpeg实现给音频,视频添加水印的操作

ffmpeg 踩坑实录

FFMpeg SDK使用7调用FFmpeg SDK实现视频水印

7 ffmpeg 截图 水印,动图

如何使用ffmpeg在视频中心添加透明水印?