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程序设计入门(4)模块和包
Jun 16 Python
9种python web 程序的部署方式小结
Jun 30 Python
python使用webbrowser浏览指定url的方法
Apr 04 Python
python模拟Django框架实例
May 17 Python
python中使用正则表达式的连接符示例代码
Oct 10 Python
浅谈Python使用Bottle来提供一个简单的web服务
Dec 27 Python
在python win系统下 打开TXT文件的实例
Apr 29 Python
Python通过调用有道翻译api实现翻译功能示例
Jul 19 Python
python requests使用socks5的例子
Jul 25 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
Aug 01 Python
Django自定义用户表+自定义admin后台中的字段实例
Nov 18 Python
Python基础教程之输入输出和运算符
Jul 26 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
一个捕获函数输出的函数
2007/02/14 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
2014/07/11 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
PHP实现执行外部程序的方法详解
2017/08/17 PHP
javascript 解析后的xml对象的读取方法细解
2009/07/25 Javascript
javascript Window及document对象详细整理
2011/01/12 Javascript
jQuery使用动态渲染表单功能完成ajax文件下载
2013/01/15 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
jQuery实现下滑菜单导航效果代码
2015/08/25 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
2017/02/27 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
详解es6超好用的语法糖Decorator
2018/08/01 Javascript
js对象简介与基本用法示例
2020/03/13 Javascript
[54:02]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 IG vs VGJ.T
2018/04/03 DOTA
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
python基础知识小结之集合
2015/11/25 Python
使用Python读写文本文件及编写简单的文本编辑器
2016/03/11 Python
浅谈Pandas 排序之后索引的问题
2018/06/07 Python
如何利用Python分析出微信朋友男女统计图
2019/01/25 Python
keras导入weights方式
2020/06/12 Python
M1芯片安装python3.9.1的实现
2021/02/02 Python
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
俄罗斯园林植物网上商店:Garshinka
2020/07/16 全球购物
简单说说tomcat的配置
2013/05/28 面试题
c++工程师面试问题
2013/08/04 面试题
物业经理求职自我评价
2013/09/22 职场文书
企业演讲稿范文
2013/12/28 职场文书
超市仓管员岗位职责
2014/04/07 职场文书
三年级评语大全
2014/04/23 职场文书
学习教师敬业奉献模范事迹材料思想汇报
2014/09/19 职场文书
2014幼儿园教育教学工作总结
2014/12/17 职场文书
小学见习报告
2015/06/23 职场文书
环境卫生标语
2015/08/03 职场文书