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函数缺省值与引用学习笔记分享
Feb 10 Python
Python中为feedparser设置超时时间避免堵塞
Sep 28 Python
用Python从零实现贝叶斯分类器的机器学习的教程
Mar 31 Python
Python中为什么要用self探讨
Apr 14 Python
探究Python多进程编程下线程之间变量的共享问题
May 05 Python
你所不知道的Python奇技淫巧13招【实用】
Dec 14 Python
python发送邮件实例分享
Jul 28 Python
Python读取系统文件夹内所有文件并统计数量的方法
Oct 23 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
Mar 30 Python
Python控制台实现交互式环境执行
Jun 09 Python
python 逐步回归算法
Apr 06 Python
python 实现图与图之间的间距调整subplots_adjust
May 21 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模板引擎Smarty的缓存使用总结
2014/04/24 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
2014/11/11 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
2018/06/04 PHP
jquery.post用法示例代码
2014/01/03 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
javascript精确统计网站访问量实例代码
2015/12/19 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
2016/12/13 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
js实现随机数字字母验证码
2017/06/19 Javascript
react中fetch之cors跨域请求的实现方法
2018/03/14 Javascript
angular 内存溢出的问题解决
2018/07/12 Javascript
详解Vue取消eslint语法限制
2018/08/04 Javascript
vue 翻页组件vue-flip-page效果
2020/02/05 Javascript
Vue2.0 $set()的正确使用详解
2020/07/28 Javascript
小程序中手机号识别的示例
2020/12/14 Javascript
详解Python验证码识别
2016/01/25 Python
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
Python中判断输入是否为数字的实现代码
2018/05/26 Python
使用python绘制温度变化雷达图
2019/10/18 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
2019/12/12 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
2020/05/26 Python
Python使用lambda抛出异常实现方法解析
2020/08/20 Python
python中yield的用法详解
2021/01/13 Python
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
简历的自我评价
2014/02/03 职场文书
关于环保的建议书
2014/05/12 职场文书
娱乐节目策划方案
2014/06/10 职场文书
2015年端午节活动总结
2015/02/11 职场文书
大学生实习推荐信
2015/03/27 职场文书
物业工程部主管岗位职责
2015/04/16 职场文书
《实心球》教学反思
2016/02/23 职场文书
Python 视频画质增强
2022/04/28 Python
JS实现简单九宫格抽奖
2022/06/28 Javascript