Python使用ffmpy將amr格式的音頻轉(zhuǎn)化為mp3格式的例子
最近做了一個(gè)項(xiàng)目,將從微信下載的音頻文件(默認(rèn)為.amr格式)轉(zhuǎn)化為mp3格式(否則前端播放將會(huì)遇到困難)上傳到云端。經(jīng)過(guò)一番研究,最終決定采用Python的ffmpy包。
首先是ffmpy的文檔:http://ffmpy.readthedocs.io/en/latest/index.html
安裝只需執(zhí)行
pip install ffmpy
注意,ffmpy只是命令行工具FFmpeg的一個(gè)包裝,若要成功執(zhí)行任務(wù),還需要安裝FFmpeg
在Ubuntu上:
sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next sudo apt-get update sudo apt-get install ffmpeg
查看是否安裝成功:
ffmpeg -versionx
下面是一個(gè)很簡(jiǎn)單的例子,這里沒(méi)有對(duì)轉(zhuǎn)音頻的質(zhì)量等具體參數(shù)進(jìn)行設(shè)置,全部都是用的默認(rèn)選項(xiàng)。建議由這類(lèi)需求的朋友們參考一下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
這里有一點(diǎn),由于ffmpy只是一個(gè)命令行的wrapper,所以無(wú)法對(duì)BytesIO進(jìn)行操作,這里只能先把二進(jìn)制文件寫(xiě)到硬盤(pán)上進(jìn)行操作,轉(zhuǎn)換完后再把文件刪除。最后的返回值會(huì)是一個(gè)BytesIO類(lèi)型,方便作為后臺(tái)程序使用。
以上這篇Python使用ffmpy將amr格式的音頻轉(zhuǎn)化為mp3格式的例子就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python異步編程入門(mén)之實(shí)現(xiàn)文件批處理的并發(fā)處理方式
本文以Python初級(jí)程序員為對(duì)象,介紹了如何使用asyncio和logging模塊實(shí)現(xiàn)一個(gè)異步批處理文件的并發(fā)處理系統(tǒng),以提高處理大量文件或數(shù)據(jù)時(shí)的效率,其中,通過(guò)配置日志系統(tǒng)記錄處理文件的日志信息,定義AsyncBatchProcessor類(lèi)控制并發(fā)任務(wù)的數(shù)量2024-10-10
Python3.0與2.X版本的區(qū)別實(shí)例分析
這篇文章主要介紹了Python3.0與2.X版本的區(qū)別,包含了一些常見(jiàn)的區(qū)別及分析,還有筆者的一些感悟,需要的朋友可以參考下2014-08-08
Python使用Turtle圖形函數(shù)畫(huà)圖顏色填充實(shí)例
這篇文章主要介紹了Python使用Turtle圖形函數(shù)畫(huà)圖顏色填充實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
python 自動(dòng)刷新網(wǎng)頁(yè)的兩種方法
這篇文章主要介紹了python 自動(dòng)刷新網(wǎng)頁(yè)的兩種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Python 抓取數(shù)據(jù)存儲(chǔ)到Redis中的操作
這篇文章主要介紹了Python 抓取數(shù)據(jù)存儲(chǔ)到Redis中的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
pycharm快捷鍵自動(dòng)提示documentation問(wèn)題(auto?Ctrl+Q)
這篇文章主要介紹了pycharm快捷鍵自動(dòng)提示documentation問(wèn)題(auto?Ctrl+Q),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04

