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 变量类型及命名规则介绍
Jun 08 Python
python写日志封装类实例
Jun 28 Python
举例讲解Python设计模式编程中对抽象工厂模式的运用
Mar 02 Python
Python变量和字符串详解
Apr 29 Python
解决python3 urllib 链接中有中文的问题
Jul 16 Python
Python函数装饰器常见使用方法实例详解
Mar 30 Python
详解基于python-django框架的支付宝支付案例
Sep 23 Python
python反转列表的三种方式解析
Nov 08 Python
python数据预处理 :数据共线性处理详解
Feb 24 Python
基于opencv实现简单画板功能
Aug 02 Python
python 多线程爬取壁纸网站的示例
Feb 20 Python
PyTorch 如何设置随机数种子使结果可复现
May 12 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
利用discuz自带通行证整合dedecms的方法以及文件下载
2007/03/06 PHP
网友原创的PHP模板类代码
2008/09/07 PHP
PHP 组件化编程技巧
2009/06/06 PHP
PHP简单实现解析xml为数组的方法
2018/05/02 PHP
php源码的安装方法和实例
2019/09/26 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
2020/11/23 PHP
jQuery lazyLoad图片延迟加载插件的优化改造方法分享
2013/08/13 Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
2013/11/18 Javascript
js实现两点之间画线的方法
2015/05/12 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
使用BootStrapValidator完成前端输入验证
2016/09/28 Javascript
详解获取jq ul第一个li定位的四种解决方案
2016/11/23 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
jQuery DOM节点的遍历方法小结
2017/08/15 jQuery
JS实现合并json对象的方法
2017/10/10 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
angular5 子组件监听父组件传入值的变化方法
2018/09/30 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
2020/02/06 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
用Python中的wxPython实现最基本的浏览器功能
2015/04/14 Python
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
2015/12/25 Python
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
带你了解python装饰器
2017/06/15 Python
Python获取当前公网ip并自动断开宽带连接实例代码
2018/01/12 Python
Python将list中的string批量转化成int/float的方法
2018/06/26 Python
美国领先的礼品卡网站:GiftCards.com
2016/11/02 全球购物
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
2012/12/05 面试题
城市规划应届毕业生自荐信
2014/07/04 职场文书
党支部特色活动方案
2014/08/20 职场文书
中学生秋季运动会广播稿
2014/09/21 职场文书
2014年财务科工作总结
2014/11/11 职场文书
银行催款通知书
2015/04/17 职场文书
戒赌保证书
2015/05/11 职场文书
MySql重置root密码 --skip-grant-tables
2022/04/11 MySQL