python给视频添加背景音乐并改变音量的具体方法


Posted in Python onJuly 19, 2020

用到给视频添加背景音乐,并改变音量。记录一下,与碰到同样问题的朋友共享。

import subprocess

inmp4='E:/PycharmProjects/untitled2/hecheng/191030_232_xs.mp4'
inmp3='E:/PycharmProjects/untitled2/hecheng/bg.mp3'
inmp32='E:/PycharmProjects/untitled2/hecheng/bg2.mp3'
outmp3='E:/PycharmProjects/untitled2/hecheng/bg_out.mp3'
outmp4='E:/PycharmProjects/untitled2/hecheng/191030_232_xs_bg.mp4'


cmd='ffmpeg -y -i '+ inmp4 +' -i '+ inmp3 +' -filter_complex \
"[0:a]volume=10dB[a0]; \
[1:a]volume=-10dB[a1]; \
[a0][a1]amix=inputs=2[a]" \
-map 0:v -map "[a]" -c:v copy -c:a aac -shortest '+ outmp4

p = subprocess.call(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

# 查看音轨信息
print('*'*80)
cmd='ffmpeg -i '+ outmp3 +' -filter_complex volumedetect -c:v copy -f null /dev/null'
P = subprocess.call(cmd)

记录几个cmd

# 分别降低音量后叠加
cmd='ffmpeg -y -i '+ inmp4 +' -i '+ inmp3 +' -filter_complex \
"[0:a]volume=10dB[a0]; \
[1:a]volume=-30dB[a1]; \
[a0][a1]amix=inputs=2[a]" \
-map 0:v -map "[a]" -c:v copy -c:a aac -shortest '+ outmp4

# 纯音频,叠加,可控制音量,并且设置一个循环,并按照第一个截取时间
cmd='ffmpeg -y -i '+ mp4p3 +' -i '+ inmp3 +' -filter_complex \
"[0:a]volume=10dB[a0]; \
[1:a]aloop=loop=-1:size=2e+09[a1]; \
[a1]volume=-15dB[a12]; \
[a0][a12]amix=inputs=2:duration=first:dropout_transition=2" ' + outmp4mp3

# 视频添加循环音乐
cmd='ffmpeg -y -i '+ inmp4 +' -i '+ inmp3 +' -filter_complex \
"[0:a]volume=10dB[a0]; \
[1:a]aloop=loop=-1:size=2e+09[a1]; \
[a1]volume=-15dB[a12]; \
[a0][a12]amix=inputs=2:duration=first:dropout_transition=2[a]" \
-map 0:v -map "[a]" -c:v copy -c:a aac -shortest '+ outmp4

ffmpeg 隐藏调试信息

-loglevel quiet

资料参考:

https://stackoverflow.com/questions/13780736/ffmpeg-unable-to-find-a-suitable-output-format-for-i

https://stackoverflow.com/questions/44712868/ffmpeg-set-volume-in-amix

到此这篇关于python给视频添加背景音乐并改变音量的具体方法的文章就介绍到这了,更多相关python给视频添加背景音乐并改变音量内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实用日期时间处理方法汇总
May 09 Python
深入理解python try异常处理机制
Jun 01 Python
python difflib模块示例讲解
Sep 13 Python
python+ffmpeg批量去视频开头的方法
Jan 09 Python
浅谈python3.x pool.map()方法的实质
Jan 16 Python
python3利用ctypes传入一个字符串类型的列表方法
Feb 12 Python
如何使用Python进行OCR识别图片中的文字
Apr 01 Python
java中的控制结构(if,循环)详解
Jun 26 Python
Python如何实现转换URL详解
Jul 02 Python
python实现字符串完美拆分split()的方法
Jul 16 Python
python web框架中实现原生分页
Sep 08 Python
pytorch标签转onehot形式实例
Jan 02 Python
python中加背景音乐如何操作
Jul 19 #Python
python实现最短路径的实例方法
Jul 19 #Python
python等待10秒执行下一命令的方法
Jul 19 #Python
python怎么删除缓存文件
Jul 19 #Python
python实现从ftp上下载文件的实例方法
Jul 19 #Python
python中关于数据类型的学习笔记
Jul 19 #Python
Python趣味实例,实现一个简单的抽奖刮刮卡
Jul 18 #Python
You might like
php的header和asp中的redirect比较
2006/10/09 PHP
浅谈PHP中try{}catch{}的使用方法
2016/12/09 PHP
FireFox中textNode分片的问题
2007/04/10 Javascript
js防止表单重复提交实现代码
2012/09/05 Javascript
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
jQuery 复合选择器应用的几个例子
2014/09/11 Javascript
Javascript闭包用法实例分析
2015/01/23 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
2016/06/13 Javascript
Web打印解决方案之证件套打的实现思路
2016/08/29 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
2016/12/03 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
JS中appendChild追加子节点无效的解决方法
2018/10/14 Javascript
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
微信小程序实现选择地址省市区三级联动
2020/06/21 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
基于vue+echarts数据可视化大屏展示的实现
2020/12/25 Vue.js
python 3利用BeautifulSoup抓取div标签的方法示例
2017/05/28 Python
python中numpy.zeros(np.zeros)的使用方法
2017/11/07 Python
Python3中编码与解码之Unicode与bytes的讲解
2019/02/28 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
python滑块验证码的破解实现
2019/11/10 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
2020/09/11 Python
乌克兰电子产品和家用电器购物网站:TOUCH
2019/08/09 全球购物
应届生护士求职信
2013/11/01 职场文书
档案管理员岗位职责
2013/12/01 职场文书
教师实习自我鉴定
2013/12/14 职场文书
自动化毕业生专业自荐书范文
2014/02/04 职场文书
民族团结先进个人材料
2014/02/05 职场文书
公司授权委托书
2014/10/17 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
社区活动总结范文
2015/05/07 职场文书
离职员工给领导和同事的感谢信
2015/11/03 职场文书
Python基础之Socket通信原理
2021/04/22 Python