2012-08-17

LINUX - 利用 ffmpeg 與 MP4Box 將影片的聲音抽離

如題, 有時從 youtube 抓下來的 mv 影片我們只需要 audio 的部份,
要達成這個目的可以使用 ffmpegMP4Box 來做到


ffmpeg
# -vn 是指 disable video 的意思, 表示不要輸出影片的部份
ffmpeg -i input.mp4 -ar 44100 -ac 2 -ab 128k -acodec libfaac -vn output.mp4

cf :
http://ubuntu.opensource.hk/forum/thread-74-1-1.html
http://bbs.gfan.com/mobile/android-1606262-1-1.html?extra=page%3D1

MP4Box
1. 用 mediainfo 先取出 Audio 的 ID 值
# 1.mp4 是欲分離的 video 檔
mediainfo --Inform='Audio;%ID%' 1.mp4
2. 取出聲音的部份 ; 這時會產生一個 aac 檔
# -raw 的 2 是由 上指令取出
vweb-11:/net/home0/_vlog/media # MP4Box -raw 2 1.mp4 
Extracting MPEG-4 AAC

# 會產生 1_track2.aac
vweb-11:/net/home0/_vlog/media # ll                 
total 1944
-rw-r--r-- 1 root root 944445 2012-08-16 10:36 1.mp4
-rw-r--r-- 1 root root  84452 2012-08-16 10:58 1_track2.aac
3. 產生我們要的 mp4 聲音檔即完成
# audio.mp4 是最後我們要的, 只有聲音的 mp4 檔
vweb-11:/net/home0/_vlog/media # MP4Box -tmp . -add 1_track2.aac -new audio.mp4
AAC import  - sample rate 44100 - MPEG-4 audio - 1 channel
Converting to ISMA Audio-Video MP4 file...           
Saving audio.mp4: 0.500 secs Interleaving

vweb-11:/net/home0/_vlog/media # ll                     
total 2032
-rw-r--r-- 1 root root 944445 2012-08-16 10:36 1.mp4
-rw-r--r-- 1 root root  84452 2012-08-16 10:58 1_track2.aac
-rw-r--r-- 1 root root  85094 2012-08-16 10:58 audio.mp4

cf :http://www.ptt.cc/man/AVEncode/DA3A/M.1259863707.A.055.html

結論
用 MP4Box 速度很快, 但可能要用到 mediainfo 比較麻煩 ;
而 ffmpeg 雖比 MP4Box 慢一點, 但也不差, 所以我應該會用 ffmpeg 來做這件事吧~


沒有留言:

張貼留言