Python使用ffmpy将amr格式的音频转化为mp3格式的例子

作者:hectorli36 时间:2021-06-14 13:50:07 

最近做了一个项目,将从微信下载的音频文件(默认为.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类型,方便作为后台程序使用。

来源:https://blog.csdn.net/hectorli36/article/details/80885004

标签:Python,ffmpy,amr,mp3
0
投稿

猜你喜欢

  • Pandas.DataFrame的行名和列名的修改

    2022-10-12 12:40:35
  • 2007淘宝UED招聘题解(前端开发部分)

    2007-11-24 10:32:00
  • python包pdfkit(wkhtmltopdf) 将HTML转换为PDF的操作方法

    2022-11-14 18:37:28
  • python利用lxml库剩下操作svg图片

    2022-08-09 04:37:23
  • Python函数参数分类原理详解

    2022-02-26 17:05:57
  • php session_start()出错原因分析及解决方法

    2024-06-07 15:44:29
  • GO语言文件的创建与打开实例分析

    2024-05-21 10:21:19
  • Python如何转换字符串大小写

    2021-03-16 17:40:20
  • pytorch常见的Tensor类型详解

    2022-10-25 19:34:01
  • 解决出现SoapFault (looks like we got no XML document)的问题

    2023-11-19 04:21:01
  • Dreamweaver MX 2004 试用心得

    2010-03-25 12:21:00
  • Python导入数值型Excel数据并生成矩阵操作

    2023-05-15 16:59:24
  • 用ASP和SQL实现基于Web日历源码

    2010-04-24 15:52:00
  • python3 读写文件换行符的方法

    2021-09-29 11:21:22
  • Django配置跨域并开发测试接口

    2022-03-20 21:29:08
  • vue2项目中封装echarts地图的优雅方法

    2024-05-13 09:44:55
  • Python timeit模块的使用实践

    2023-09-15 00:36:55
  • 网页中的平衡、对比、连贯和留白

    2008-11-24 12:11:00
  • 用Python实现服务器中只重载被修改的进程的方法

    2022-06-21 05:11:38
  • Bootstrap每天必学之工具提示(Tooltip)插件

    2023-07-02 05:25:22
  • asp之家 网络编程 m.aspxhome.com