ffmpeg經常使用轉換命令,支持WAV轉AMR

音頻轉換:html

1.轉換amr到mp3:tcp

ffmpeg -i shenhuxi.amr amr2mp3.mp3

2.轉換amr到wav:測試

ffmpeg -acodec libamr_nb -i shenhuxi.amr amr2wav.wav

3.轉換mp3到wav:編碼

ffmpeg -i DING.mp3 -f wav test.wav

4.轉換wav到amr:spa

ffmpeg -i test.wav -acodec libamr_nb -ab 12.2k -ar 8000 -ac 1 wav2amr.amr

ffmpeg.exe -i PA003.wav -ar 8000 -ab 12.2k -ac 1 target.amr  此方法驗證經過 
文章來自http://blog.csdn.net/tylz04/article/details/9041739
測試程序下載:http://files.cnblogs.com/xiaofengfeng/WavConvertAmr.zip 已測試過將WAV轉AMR格式。
下載地址http://ftp.pconline.com.cn/d56bb83a0a66440d54ef5473f548e4b9/pub/download/201010/ffmpeg-20131021.zip

5.轉換wav到mp3:.net

ffmpeg -i test.wav -f mp3 -acodec libmp3lame -y wav2mp3.mp3

視頻轉換:code

1.轉換wmv到mp4:視頻

ffmpeg -i sample.wmv -vcodec libx264 -acodec aac out.mp4

2.抓取H264視頻流:server

ffmpeg -i sample.flv -vcodec copy -vbsf h264_mp4toannexb -an out.h264

 2.1 vbsf爲過濾方法,即將flv規定的H264組織方式轉換回H264協議書規定的字節流格式  2.2 -an 禁掉源文件中的音頻,由於出來的碼流不須要音頻  2.3 vcodec copy這個是必然的htm

3.將H264視頻流轉爲mp4:

ffmpeg -i sample.h264 -f mp4 haha.mp4

4.接收rtsp並存爲視頻文件:

ffmpeg -rtsp_transport tcp -i rtsp://streaming1.osu.edu/media2/ufsap/ufsap.mov -vcodec copy -acodec copy -t 30 -f mp4 rtsp-out.mp4

4.1 -rtsp_transport tcp:指明傳輸方式是tcp方式(也能夠是udp)

4.2 -t 30:指明我錄製30秒

 

 

ffmpeg將音頻或視頻編碼爲AMR格式音頻

Android編碼的MP4音頻格式可能爲AMR,這時候用如下命令能夠從MP4中直接提取AMR音頻:

ffmpeg -i test.mp4 -c:a copy test.amr

將其餘格式的音頻或視頻轉成AMR的命令:

新寫法:

ffmpeg -i test.mp4 -c:a libopencore_amrnb -ac 1 -ar 8000 -b:a 12.20k -y test.amr

舊寫法:

ffmpeg -i test.mp4 -acodec libopencore_amrnb -ac 1 -ar 8000 -ab 12.20k -y test.amr

 

 

 

 

系統環境:Suse 64bit OS 前期準備: 一、  下載ffmpeg源代碼:http://ffmpeg.org/download.html,這裏選擇版本爲0.11.1 二、  下載OpenCORE AMR:http://sourceforge.net/projects/opencore-amr/,這裏選擇的版本爲0.1.3。

並將下載的文件存放與/home/ffmpeg目錄下,以root用戶登陸系統。

具體步驟:

一、  編譯安裝opencore-amr,這裏須要注意的是在執行configure命令的時候要添加--enable-shared=no --enable-static=yes參數,其主要做用是禁止生產動態連接庫、容許生產靜態庫。

chmod 755 opencore-amr-0.1.3.tar.gz

tar -xzvf opencore-amr-0.1.3.tar.gz

cd opencore-amr-0.1.3

./configure --enable-shared=no --enable-static=yes

make

make install

 

二、  編譯安裝ffmpeg,注意configure命令後面所要添加的參數,能夠經過執行configure --help命令查看後面所容許帶的參數

chomd 755 ffmpeg-0.11.1.tar.gz

tar -xzvf ffmepg-0.11.1.tar.gz

cd ffempg

./configure --enable-gpl --enable-version3 --enable-nonfree --disable-ffplay --disable-ffprobe --disable-ffserver --enable-libopencore-amrnb --enable-libopencore-amrwb --prefix=/home/ffmpeg/target

make

make install

以上命令成功執行後將會在/home/ffmpeg/target目錄下的bin目錄獲得ffmpeg文件,該文件已經包含amr解碼器

三、  測試:

chmod 755 ffmpeg

./ffmpeg -I PA003.wav -ar 8000 -ab 12.2k -ac 1 target.amr

 

四、  注意事項:

a)         以上方式都是經過靜態庫的形式編譯,採用靜態庫的形式編譯的好處在於:編譯後的可執行文件ffmpeg能夠不依賴於amr解碼器,簡單地說,可執行文件已經將amr解碼器包含在內了。

b)         ffmpeg在編譯時候會優先查找amr解碼器的動態連接庫,若是沒有找到,則查找amr解碼器的靜態庫。在第一步中若是沒有禁止amr生成動態連接庫,則ffmpeg將採用amr的動態連接庫進行編譯,其缺點是,編譯後的可執行文件ffmpeg將依賴於amr的動態連接庫,若是系統的動態連接庫搜索路徑LD_LIBRARY_PATH不包含amr動態連接庫所在路徑,則ffmpeg將會報錯,沒法正常工做。

c)         amr編譯安裝時不建議添加prefix=XXX參數(./configure)修改amr安裝路徑,這樣ffmpeg在編譯安裝時將出現找不到amr解碼器的狀況

相關文章
相關標籤/搜索