Python使用ffmpy将amr格式的音频转化为mp3格式的例子


Posted in Python onAugust 08, 2019

最近做了一个项目,将从微信下载的音频文件(默认为.amr格式)转化为mp3格式(否则前端播放将会遇到困难)上传到云端。经过一番研究,最终决定采用Python的ffmpy包。

首先是ffmpy的文档:http://ffmpy.readthedocs.io/en/latest/index.html

安装只需执行

pip install ffmpy

注意,ffmpy只是命令行工具FFmpeg的一个包装,若要成功执行任务,还需要安装FFmpeg

在Ubuntu上:

sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
 
sudo apt-get update
 
sudo apt-get install ffmpeg

查看是否安装成功:

ffmpeg -versionx

下面是一个很简单的例子,这里没有对转音频的质量等具体参数进行设置,全部都是用的默认选项。建议由这类需求的朋友们参考一下FFmpeg的文档。

@classmethod
def transformat_voice(cls, amr_voice_b):
  from_fn = 'from.amr'
  to_fn = 'target.mp3'
  mp3_file = BytesIO()
  with open(from_fn, 'wb') as f_from:
    f_from.write(amr_voice_b.getvalue())
  ff = ffmpy.FFmpeg(inputs={from_fn: None}, outputs={to_fn: None})
  ff.run()
  with open(to_fn, 'rb') as f_to:
    f_to.seek(0)
    mp3_file.write(f_to.read())
  os.remove(from_fn)
  os.remove(to_fn)
  mp3_file.seek(0)
  return mp3_file

这里有一点,由于ffmpy只是一个命令行的wrapper,所以无法对BytesIO进行操作,这里只能先把二进制文件写到硬盘上进行操作,转换完后再把文件删除。最后的返回值会是一个BytesIO类型,方便作为后台程序使用。

以上这篇Python使用ffmpy将amr格式的音频转化为mp3格式的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
有趣的python小程序分享
Dec 05 Python
Python操作Redis之设置key的过期时间实例代码
Jan 25 Python
python smtplib发送带附件邮件小程序
May 22 Python
在dataframe两列日期相减并且得到具体的月数实例
Jul 03 Python
Python产生Gnuplot绘图数据的方法
Nov 09 Python
启动Atom并运行python文件的步骤
Nov 09 Python
解决django同步数据库的时候app models表没有成功创建的问题
Aug 09 Python
pygame库实现俄罗斯方块小游戏
Oct 29 Python
python opencv将表格图片按照表格框线分割和识别
Oct 30 Python
python中的TCP(传输控制协议)用法实例分析
Nov 15 Python
Python建造者模式案例运行原理解析
Jun 29 Python
selenium+超级鹰实现模拟登录12306
Jan 24 Python
Django rest framework jwt的使用方法详解
Aug 08 #Python
使用Python实现文字转语音并生成wav文件的例子
Aug 08 #Python
django基于restframework的CBV封装详解
Aug 08 #Python
python 控制Asterisk AMI接口外呼电话的例子
Aug 08 #Python
python 实现手机自动拨打电话的方法(通话压力测试)
Aug 08 #Python
Python generator生成器和yield表达式详解
Aug 08 #Python
利用python实现短信和电话提醒功能的例子
Aug 08 #Python
You might like
Laravel 5框架学习之表单
2015/04/08 PHP
Thinkphp连表查询及数据导出方法示例
2016/10/15 PHP
PHP实现的自定义数组排序函数与排序类示例
2016/11/18 PHP
图片按比例缩放函数
2006/06/26 Javascript
js如何取消事件冒泡
2013/09/23 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
2016/10/10 Javascript
vue.js评论发布信息可插入QQ表情功能
2017/08/08 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
2017/09/07 jQuery
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
Vue作用域插槽slot-scope实例代码
2018/09/05 Javascript
vue的keep-alive中使用EventBus的方法
2019/04/23 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
京东优选小程序的实现代码示例
2020/02/25 Javascript
JavaScript动态生成表格的示例
2020/11/02 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
Python编程求解二叉树中和为某一值的路径代码示例
2018/01/04 Python
selenium3+python3环境搭建教程图解
2018/12/07 Python
基于Python在MacOS上安装robotframework-ride
2018/12/28 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
如何通过python画loss曲线的方法
2019/06/26 Python
python在openstreetmap地图上绘制路线图的实现
2019/07/11 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
python利用JMeter测试Tornado的多线程
2020/01/12 Python
浅析Python 条件控制语句
2020/07/15 Python
python3中celery异步框架简单使用+守护进程方式启动
2021/01/20 Python
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
美国正宗奢华复古手袋、珠宝及配饰网站:What Goes Around Comes Around
2018/07/21 全球购物
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
2014/09/16 面试题
卫校毕业生个人自我鉴定
2014/04/28 职场文书
体育运动口号
2014/06/09 职场文书
开展党的群众路线教育实践活动情况汇报
2014/11/05 职场文书
中学生逃课检讨书
2015/02/17 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
windows server 2016 域环境搭建的方法步骤(图文)
2022/06/25 Servers