利用ffmpeg替换视频的背景音乐并改变视频标题部分

这两天又遇到一个朋友的问题,这里跟大家共享一下我利用ffmpeg的解决方法

将一个带音乐的视频的声音,消除其背景音乐,替换为另一个伴奏音乐
同时将将视频前部的15秒标题部分替换为一张标题图片

原料是一个长度为 3:56 的视频 girl1.mp4 与一段 4:07 的音频 girl1.mp3
以及一张标题图片 girltitle1.jpg

【】首先将视频背景声音去除,提取视频部分

ffmpeg -i girl1.mp4 -vcodec copy -an girl2.mp4

【】将视频截取去除前面的15秒的标题部分

ffmpeg -i girl2.mp4 -ss 00:00:15  -t 00:03:56 -vcodec copy -acodec copy girl3.mp4

【】将封面图片生成mp4,这个可以利用WPS或者Office完成,但我用的WPS 是免费的个人版,阉割掉了转换为mp4的功能,不过ffmpeg 可以利用多张图片生成mp4,我这里标题图片只有一张girltitle1.jpg生成15秒的title1.mp4,所以操作比较简单

ffmpeg -r:v 25 -f image2 -loop 1 -i girltitle1.jpg  -t 15 title1.mp4 -y 

【】难点是将title1.mp4与 girl3.mp4 正确的合并成为 girl?.mp4,在网上查了一下,找了三种方法

①将两段视频直接合并起来
先编写文本文件 vlist.txt,内容如下

file 'title1.mp4'
file 'girl3.mp4'

然后使用命令调用 vlist.txt 进行合并,但是奇怪的是 title1.mp4 为15秒,girl3.mp4 为3:41秒
而这合并应该为3:56 秒,但是合并结果为9分多,好像视频慢了一些,我修改了 title1.mp4 生成时的帧率也不行,这种方法失败

ffmpeg -f concat -i vlist.txt -c copy girl4.mp4

②转换视频格式到mpg

ffmpeg -i title1.mp4  title1.mpg
ffmpeg -i girl3.mp4  girl3.mpg

将mpg连接起来成为output.mpg,然后转换为mp4格式 girl5.mp4

ffmpeg -i "concat:title1.mpg|girl3.mpg" -c copy output.mpg
ffmpeg -i output.mpg girl5.mp4

或者将以上的两个步骤合并为一步,连接mpg 并转换为mp4 (这个方法推荐)

ffmpeg -i "concat:title1.mpg|girl3.mpg" -vcodec mpeg4  girl5.mp4

③转换视频格式到 TS文件input1.ts 和 input2.ts,然后连接两个ts文件并且转换为mp4文件girl6.mp4

ffmpeg -i title1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts input1.ts
ffmpeg -i girl3.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts input2.ts

ffmpeg -i "concat:input1.ts|input2.ts" -c copy -bsf:a aac_adtstoasc -movflags +faststart girl6.mp4

【】得到3:56秒的girl?.mp4以后就简单了,将加上声音girl1.mp3 就可以了

ffmpeg -i girl5.mp4 -i girl1.mp3 -vcodec copy -acodec copy girl7.mp4
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值