最近做了一个项目,将从微信下载的音频文件(默认为.amr格式)转化为mp3格式(否则前端播放将会遇到困难)上传到云端。经过一番研究,最终决定采用Python的ffmpy包。

安装只需执行

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使用ffmpy将amr格式的音频转化为mp3格式的例子...相关推荐

  1. Python使用ffmpy将amr格式的音频转化为mp3格式

    最近做了一个项目,将从微信下载的音频文件(默认为.amr格式)转化为mp3格式(否则前端播放将会遇到困难)上传到云端.经过一番研究,最终决定采用Python的ffmpy包. 首先是ffmpy的文档:h ...

  2. aac是什么音频格式?aac转化为mp3方法

    aac是什么音频格式?AAC是一种高级音频编码的音频文件,发布于1997年,基于MPEG-2的音频编码技术,aac采用了全新的算法进行编码,更加高效.与mp3格式相比,aac也是属于有损压缩的音频格式 ...

  3. python 将excel文件转换为txt文件_python利用pandas将excel文件转换为txt文件的方法

    python将数据换为txt的方法有很多,可以用xlrd库实现.本人比较懒,不想按太多用的少的插件,利用已有库pandas将excel文件转换为txt文件. 直接上代码: ''' function:将 ...

  4. python切割音频文件_python切割和合并wav音频文件

    切割wav音频文件 如果没有pydub需要使用pip install pydub来安装模块 from pydub import AudioSegment from pydub.utils import ...

  5. python打开音频文件_Python处理音频文件的实用姿势

    每天叫醒我的不是理想,是楼下广场舞的音乐. 音乐是人类的通用语言,不分国界不分种族. 抖音短视频爆火的关键因素之一,就是普通人也能便捷地使用BGM表达自我. 从感性角度看,音乐可以有很多种解释,如:音 ...

  6. python保存数据到本地文件_python保存数据到本地文件的方法

    python保存数据到本地文件的方法 1.保存列表为.txt文件 #1/list写入txt ipTable = ['158.59.194.213', '18.9.14.13', '58.59.14.2 ...

  7. python以读写方式打开文件_python读写文件操作详细介绍【传智播客】

    Python文件的打开或创建可以使用函数open().该函数可以指定处理模式,设置打开的文件为只读.只写或可读写状态.open()的声明如下所示. open(file, mode='r', buffe ...

  8. python图片保存为txt文件_python + opencv实现提取png图像的像素信息并存储到txt文件中(附安装指导)...

    相关库安装指导: 这里我们需要 opencv_python,numpy,matplotlib库,另外我用的是python3.6.1版本. 一般库大家都是用pip install命令安装的,不过不知道为 ...

  9. python将字符串写入txt文件_python将字符串以utf-8格式保存在txt文件中的方法

    python将字符串以utf-8格式保存在txt文件中的方法 如下所示: #ltp_data 字符串 写进777.txt 1. def save(filename, contents): fh = o ...

最新文章

  1. 【NIO】缓存区buffer
  2. 比特币官网管理者因支持BCH被建议移交权限
  3. 如何使用Jekyll+GitHub Pages搭建个人博客站点
  4. 在ROS中开始自主机器人仿真 - 2 让turtlebot跑起来
  5. 用Fidder实现IOS手机抓包
  6. 2017蓝桥杯c语言C组承压计算,蓝桥杯2017Java B组---分巧克力and承压计算
  7. IoC反转控制初步认识
  8. 解析Tensorflow官方PTB模型的demo
  9. DLM - stackglue 层
  10. 操作系统—内存的连续分配管理方式
  11. HQL (迫切)左外连接
  12. mysql查询结果输出到文件
  13. 大数据开发之路:hive篇,你看了吗?
  14. java 校验银行卡号_Java + OpenCV 实现银行卡号识别 (3)
  15. mysql异常-SQLSTATE[HY000]: General error: 1436 Thread stack overrun
  16. centos 7 DVD版设置基础软件仓库出错(error setting up base repository)
  17. HUAWEI P10/P10 Plus的摄影追求:极致是如何“创造”的?
  18. 【数据结构】01-绪论《数据结构 C语言版(严蔚敏、吴伟民)》
  19. 删除win7资源管理器左侧家庭组/导航窗口的收藏夹、库、家庭组以及网络的方法
  20. 【ReID】Harmonious Attention Network for Person Re-Identification

热门文章

  1. 使用Example_where_Cause出现 Column 'goods_id' in where clause is ambiguous解决办法
  2. Qt::Painter 详解
  3. SpringBoot 配置文件加密的两种方式
  4. 使用Processing实现井字棋
  5. 学校的校园景点平面图(校园景点迷你地图C++数据结构)(查询图中顶点间的最短路径查询图中任意两个顶点间的所有路径)
  6. 百度离破产只有30天
  7. 令人拍案叫绝的Wasserstein GAN(转载)
  8. 使用arch-anywhere来安装arch
  9. 从小白到web渗透工程师——零基础指南(2)sql注入漏洞
  10. vscode实现边写边查