ffmpeg真的是个很强大的工具,录屏也好,视频处理也好,简单几个命令,就能实现自己的需求。这不,原来审核通过的大黑边框视频被淘宝刷了下来,系统提示“视频中请勿出现影响视觉效果的大范围纯色边框”,于是考虑添加一个渐变并包含店铺logo的边框来替换:
ffmpeg -i input.mp4 -i bg.png -filter_complex "[0:v][1:v]overlay=-2:-2" -c:a copy output.mp4
首先我们准备一张bg.png
图片,png支持透明效果,在边框位置设置好背景色与文案,再将需要展示内容的部分镂空。这个工作可以放在coreldraw中去做。下图就是一个中间镂空仅页眉页脚有内容的png透明图片。
比如博主就准备了一张724x724
的图片,从视频的坐标(-2,-2)
开始覆盖,因为导出图片边缘有时候有点不太整齐,所以图片尺寸比视频尺寸稍微大了几个px,从负值位置开始覆盖,整体效果看起来更为整齐一些。
添加背景音乐
然而事情总是没有那么一帆风顺,添加好了背景图,系统又给出了一个报错,视频无声或声音嘈杂。这背景音乐吧,做视频的时候也不是没考虑过,一是怕侵人家权(好想加黑悟空的唢呐进去),二是怕自己调子调太高,用户一开视频吓人一跳。
询问了一下deepseek,ai提供了几个免费音乐的下载地址,比如下面这个:
Pixabay Music
https://pixabay.com/music/
免版税音乐,支持自由使用(无需署名)。
找了首相对柔和的曲子,命名为sound.mp3
,放在视频同文件夹内,然后用以下命令合并音频与视频:
ffmpeg -i input.mp4 -i bgm.mp3 -filter_complex "[0:a]volume=1.0[a1];[1:a]volume=0.5[a2];[a1][a2]amix=inputs=2:duration=first" -c:v copy -map 0:v -shortest output.mp4
处理到第三个视频的时候报错如下:
[fc#0 @ 0000000000600840] Stream specifier ':a' in filtergraph description [0:a]
volume=1.0[a1];[1:a]volume=0.5[a2];[a1][a2]amix=inputs=2:duration=first matches
no streams.
Error binding filtergraph inputs/outputs: Invalid argument
原因是源视频没有音频流,不需要用mix指令,修改为如下命令即可:
ffmpeg -i input.mp4 -i bgm.mp3 -filter_complex "[1:a]volume=0.5[a];[0:v][a]concat=n=1:v=1:a=1" -shortest output.mp4