再看那柔弱的柳树吧,在寒冬余威尚盛时节,就早早苏醒过来,望着冰冻的河面,迎着凛冽的寒风,它微微察觉出一丝春意,于是,不顾一切地率先吐翠,淡淡地披起娇黄嫩绿的新装。沿河望去,枝梢间烟纱雾彀,一片生机,这情景仿佛一首动人的歌,一首热烈向往春天的歌,一首报告春的信息的歌,一首表达美好信念的歌。我在想:既然迎春花被人称作报春花,那么,柳树可不可以叫作报春树呢春来了,万千柳枝在春风中袅袅舞动。柳树是热爱春天的,春天也是热爱柳树的。
最近做了一个项目,将从微信下载的音频文件(默认为.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格式的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。