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 相关文章推荐
python3访问sina首页中文的处理方法
Feb 24 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
Feb 13 Python
DataFrame中的object转换成float的方法
Apr 10 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
Apr 27 Python
可能是最全面的 Python 字符串拼接总结【收藏】
Jul 09 Python
python实现屏保计时器的示例代码
Aug 08 Python
python之线程通过信号pyqtSignal刷新ui的方法
Jan 11 Python
OpenCV+face++实现实时人脸识别解锁功能
Aug 28 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
Sep 17 Python
Django实现文件上传下载功能
Oct 06 Python
python opencv实现信用卡的数字识别
Jan 12 Python
使用openCV去除文字中乱入的线条实例
Jun 02 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
关于php curl获取301或302转向的网址问题的解决方法
2011/06/02 PHP
php实现的操作excel类详解
2016/01/15 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
2016/12/14 PHP
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
JavaScript中的事件委托及好处
2016/07/12 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
2018/06/25 Javascript
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
2019/04/10 Javascript
antd配置config-overrides.js文件的操作
2020/10/31 Javascript
nestjs返回给前端数据格式的封装实现
2021/02/22 Javascript
python中django框架通过正则搜索页面上email地址的方法
2015/03/21 Python
pymongo为mongodb数据库添加索引的方法
2015/05/11 Python
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
Python实现字符串格式化的方法小结
2017/02/20 Python
深入理解Python中的*重复运算符
2017/10/28 Python
Python入门之三角函数全解【收藏】
2017/11/08 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
python调用java的jar包方法
2018/12/15 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
python如何编写类似nmap的扫描工具
2020/11/06 Python
Django model class Meta原理解析
2020/11/14 Python
html5调用app分享功能示例(WebViewJavascriptBridge)
2018/03/21 HTML / CSS
万豪国际住宅与别墅集团:Homes & Villas by Marriott International
2020/10/08 全球购物
理工科学生的自我评价
2013/12/15 职场文书
精彩的演讲稿开头
2014/05/08 职场文书
大学生党员自我批评思想汇报
2014/10/10 职场文书
2014购房个人委托书范本
2014/10/12 职场文书
重阳节活动主持词
2015/07/04 职场文书
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021/06/22 Python
mysql分表之后如何平滑上线详解
2021/11/01 MySQL
Go语言基础切片的创建及初始化示例详解
2021/11/17 Golang