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笔记(叁)继续学习
Oct 24 Python
Python实现根据指定端口探测服务器/模块部署的方法
Aug 25 Python
Python实现SVN的目录周期性备份实例
Jul 17 Python
Python 模板引擎的注入问题分析
Jan 01 Python
对Python 文件夹遍历和文件查找的实例讲解
Apr 26 Python
对Python的多进程锁的使用方法详解
Feb 18 Python
Python Pandas数据中对时间的操作
Jul 30 Python
pytorch 批次遍历数据集打印数据的例子
Dec 30 Python
TensorFlow梯度求解tf.gradients实例
Feb 04 Python
python实现超级玛丽游戏
Mar 18 Python
Python模块常用四种安装方式
Oct 20 Python
教你用python控制安卓手机
May 13 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下通过POST还是GET来传值
2008/06/05 PHP
php数组保存文本与文本反编成数组实例
2014/11/13 PHP
PHP的命令行命令使用指南
2015/08/18 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
JS类库Bindows1.3中的内存释放方式分析
2007/03/08 Javascript
表单(FORM)的一些实用效果代码
2007/03/25 Javascript
JavaScript 拾碎[三] 使用className属性
2010/10/16 Javascript
用JSON做数据传输格式中的一些问题总结
2011/12/21 Javascript
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
2012/02/10 Javascript
JS实现简洁、全兼容的拖动层实例
2015/05/13 Javascript
javascript实现在线客服效果
2015/07/15 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
基于JavaScript实现TAB标签效果
2016/01/12 Javascript
基于javascript显示当前时间以及倒计时功能
2016/03/18 Javascript
javascript HTML5文件上传FileReader API
2020/03/27 Javascript
关闭Vue计算属性自带的缓存功能方法
2018/03/02 Javascript
Vue $emit $refs子父组件间方法的调用实例
2018/09/12 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
python实现获取序列中最小的几个元素
2014/09/25 Python
python调用机器喇叭发出蜂鸣声(Beep)的方法
2015/03/23 Python
浅析Python函数式编程
2018/10/06 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
2018/12/04 Python
pyinstaller打包单个exe后无法执行错误的解决方法
2019/06/21 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
调用HTML5的Canvas API绘制图形的快速入门指南
2016/06/17 HTML / CSS
美国顶级奢侈茶:Mighty Leaf Tea(美泰茶)
2016/11/26 全球购物
PatPat德国:妈妈的每日优惠
2019/10/02 全球购物
如何做好总经理助理
2013/11/12 职场文书
总裁办公室主任职责
2014/01/02 职场文书
幼儿园小班评语
2014/04/18 职场文书
经济类毕业生求职信
2014/06/26 职场文书
公司党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
初一数学教学反思
2016/02/17 职场文书
python opencv旋转图片的使用方法
2021/06/04 Python
PostgreSQL解析URL的方法
2021/08/02 PostgreSQL
Mongodb 迁移数据块的流程介绍分析
2022/04/18 MongoDB