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 相关文章推荐
win7安装python生成随机数代码分享
Dec 27 Python
python使用线程封装的一个简单定时器类实例
May 16 Python
详解python之简单主机批量管理工具
Jan 27 Python
Python多线程经典问题之乘客做公交车算法实例
Mar 22 Python
python实现NB-IoT模块远程控制
Jun 20 Python
Sanic框架路由用法实例分析
Jul 16 Python
python 自动去除空行的实例
Jul 24 Python
对python中的argv和argc使用详解
Dec 15 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
Sep 17 Python
python使用turtle库绘制奥运五环
Feb 24 Python
Django模板标签中url使用详解(url跳转到指定页面)
Mar 19 Python
python 生成器需注意的小问题
Sep 29 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
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
小文件php+SQLite存储方案
2010/09/04 PHP
写出高质量的PHP程序
2012/02/04 PHP
简单的php中文转拼音的实现代码
2014/02/11 PHP
php setcookie函数的参数说明及其用法
2014/04/20 PHP
PHPCMS忘记后台密码的解决办法
2016/10/30 PHP
php ajax confirm 删除实例详解
2019/03/06 PHP
javascript中的继承实例代码
2011/04/27 Javascript
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
js字母大小写转换实现方法总结
2013/11/13 Javascript
我的Node.js学习之路(四)--单元测试
2014/07/06 Javascript
在JavaScript中重写jQuery对象的方法实例教程
2014/08/25 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
jquery中radio checked问题
2015/03/16 Javascript
深入理解JavaScript编程中的同步与异步机制
2015/06/24 Javascript
基于jquery实现简单的手风琴特效
2015/11/24 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
2016/06/06 Javascript
js本地图片预览实现代码
2016/10/09 Javascript
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
JS实现计算小于非负数n的素数的数量算法示例
2019/02/26 Javascript
详细讲解如何创建, 发布自己的 Vue UI 组件库
2019/05/29 Javascript
详解element-ui中el-select的默认选择项问题
2019/08/02 Javascript
微信小程序实现日历签到
2020/09/21 Javascript
[02:52]2017DOTA2国际邀请赛中国区预选赛晋级之路
2017/07/03 DOTA
Python计算字符宽度的方法
2016/06/14 Python
网站渗透常用Python小脚本查询同ip网站
2017/05/08 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
python 画3维轨迹图并进行比较的实例
2019/12/06 Python
Python3实现mysql连接和数据框的形成(实例代码)
2020/01/17 Python
基于python连接oracle导并出数据文件
2020/04/28 Python
DeinDesign德国:设计自己的手机壳
2019/12/14 全球购物
英语专业学生个人求职信范文
2014/01/06 职场文书
企业授权委托书范本
2014/04/02 职场文书
村长贪污检举信
2014/04/04 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书