可以把它當快速簡易參考看,主要的功能有:
- 視頻格式轉換
- 音頻格式轉換
- 切割視頻及音頻
- 連接兩段視頻
- 視頻音頻同步
- 將圖像系列轉換成視頻 ? ??
任務1: 延遲視頻部分 (對avi文件有效)
mencoder -delay 0.7 -oac copy -ovc copy input.avi -ooutput.avi
解釋:讓視頻軌比當前的音頻軌落后0.7秒鐘
任務2:?延遲音頻部分(對avi文件有效)
mencoder -oac copy -ovc copy -audio-delay -0.7 input.avi -ooutput.avi
解釋:讓音頻軌比當前的視頻軌落后0.7秒鐘
任務3:切割視頻軌
mencoder -ss 00:00:10 -endpos 60 -ovc copy -oac copy input.avi-o output.avi
解釋:切割視頻部分,從0分10秒開始,到1分10秒,時間長度為60秒。將結果存儲為output.avi?
任務4:?連接兩段視頻 (必須比特率相同)
mencoder -oac copy -ovc copy -idx -o output.avi input1.aviinput2.avi?????????
or(不要求bitrate相同):
ffmpeg -i test1.avi -i test2.avi -vcodec copy -acodec copy -vcodec copy -acodec copy test12.avi -newvideo -newaudio
解釋:
任務5:?將一系列靜止圖像和一個mp3文件轉換為AVI視頻文件
mencoder "mf://snap*.bmp" -mf fps=25 -oac mp3lame -lameoptsabr:br=128:mode=3 -audiofile test.mp3 -ovc lavc -lavcoptsvcodec=msmpeg4v2:vpass=1:vbitrate=2560000:mbd=2:keyint=132:vqblur=1.0:cmp=2:subcmp=2:dia=2:mv0:last_pred=3-o leadnull
mencoder "mf://snap*.bmp" -mf fps=25 -oac mp3lame -lameoptsabr:br=128:mode=3 -audiofile test.mp3 -ovc lavc -lavcoptsvcodec=msmpeg4v2:vpass=2:vbitrate=2560000:mbd=2:keyint=132:vqblur=1.0:cmp=2:subcmp=2:dia=2:mv0:last_pred=3-o lead.avi
解釋:mono=3 代表單聲道音頻輸出, mono=0 代表立體聲音頻輸出。上面使用的視頻編碼是微軟的msmpeg4,因此這個AVI文件可以直接在Windows mediaplayer中播放,不需要另外安裝插件。 上面兩條命令,表示兩遍壓縮。 為提高速度,也可以只實用第一條做單次壓縮。輸出視頻的fps為25。
任務6:?切割mp3音頻文件
mplayer -ss 00:01:59 -endpos 102.5 input.mp3 -ao pcm
sox audiodump.wav result1.wav fade t 3
sox result1.wav result2.wav fade t 0 102.5 3.5
lame result2.wav -o fighting.mp3 -b 160
解釋:這個過程由四條命令組成。 上面的例子中,
第一步:切割部分為1分59秒開始,到3分41.5秒結束,長度102.5秒。用戶需自己計算切割部分,設定上述參數。?
第二步:用sox對音頻開頭3秒鐘做一個淡入效果(聲音逐漸增強)
第三步:用sox對音頻結束3.5秒鐘做一個淡出效果(聲音逐漸衰減)
第四步:將lame處理好的音頻重新編碼成160kbps的mp3文件
其中,第二、第三步是可以省略的。?
任務7:?將wma文件轉換為mp3文件
mplayer input.wma -ao pcm
lame audiodump.wav -o output.mp3 -b 160
解釋:一共兩條命令。第一條將wma轉化為wav文件,第二條再將wav轉換為mp3文件,比特率為160kbps.?
任務8:?將一系列圖像文件轉換為flv視頻文件
mencoder ?"mf://snap*.bmp" -mf fps=25-audiofile test.mp3 -o output.flv ? -afresample=22050:0:0 -sws 9 -vf scale=448:-3,expand=448:336 -of lavf-ovc lavc -lavcoptsvcodec=flv:vbitrate=260:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:vpass=1
mencoder ?"mf://snap*.bmp" -mf fps=25 -ooutput.flv -audiofile test.mp3 ?-afresample=22050:0:0 -sws 9 -vf scale=448:-3,expand=448:336 -of lavf-ovc lavc -lavcoptsvcodec=flv:vbitrate=260:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2:vpass=2
解釋:兩遍壓縮,將一系列snap001.bmp, snap002.bmp,...圖像和一個mp3文件"test.mp3"轉換成fps=25的錄像。音頻采樣率設定為22050,視頻畫面大小為448x336,視頻的比特率為260kbps。?
如果你希望更改視頻中的keyframe,你可以在第一條命令執行后,手動編輯一個divx2pass.log文件。文件中"Type:1"表示關鍵幀keyframe (或者叫iframe), "Type:2"表示p-frame,就是只記錄相鄰幀變化部分的幀。?
任務9:?將一系列圖像文件轉換為ogg視頻文件
ffmpeg2theora -f image2 snap%05d.bmp -V 320 -ooutput.ogg
解釋:ogg錄像還是有點用的,wikipedia, wikimeida都在用。上面的視頻比特率為320kbps
任務10:?將一系列圖像轉化為與NTSCDVD兼容的mpeg2格式文件。?
mencoder -oac lavc -ovc lavc -of mpeg -mpegoptsformat=dvd:tsaf -vf scale=720:480,harddup -srate 48000 -aflavcresample=48000 -lavcoptsvcodec=mpeg2video:vpass=1:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=18:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9-ofps 30000/1001 -o ntscdvd.mpg "mf://snap*.bmp" -mf fps=25-audiofile test.mp3
mencoder -oac lavc -ovc lavc -of mpeg -mpegoptsformat=dvd:tsaf -vf scale=720:480,harddup -srate 48000 -aflavcresample=48000 -lavcoptsvcodec=mpeg2video:vpass=2:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=18:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9-ofps 30000/1001 -o ntscdvd.mpg "mf://snap*.bmp" -mf fps=25-audiofile test.mp3
解釋:兩遍壓縮,輸入圖像幀率為25fps, 輸出幀率為29.97fps,視頻編碼mpeg2, 音頻編碼192kbpsac3. ?
任務11:?將一系列圖像文件轉換為與PALDVD兼容的mpeg2格式視頻文件
mencoder -oac lavc -ovc lavc -of mpeg -mpegoptsformat=dvd:tsaf -vf scale=720:576,harddup -srate 48000 -aflavcresample=48000 -lavcoptsvcodec=mpeg2video:vpass=1:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9-ofps 25 -o paldvd.mpg "mf://snap*.bmp" -mf fps=25 -audiofiletest.mp3
mencoder -oac lavc -ovc lavc -of mpeg -mpegoptsformat=dvd:tsaf -vf scale=720:576,harddup -srate 48000 -aflavcresample=48000 -lavcoptsvcodec=mpeg2video:vpass=2:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9-ofps 25 -o paldvd.mpg "mf://snap*.bmp" -mf fps=25 -audiofiletest.mp3
解釋:兩遍壓縮,輸入為snap001.jpg, snap002.jpg...和test.mp3,圖像系列的fps為25, 輸出視頻文件的fps為25. 視頻編碼為mpeg2, 音頻編碼為192kbpsac3.?
任務12:?將視頻文件轉換為一系列圖像
用ffmpeg命令如下
ffmpeg -i test.avi snap%05d.bmp
也可以用mplayer完成同樣功能
mplayer video.avi -vo png -ss 00:00:10 -endpos 5.0 -vfcrop=480:360:80:60
解釋:這里mplayer的例子中,還提供了額外的切割選擇功能。切割的部分從0分10秒開始,到0分15秒結束,長達5秒。同時畫面也被切割,切割的位置從坐標(80,60)開始,寬度480像素,高度360像素。這里坐標系以屏幕左上角為(0,0).?
任務13:?將midi文件轉換為mp3文件
timidity input.mid -Ow
lame -b 160 -h -k input.wav output.mp3
解釋:第一條命令使用timidity將midi轉換為wav文件,第二條命令用lame將wav轉換為160kbpsmp3文件。?
timidity配置和安裝還是比較麻煩的。還需要額外安裝高品質的sf2聲音字體文件,配置sf2文件也異常容易出錯。總體效果還可以接受。但無法使用目前流行的vst,因此可能會被慢慢淘汰掉。?
任務14:?將一系列圖像轉換為swf格式的flash文件(需要perl)?
flv2swf ?input.flv?output.swf
解釋:有時候可能用swf來保存視頻比flv更方便。如果圖像數量不多的話,可以采用swftools來進行轉換?
如果圖像數量很多的話,首先我們用任務8中的命令將圖像轉換為一個flv文件。然后我們可以用adobe的各種軟件很輕松的將flv錄像加入一個flash項目里,最后輸出為swf.?如果你熟悉perl的話,也可以用一個perl腳本將flv文件轉換成swf.CPAN(Perl公共模塊庫)有一個FLV::info的模塊,安裝后就可以使用flv2swf命令了。
任務15:?將mp3文件轉換為wma文件
mplayer input.mp3 -ao pcm
ffmpeg -i audiodump.wav -acodec wmav2 -ab 128000test.wma1
解釋:偶爾也需要這個功能的。第一步,將mp3文件轉換為wav文件,第二步用ffmpeg將wav文件轉換為wma.?
如果你只需要將單幅圖像如某個封面,和一個mp3合并成一個視頻文件,請參看前一篇博文。?
將一幅圖像和一個mp3文件合并成錄像文件的小工具
參考鏈接
上述命令基本上是參考了mplayer的用戶手冊,videohelp.com的論壇帖子寫的。
http://www.mplayerhq.hu/DOCS/HTML/en/encoding-guide.html
http://forum.videohelp.com/
軟件主頁
mencoder的Windows binary:?http://oss.netfarm.it/mplayer-win32.php
ffmpeg的Windows binary:?http://ffmpeg.arrozcru.org/builds/
lame的Windows binary:?http://lame.sourceforge.net/links.php
sox:?http://sox.sourceforge.net/
ffmpeg2theora:?http://v2v.cc/~j/ffmpeg2theora/
cpan:?http://search.cpan.org/dist/FLV-Info/
Active perl的Windows版本:http://www.activestate.com/activeperl/
上述軟件被廣泛使用,其源代碼部分沒有什么問題,但因為專利和版權的問題,公布其Windows的二進制可執行文件則可能觸犯了一些國家的法律,目前合法性這個問題還比較模糊。
wav轉aac命令 可參考
ffmpeg -i soundtrack.wav -acodec aac -ab 128kb?output.m4a