FFmpeg怎么批量给视频加水印

FFmpeg怎么批量给视频加水印,第1张

批量给视频水印的方法,支持文字水印和图片水印的批量添加:

步骤1,下载软件工具后安装打开,选择左边的【视频水印】功能后,再点击左上角的【添加文件】按钮,将视频导入到软件中,可以同时添加多个视频批量加水印。

步骤2,接下来是设置的环节,水印类型选择“图片类型”;然后上传logo图片;再设置logo水印的缩放比例、透明度、位置以及边距参数。可以在上方预览水印的样式,点击可以放大预览。

步骤3,设置添加水印后视频的输出目录(保存到哪个文件夹),再点击【开始转换】按钮,启动加水印程序。加完水印后软件会自动d出视频保存的文件夹。

步骤4,打开刚刚处理好的视频可以看到,视频的右上角成功的加上了水印。

2018.9.17更新

命令改成这样,不然将会压制出来两条视频轨道,一条有字幕一条没有 = =

btw, [1]scale=100:100[logo]这一句顾名思义是缩放的意思

%pos% 可以选下面这几种

这个需求其实挺变态的

我之前压制硬字幕的命令是

ffmpeg -i input.mp4 -vf "ass=input.ass" output.mp4

压制logo的命令是

ffmpeg -i input.mp4 -i logo.ico -filter_complex overlay output.mp4

于是我想当然地把这两条语句结合

ffmpeg -i input.mp4 -i logo.ico -filter_complex overlay -vf "ass=input.ass" output.mp4

结果出现了报错

大致意思就是 -vf 选项不能和 -filter_complex 滤镜一起使用

头大

然后一番搜索之后,照着 这篇 的解释和 这篇 ,拼凑出了下面这条命令

我说一下自己的理解

首先看到命令中有两个输入,一个是视频文件,为 input0,一个是 logo 图像,为 input1.

filter_complex 滤镜的参数里面 [0:v] 的 0 是 input0, v 代表处理的是视频而不是音频,处理音频的待会儿再讲

整体来看, [0:v][1:v]overlay[logo] 是一个2输入1输出的管子,管子把 input1 的视频流(此处为一张图)叠加到 input0 的上面,出来的产品叫做 [logo]

然后下一句 [logo]ass=source.ass[sub] 中,可以把中间那个ass滤镜当做一个1输入1输出的管子,这个管子对每个视频流进行处理,在视频上打上字幕,出来的产品叫做 [sub]

最终把这个 [sub] 映射到 output.final.mp4 上面

这样处理出来的视频logo和字幕都有了,但还有一个问题:音频流全部丢失,处理出来的是无声视频,大致猜测是由于我们只处理了视频流,导致音频流丢失。

又是一番搜索,终于在 这里 看到了一点蛛丝马迹

也就是把第一个输入(input0)的第一个音轨(stream0)映射到输出中

手残的我在命令里加入了一句 -map 0,0

误打误撞居然有声音了

我也不知道为什么,难道说是我的版本把这个命令的用法改了??有人知道吗

附上我的环境


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11287400.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存