Python使用ffmpy將amr格式的音頻轉(zhuǎn)化為mp3格式的例子
最近做了一個項目,將從微信下載的音頻文件(默認為.amr格式)轉(zhuǎn)化為mp3格式(否則前端播放將會遇到困難)上傳到云端。經(jīng)過一番研究,最終決定采用Python的ffmpy包。
首先是ffmpy的文檔:http://ffmpy.readthedocs.io/en/latest/index.html
安裝只需執(zhí)行
pip install ffmpy
注意,ffmpy只是命令行工具FFmpeg的一個包裝,若要成功執(zhí)行任務,還需要安裝FFmpeg
在Ubuntu上:
sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next sudo apt-get update sudo apt-get install ffmpeg
查看是否安裝成功:
ffmpeg -versionx
下面是一個很簡單的例子,這里沒有對轉(zhuǎn)音頻的質(zhì)量等具體參數(shù)進行設置,全部都是用的默認選項。建議由這類需求的朋友們參考一下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進行操作,這里只能先把二進制文件寫到硬盤上進行操作,轉(zhuǎn)換完后再把文件刪除。最后的返回值會是一個BytesIO類型,方便作為后臺程序使用。
以上這篇Python使用ffmpy將amr格式的音頻轉(zhuǎn)化為mp3格式的例子就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python數(shù)學建模PuLP庫線性規(guī)劃入門示例詳解
這篇文章主要為大家介紹了Python數(shù)學建模PuLP庫線性規(guī)劃入門示例詳解,想學習關于Python建模的同學可以學習參考下,希望能夠有所幫助2021-10-10
python中的opencv和PIL(pillow)轉(zhuǎn)化操作
這篇文章主要介紹了python中的opencv和PIL(pillow)轉(zhuǎn)化操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Python 使用PIL numpy 實現(xiàn)拼接圖片的示例
今天小編就為大家分享一篇Python 使用PIL numpy 實現(xiàn)拼接圖片的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
python使用正則搜索字符串或文件中的浮點數(shù)代碼實例
這篇文章主要介紹了python使用正則搜索字符串或文件中的浮點數(shù)代碼實例,同時包含一個讀寫到文件功能,需要的朋友可以參考下2014-07-07

