本文目錄一覽:
- 1、怎麼通過ffmpeg將音頻文件轉換成Mp3 轉
- 2、Python pydub音頻處理
- 3、如何使用命令行工具將MP3文件轉換為wav?
- 4、如何將mp3格式轉換成wav格式?
- 5、如何將MP3格式的音頻轉換為WAV格式
- 6、怎樣使用FFMPEG將WAV轉碼成其他格式
怎麼通過ffmpeg將音頻文件轉換成Mp3 轉
安裝完成ffmpeg後,就可以使用ffmpeg進行音頻文件格式轉換。比如 ./ffmpeg -i /media/1.mp3 /media/1.wav, 通過該命令行可以將/media文件夾下1.mp3文件轉換成WAV格式的。
但是反過來 ./ffmpeg -i /media/1.WAV /media/1.MP3 卻不能轉換成Mp3格式,提示如下錯誤(找不到編碼器):
Stream mapping:
Stream #0:0 – #0:0 (wav – ?)
Encoder (codec none) not found for output stream #0:0
如果強行指定編碼器 ./ffmpeg -i /media/1.wav -acodec mp3 /media/1.mp3, 仍提示找不到編碼器錯誤:
Unknown encoder ‘mp3’
這是因為,ffmpeg雖然是個開源軟件,但因為具體格式的版權原因,它並沒有包含所有的編解碼格式,或者有個格式只有對應的解碼器,但沒有編碼器,比如 Mp3就只有解碼器,能播放Mp3文件,但卻沒有Mp3的編碼器,無法將其它格式轉換成Mp3。可以通過命令行 ./ffmpeg -codecs 查詢編解碼配置,第一個D表示Decoder,該格式能夠解碼;E表示Encoder,該格式可以編碼。從中可以看出Mp3不能編碼,Mp2倒是即可解碼 也可編碼。如何解決這個問題呢?
D A D mp1 MP1 (MPEG audio layer 1)
D A D mp1float MP1 (MPEG audio layer 1)
DEA D mp2 MP2 (MPEG audio layer 2)
D A D mp2float MP2 (MPEG audio layer 2)
D A D mp3 MP3 (MPEG audio layer 3)
D A D mp3adu ADU (Application Data Unit) MP3 (MPEG audio layer 3)
D A D mp3adufloat ADU (Application Data Unit) MP3 (MPEG audio layer 3)
我的第一個方法是自己寫代碼來完成。源碼文件中,Allcodecs.c中對各個格式進行註冊,先修改Mp3的註冊行,改為同時註冊解碼器和編碼器:
REGISTER_ENCDEC (MP2, mp2);
REGISTER_DECODER (MP2FLOAT, mp2float);
REGISTER_DECODER (MP3, mp3) // 此行修改為 REGISTER_ENCDEC (MP3, mp3)
然後新增Mp3編碼器的實現Struct,裡面Init函數、encode函數、close函數使用Mp2的函數,因為我也不知道如何去實現Mp3的函數,或者說到代碼實現級我也不知道Mp3和Mp2的區別在哪。
AVCodec ff_mp3_encoder = {
.name = “mp3”,
.type = AVMEDIA_TYPE_AUDIO,
.id = CODEC_ID_MP3,
.priv_data_size = sizeof(MpegAudioContext),
.init = MPA_encode_init,
.encode = MPA_encode_frame,
.close = MPA_encode_close,
.sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE},
.supported_samplerates= (const int[]){44100, 48000, 32000, 22050, 24000, 16000, 0},
.long_name = NULL_IF_CONFIG_SMALL(“MP3 (MPEG audio layer 3)”),
.defaults = mp3_defaults,
};
重新編譯上線。 用命令行./ffmpeg -i /media/1.WAV /media/1.MP3 試了一下,能成功生成1.mp3文件,文件也能播放。似乎沒有問題了,單用 file /media/1.mp3 查看了一下,發現文件不是Mp3格式的,而是Mp2格式的:
/media/1.mp3: MPEG ADTS, layer II, v1, 128 kbps, 44.1 kHz, Stereo
很遺憾,自行修改代碼的方式行不通,因為不是每個編解碼格式協議的專家,自行修改代碼失敗的風險很大,不僅是Mp3,還有一些其他格式比如AMR OGG H.263是沒有編碼器的。所以,第二個方案,使用成熟的第三方編碼器和ffmpeg結合。
Mp3比較好的開源第三方庫是libmp3lame(簡稱Lame)。我下了一個最新版本(3.99.4)的Lame源碼,編譯它:
首先配置: ./configure –prefix=/shared –enable-shared –enable-static
然後編譯: make
make install
生成文件: 動態鏈接庫 /shared/lib/libmp3lame.so 和 靜態鏈接庫 /shared/lib/libmp3lame.a。這裡只需要使用動態鏈接庫,將.so文件拷貝到/lib中,這個文件夾是動態鏈接庫的默認搜索路徑, 讓ffmpeg運行時可以找到。
然後對ffmpeg配置libmp3lame: ./configure –enable-libmp3lame
重新編譯ffmpeg,運行轉化命令,看看效果如何。
首先執行 ./ffmpeg -codecs 查看可用編解碼的變化,可以看到多出了libmp3lame編碼器,帶E的:
D V D lagarith Lagarith lossless
EA libmp3lame libmp3lame MP3 (MPEG audio layer 3)
EV ljpeg Lossless JPEG
D V D loco LOCO
然後執行 ./ffmpeg -i /media/1.WAV /media/1.MP3, 生成1.mp3,用File命令查看,確實是Mp3文件。
/media/1.mp3: Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, v1, 128 kbps, 44.1 kHz, Stereo
大功告成,問題解決。
也可在命令行中指定編解碼生成Mp3文件:./ffmpeg -i /media/1.WAV -acodec libmp3lame /media/1.MP3.
Python pydub音頻處理
Pydub可以讓你用簡單的方式處理音頻。
Pydub提供了簡潔的高層接口,極大的擴展了python處理音頻文件的能力。
GitHub鏈接: pydub-github
GitHub:
pydub的使用必須安裝對應的依賴軟件 ffmpeg 或 avconv
驗證是否安裝成功:
Open a WAV file
Open a mp3 file
Open a other file
切割音頻
分貝操作
分貝(decibel)是量度兩個相同單位之數量比例的計量單位,主要用於度量聲音強度,常用dB表示。
音頻鏈接
將一個文件添加到另一個文件的末尾
音頻長度
淡入淡出
重複音頻
再次淡入淡出
直接保存
所有ffmpeg支持的都支持
用標籤保存結果(元數據)
實例:
將mp3文件轉換成wav文件:
Python音頻處理庫 pydub
如何使用命令行工具將MP3文件轉換為wav?
處理音頻格式這必然離不開音頻編輯軟件來製作了,你們知道是如何操作的嗎?今天的這邊文章就是以圖文並茂的形式給大家展現出來,就是讓更多的夥伴可以學習到知識,感興趣的寶寶們可以和小編一起往下看啦!
操作步驟:
1、在我們的電腦上下載並安裝迅捷音頻轉換器
2、雙擊打開軟件界面,手機號註冊獲取短信驗證碼登錄軟件或者用第三方登錄平台微信/QQ授權軟件直接登錄。
3、登錄完成之後找到音頻轉換然後再通過“添加文件”按鈕將需要添加的音頻文件進行添加進去即可。
4、軟件右上方的功能編輯欄對已添加的音頻文件進行編輯處理,在選擇輸出格式中找到WAV,再根據自己喜歡對下方的音頻質量以及音頻進行設置最後開始轉換就可以了。
如何將mp3格式轉換成wav格式?
將MP3格式轉換成WAV格式的方法如下:
(1)MP3格式和WAV格式都是屬於音頻格式的一種,要把MP3格式轉換成WAV格式,可以通過一些視頻音頻轉換軟件來轉換,比如:格式工廠 ,超級轉換秀,狸窩全能視頻轉換器,萬能視頻轉換器(Total Video Converter) v5.0.6,等,即可。(下面以格式工廠為例)
(2) 具體方法如下: 首先在電腦上下載一個視頻音頻轉換軟件“格式工廠”,然後安裝並打開,選擇音頻轉換模式中的“所有轉到WAV”,然後把MP3格式的音頻 直接拖入這個窗口,點確定,就可以將MP3轉換成WAV格式,即可。(如下圖)
如何將MP3格式的音頻轉換為WAV格式
將MP3轉換為WAV的軟件,可以用【風雲音頻處理大師】完成。
雙擊打開軟件,選擇音頻轉換功能。
選鉛游擇軟件界面中間的添加文件將MP3音頻文件添加進軟件李歷中或者將MP3音頻文件選中拖拽進軟件界面都可以。
將輸出格式設置為WAV。
設置輸出路徑,哪激搜選擇是源目錄儲存還是自定義文件夾存儲轉換好的WAV文哪激搜件。設置完成後,點擊開始處理
等待轉換完成後,點擊打開文件。對轉換的WAV音頻文件進行查看。
怎樣使用FFMPEG將WAV轉碼成其他格式
MP3大家一定很熟悉,但要將WAV格式的聲音文件轉換成MP3格式,你可能首先想到的是找專門的格式轉換工具,其實不必那麼複雜,你身邊就有一個現成的工具,這就是Windows附件中所帶的“錄音機”,使用這個工具能最簡便實現WAV格式轉為MP3格式,具體操作方法如下: 依次單擊“開始→程序→附件→娛樂→錄音機”,打開錄音機程序,然後單擊文件菜單,從文件中打開需要轉換的WAV文件,再單擊“文件→另存為”,在“另存為”對話框中單擊“更改”按鈕,在“格式”框中選擇“MPEGLayer-3”格式,一切就OK了。在轉換時,如果想控制文件大小,如想讓聲音更好聽或要使文件更加小巧,可以在窗口的“聲音選定”中選擇其中的“屬性”,在該欄中選擇更低或更高的採樣頻率就可以了,怎麼樣,是不是很方便,快試一試吧轉好以後文件名重命名為.mp3
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/197066.html