音視頻編碼簡介
1、用到的工具:
MPlayer(基於命令列的播放器)
mencoder(基於命令列的轉碼器)
Firefox(圖形介面的瀏覽器)
2、任何影片的播放都分為3個步驟:拆包->解碼->渲染
,分別對應播放器的分離器(demuxer)->解碼器(decode)->渲染器
。
(1)拆包
,即是播放器調用分離器,將封包中的視頻軌道和音頻軌道正確的取出來的過程。
使用mplayer –demuxer help命令可以查看系統支援分離器。
(2)解碼
,當分離器正確的從封包中取出視頻軌道和音頻軌道以後,播放器識別檔案編碼格式,然後調用相應的解碼器進行解碼。
使用mplayer –vc help命令可以查看系統支援的視頻解碼器;
使用mplayer –ac help命令可以查看系統支援的音頻解碼器。
(3)渲染
,解碼器將音頻視頻翻譯完畢,由渲染器輸出的過程。可以理解為畫面出來了,顯示在螢幕上,聲音處理好了,從喇叭出來的過程。
使用mplayer -vf help命令來查看渲染效果。
3、關於MenuCoder
(0)安裝相應的解碼器:sudo apt-get install ffmpeg libavcodec-extra-52
(1)安裝:sudo apt-get install mencoder
(2)查看系統支援的音頻、視頻編碼:mencoder -ovc help、mencoder -oac help。
(3)查看系統支援的封裝格式:mencoder -of help
(4)壓縮一段視頻:mencoder m001.mpg -o m001.mp4 -oac mp3lame -ovc x264 -of lavf -vf lavcdeint。
上面命令中的 m001.mpg 和 m001.mp4 分別是輸入和輸出檔案名,-oac 用於指定音頻編碼器,-ovc 指定視頻編碼器, -of
指定輸出檔案封裝方式,lavf表示輸出檔案封裝方式由輸出檔案名決定(即你用m001.mp4就用mp4封裝,用m001.avi的話就用avi封
裝),最後 -vf lavcdeint 參數用於去除視頻中的拉絲條紋(鋸齒紋),如果沒有的話不要這個參數也可以。
(5)批量轉換指令碼:
#!/bin/bash
find . -type f /( -name “*.mpg” -o -name “*.mpeg” /)|while read line;do
echo $line
mencoder $line -o ${line}.mp4 -oac mp3lame -ovc x264 -of lavf -vf lavcdeint
5、ffmpeg也可以實現上述操作。參見連結:http://www.opensoce.com/?p=1018