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 相关文章推荐
Linux RedHat下安装Python2.7开发环境
May 20 Python
django框架自定义用户表操作示例
Aug 07 Python
python构建基础的爬虫教学
Dec 23 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
Jan 23 Python
python移位运算的实现
Jul 15 Python
解决python 文本过滤和清理问题
Aug 28 Python
Python解析json代码实例解析
Nov 25 Python
python中的数组赋值与拷贝的区别详解
Nov 26 Python
python实现猜拳游戏
Mar 04 Python
Python函数基本使用原理详解
Mar 19 Python
python中子类与父类的关系基础知识点
Feb 02 Python
python异常中else的实例用法
Jun 15 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中实现简单的ACL 完结篇
2011/09/07 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
redis查看连接数及php模拟并发创建redis连接的方法
2016/12/15 PHP
javascript提取URL的搜索字符串中的参数(自定义函数实现)
2013/01/22 Javascript
深入浅出理解javaScript原型链
2015/05/09 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
2017/03/03 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
使用layui+ajax实现简单的菜单权限管理及排序的方法
2019/09/10 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
使用vue实现一个电子签名组件的示例代码
2020/01/06 Javascript
[04:03]辉夜杯主赛事 12月25日RECAP精彩回顾
2015/12/26 DOTA
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
Django中使用group_by的方法
2015/05/26 Python
在Django框架中编写Contact表单的教程
2015/07/17 Python
python 数据的清理行为实例详解
2017/07/12 Python
Python基于递归实现电话号码映射功能示例
2018/04/13 Python
python3解析库BeautifulSoup4的安装配置与基本用法
2018/06/26 Python
Python神奇的内置函数locals的实例讲解
2019/02/22 Python
Python实用库 PrettyTable 学习笔记
2019/08/06 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
python 实现让字典的value 成为列表
2019/12/16 Python
Python中filter与lambda的结合使用详解
2019/12/24 Python
python读取图片的几种方式及图像宽和高的存储顺序
2020/02/11 Python
Django Haystack 全文检索与关键词高亮的实现
2020/02/17 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
2020/02/26 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
2021/03/04 Python
Europcar比利时:租车
2019/08/26 全球购物
Linux常见面试题
2016/10/04 面试题
大学生演讲稿范文
2014/01/11 职场文书
《小石潭记》教学反思
2014/02/13 职场文书
消防安全员岗位职责
2014/03/10 职场文书
2014应届本科生自我评价
2014/09/13 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书