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判断IP地址合法性的方法实例
Mar 13 Python
Python函数式编程指南(一):函数式编程概述
Jun 24 Python
Python 爬虫的工具列表大全
Jan 31 Python
基于循环神经网络(RNN)实现影评情感分类
Mar 26 Python
python中的decimal类型转换实例详解
Jun 26 Python
Python使用type关键字创建类步骤详解
Jul 23 Python
python实现机器人卡牌
Oct 06 Python
pytorch实现对输入超过三通道的数据进行训练
Jan 15 Python
使用keras时input_shape的维度表示问题说明
Jun 29 Python
Python+OpenCV图像处理—— 色彩空间转换
Oct 22 Python
Python爬虫之Selenium下拉框处理的实现
Dec 04 Python
Python实现疫情地图可视化
Feb 05 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/03/02 国漫
jQuery事件 delegate()使用方法介绍
2012/10/30 Javascript
JavaScript中window、doucment、body的解释
2013/08/14 Javascript
js控制不同的时间段显示不同的css样式的实例代码
2013/11/04 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
JS实现可展开折叠层的鼠标拖曳效果
2015/10/09 Javascript
js操作cookie保存浏览记录的方法
2015/12/25 Javascript
浅析JavaScript Array和string的转换(推荐)
2016/05/20 Javascript
jQuery EasyUI封装简化操作
2016/09/18 Javascript
用自定义图片代替原生checkbox实现全选,删除以及提交的方法
2016/10/18 Javascript
微信小程序 登录实例详解
2017/01/16 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
2020/10/29 Javascript
Python 中迭代器与生成器实例详解
2017/03/29 Python
使用Python读取大文件的方法
2018/02/11 Python
TensorFlow实现RNN循环神经网络
2018/02/28 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
PyTorch的自适应池化Adaptive Pooling实例
2020/01/03 Python
pytorch加载自定义网络权重的实现
2020/01/07 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
python把一个字符串切开的实例方法
2020/09/27 Python
Joe Fresh官网:加拿大时尚品牌和零售连锁店
2016/11/30 全球购物
美国演唱会订票网站:Ticketmaster美国
2017/10/05 全球购物
Gina Bacconi官网:吉娜贝康尼连衣裙和礼服
2018/04/24 全球购物
Bitiba意大利:在线宠物商店
2020/10/31 全球购物
物业管理计划书
2014/01/10 职场文书
经济管理毕业生求职信
2014/03/15 职场文书
五四青年节演讲稿
2014/05/26 职场文书
防灾减灾宣传标语
2014/10/07 职场文书
党支部四风整改方案
2014/10/25 职场文书
见习期个人总结
2015/03/05 职场文书
采购员岗位职责范本
2015/04/07 职场文书
公司酒会主持词
2015/07/02 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书