最近做了一個項目,將從微信下載的音頻文件(默認為.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格式的例子就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
