
轉(zhuǎn)載
cd /home/cmencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovclavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy-o output.avi
注意如果所有的文件在/home/c下面,請先cd /home/c
生成的output.avi在/home/c目錄下面
13.1.選擇編解碼器及容器格式
編碼使用的音頻及視頻編碼器分別通過-oac及 -ovc選項指定例如輸入如下命令
mencoder -ovc help
可列出你機器上相應版本的MEncoder所支持的所有視頻編碼。下列選擇也是可用的:
音頻編碼器:
| 音頻編碼器名稱 | 描述 |
|---|---|
| mp3lame | 通過LAME編碼為VBR,ABR或CBR格式的MP3文件 |
| lavc | 利用libavcodec中的一個編碼器 |
| faac | FAAC AAC音頻編碼器 |
| toolame | MPEG音頻Layer 2編碼器 |
| twolame | 基于tooLAME的MPEG音頻Layer 2編碼器 |
| pcm | 未壓縮的PCM音頻 |
| copy | 不要重新編碼,這是復制已壓縮的各楨 |
視頻編碼器:
| 是頻編碼器名稱 | 描述 |
|---|---|
| lavc | 使用libavcodec中的一個是頻編碼器 |
| xvid | Xvid, MPEG-4高級簡單格式(ASP)編碼器 |
| x264 | x264, MPEG-4高級視頻編碼(AVC), AKA H.264編碼器 |
| nuv | nuppel視頻,為一些實時程序所用 |
| raw | 未壓縮的視頻楨 |
| copy | 不要重新編碼,只是復制已壓縮的各楨 |
| frameno | 用于三通道編碼(不推薦) |
輸出容器格式通過-of選項選擇。輸入:
mencoder -of help
以便列出你機器上相應版本的MEncoder所支持的所有容器。如下選項也是可用的
容器格式:
| 容器格式名稱 | 描述 |
|---|---|
| lavf | 由libavformat 支持的一種容器 |
| avi | 音-視頻混合 |
| mpeg | MPEG-1及MPEG-2節(jié)目流 |
| rawvideo | 原始視頻流(未經(jīng)混合 - 只含一視頻流) |
| rawaudio | 原始音頻流(未經(jīng)混合 - 只含一音頻流) |
AVI容器是MEncoder的基本容器格式,也就是說它能夠被最好的處理,MEncoder也是為之而設計。如上所述,其他容器格式也可被使用,但你使用的時候可能遇到問題。
libavformat容器:
如果你選擇了libavformat來做輸出文件的混編(通過使用-oflavf選項),適當?shù)娜萜鲗⒂晌募U展名而定。你也可以通過libavformat的 format選項強制一種容器格式。
libavformat容器名稱 | 描述 |
|---|---|
| mpg | MPEG-1及MPEG-2節(jié)目流 |
| asf | 高級流格式 |
| avi | 音-視頻混合 |
| wav | 波形音頻 |
| swf | Macromedia Flash |
| flv | Macromedia Flash視頻 |
| rm | RealMedia |
| au | SUN AU |
| nut | NUT開放容器(實驗中,不兼容標準) |
| mov | QuickTime |
| mp4 | MPEG-4格式 |
| dv | Sony數(shù)字視頻容器 |
如你所見,libavformat允許 MEncoder把媒體混合到各種格式的容器內(nèi)。不巧的是,因為MEncoder從開始設計的時候沒有支持AVI之外的其他容器,你要小心最終生成的文件。請多次檢查以確認音頻/視頻同步是正確的以及文件能在MPlayer之外的播放器中播放。
例13.1.編碼為MacromediaFlash格式
生成Macromedia Flash視頻,以便在安裝有Macromedia Flash插件的網(wǎng)頁瀏覽器中播放:
mencoderinput.avi-ooutput.flv-of lavf -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3
| 13.2.選擇輸入文件或設備 |
|---|
13.2.選擇輸入文件或設備
MEncoder可以從文件或直接從DVD或VCD的盤片進行編碼。秩序在命令行中包含文件名以便從文件進行編碼,或dvd://標題數(shù)或 vcd://軌道數(shù)以便從DVD標題或VCD軌道進行編碼。如果你已經(jīng)把DVD復制到你的硬盤上(你可以使用像dvdbackup這樣的工具,大多數(shù)系統(tǒng)上都有),然后想從副本進行編碼,你仍需使用 dvd://語法,加上附帶了指向DVD副本的根目錄的 -dvd-device選項。 -dvd-device及-cdrom-device選項也能用于覆蓋用來直接從光盤中直接讀取數(shù)據(jù)的設備的路徑,如果缺省的/dev/dvd及/dev/cdrom在你的系統(tǒng)上步工作的話。
當從DVD進行編碼時,最好是選其中的一章或幾章進行編碼。為此你可以使用-chapter選項。例如-chapter1-4將只編碼DVD中的1至4章。如果你針對包含1400MB數(shù)據(jù)的兩張CD進行編碼,這將非常有用,因為你可以確定只在一章的邊緣處分割,而不是在一個場景中間。
如果你有張被支持的電視卡,你也可以通過播放電視節(jié)目的設備進行編碼。使用tv://channelnumber為文件名,并用-tv配置各種截取選項。 DVB輸入工作原理類似。
| 13.3.編碼為雙通道MPEG-4("DivX") |
|---|
13.3.編碼為雙通道MPEG-4("DivX")
之所以這樣命名,是因為這種編碼兩次對文件進行編碼。第一次編碼(配音通道)生成一些幾兆大的臨時文件(*.log),先不要刪除它們(你可以刪除AVI或者通過重定向到/dev/null而不生成視頻)。第二次編碼時,生成了雙通道輸出文件,使用的即是從臨時文件提供的比特律數(shù)據(jù)。生成文件會有更好的圖像質(zhì)量。如果這是你第一次聽說,你可以在互聯(lián)網(wǎng)上找到相關參考。
例13.2.復制音軌
雙通道編碼在復制音軌時將DVD的第二個軌道轉(zhuǎn)換成MPEG-4("DivX") AVI。
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o /dev/null mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 -oac copy -o output.avi例13.3.對音軌編碼
將一個DVD編碼成MPEG-4 ("DivX")AVI,音軌采用MP3格式使用這個方法的時候要當心,因為有時它可能造成音/視頻不同步。
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac mp3lame -lameopts vbr=3 -o /dev/null mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 -oac mp3lame -lameopts vbr=3 -o output.avi| 13.4.編碼為SonyPSP視頻格式 | ||
|---|---|---|
| 上一頁 | 第13章MEncoder的基礎用法 | 下一頁 |
13.4.編碼為SonyPSP視頻格式
MEncoder支持到Sony PSP的視頻格式轉(zhuǎn)換,但是依賴于PSP軟件修改,對不同軟件限制也許會有不同。如果你遵守如下守則,你將不會遇到什么問題:
例13.4.編碼到PSP
mencoder -ofps 30000/1001 -af lavcresample=24000 -vf harddup -of lavf -oac lavc -ovc lavc -lavcopts aglobal=1:vglobal=1:vcodec=mpeg4:acodec=aac -lavfopts format=psp:i_certify_that_my_video_stream_does_not_use_b_framesinput.video-ooutput.psp
注意你可以通過-info name=MovieTitle為視頻攝者標題。
| 13.5.編碼為MPEG格式 |
|---|
13.5.編碼為MPEG格式
MEncoder可生成MPEG(MPEG-節(jié)目流)格式的文件。通常,當你使用MPEG-1或MPEG-2視頻,是因為你的編碼受限于SVCD, VCD,或DVD。這些格式所需的特別要求將在 VCD及DVD生成指南 中進行解釋section.
要改變MEncoder的輸出文件格式,使用 -ofmpeg選項。
例如:
mencoderinput.avi-of mpeg -ovc lavc -lavcopts vcodec=mpeg1video -oac copyother_options-ooutput.mpg
可生成為只有有限多媒體支持的系統(tǒng)進行播放的MPEG-1文件,例如默認安裝的Windows:
mencoderinput.avi-of mpeg -mpegopts format=mpeg1:tsaf:muxrate=2000 -ooutput.mpg-oac lavc -lavcoptc acodec=mp2:abitrate=224 -ovc lavc -lavcopts vcodec=mpeg1video:vbitrate=1152:keyint=15:mbd=2:aspect=4/3
同上,但使用了libavformatMPEG混合器:
mencoderinput.avi-oVCD.mpg-ofps 25 -vf scale=352:288,harddup -of lavf -lavfopts format=mpg:i_certify_that_my_video_stream_does_not_use_b_frames -oac lavc -lavcopts acodec=mp2:abitrate=224 -ovc lavc -lavcopts vcodec=mpeg1video:vrc_buf_size=327:keyint=15:vrc_maxrate=1152:vbitrate=1152:vmax_b_frames=0
提示:
如果由于某種原因,第二次編碼的效果不能令你滿意,你可以使用另外一種比特律重新執(zhí)行視頻編碼,只要你保存了前一次編碼中生成的統(tǒng)計文件。這是可行因為生成統(tǒng)計文件的主要目的是記錄每楨的復雜度,不是特別依賴于比特律。然而,你要注意的是如果所有編碼按照與最終生成文件的比特律相差不大的參數(shù)執(zhí)行程序,你將得到最佳效果。
| 13.6.改變電影大小 | ||
|---|---|---|
| 上一頁 | 第13章MEncoder的基礎用法 | 下一頁 |
13.6.改變電影大小
經(jīng)常出現(xiàn)要改變電影圖片大小的需求。原因可能是多樣的:減小文件大小,網(wǎng)絡帶寬等等。大多數(shù)人甚至在將DVD或SVCD轉(zhuǎn)換成DivXAVI時也改變影片大小。如果你想改變影片大小,閱讀保持長寬比一節(jié)
變換過程由scale視頻濾鏡處理: -vf scale=寬:高。輸出質(zhì)量可由-sws選項調(diào)節(jié)。如果沒有設置,MEncoder將使用2:雙三次。
用法:
mencoderinput.mpg-ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -vf scale=640:480 -ooutput.avi
| 13.7.媒體流復制 | ||
|---|---|---|
| 上一頁 | 第13章MEncoder的基礎用法 | 下一頁 |
13.7.媒體流復制
MEncoder能以兩種方式處理輸入媒體流:編碼或復制。本節(jié)是關于復制的。
使用-oaccopy從一種容器格式復制到另一種容器格式時,你可能需要使用-fafmttag選項以保持原始文件的音頻格式標簽。例如,如果你將一個使用AAC音頻的NSV文件轉(zhuǎn)換到AVI容器中,音頻格式文件標簽可能是錯誤的,需要被轉(zhuǎn)換。對于詳細的音頻格式標簽,查看codecs.conf。
例子:
mencoderinput.nsv-oac copy -fafmttag 0x706D -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -ooutput.avi
| 13.8.從多個輸入圖像文件進行編碼(JPEG, PNG,TGA等) |
|---|
13.8.從多個輸入圖像文件進行編碼(JPEG,PNG, TGA等)
MEncoder可以通過一個或多個JPEG, PNG, TGA,或其他圖片文件制作電影。使用簡單的楨復制,它能生成MJPEG (移動JPEG), MPNG (移動PNG)或MTGA (移動TGA)文件。
進程描述:
MEncoder使用
libjpeg(當解碼PNG時,它將使用libpng)將輸入圖片進行 解碼。MEncoder然后將解碼好的圖片送到被選定的視頻壓縮器中 (DivX4, Xvid,FFmpeg msmpeg4等)。
例子.關于-mf選項的解釋在man頁中。
使用當前目錄下所有JPEG文件生成MPEG-4文件。
mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi使用當前目錄中的一些JPEG文件生成MPEG-4文件。
mencoder mf://frame001.jpg,frame002.jpg-mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -ooutput.avi
使用顯示指示的一系列JPEG文件生成MPEG-4文件(當前目錄下的list.txt包含被用做源的文件列表,一個一行):
mencoder mf://@list.txt-mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -ooutput.avi
使用當前目錄下所有JPEG文件生成移動JPEG(MJPEG)文件:
mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc copy -oac copy -o output.avi使用當前目錄下所有PNG文件生成未壓縮的文件:
mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o output.avi注意
寬度必須是4的倍數(shù),這是原始RGBAVI文件格式的限制。
使用當前目錄下所有PNG文件生成移動PNG(MPNG)文件:
mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc copy -oac copy -o output.avi使用當前目錄下的所有TGA文件生成移動TGA(MTGA)文件:
mencoder mf://*.tga -mf w=800:h=600:fps=25:type=tga -ovc copy -oac copy -o output.avi| 13.9.將DVD子標題提取到VOBsub文件 |
|---|
13.9.將DVD子標題提取到VOBsub文件
MEncoder能將DVD子標題提取到VOBsub格式的文件中。它們是一對由.idx及.sub結尾的文件組成。并且經(jīng)常被壓縮成一個.rar文件。MPlayer可通過 -vobsub及-vobsubid選項播放這些文件。
你可以通過-vobsubout指定輸出文件的基礎名(例如不包括 .idx或.sub后綴),對于生成文件子標題的索引使用-vobsuboutindex。
如果不是從DVD輸入,你應該使用-ifo來表明構建生成的.idx文件所需的.ifo文件。
如果輸入不是DVD并且你沒有.ifo文件,你需使用 -vobsubid選項以使其知道放入.idx文件的語言標識。
如果.sub及.idx文件存在,每次執(zhí)行都回添加子標題。所以你再開始前需要手動清除這些文件。
例13.5.在做雙通道編碼時從DVD復制子標題
rmsubtitles.idxsubtitles.submencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -vobsuboutsubtitles-vobsuboutindex 0 -sid 2 mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 -vobsuboutsubtitles-vobsuboutindex 1 -sid 5
例13.6.從一個MPEG文件復制法文子標題
rmsubtitles.idxsubtitles.submencodermovie.mpg-ifomovie.ifo-vobsuboutsubtitles-vobsuboutindex 0 -vobsuboutid fr -sid 1 -nosound -ovc copy
| 13.10.保持視頻畫面比例 |
|---|
13.10.保持視頻畫面比例
DVD及SVCD(例如MPEG-1/2)文件包含畫面比例,此信息可用來指示播放器應如何顯示視頻流,所以顯示的人不會有個雞蛋頭(例如480x480+ 4:3 = 640x480)。然而當編碼為AVI(DivX)文件時,你要小心AVI頭信息里沒有包含這些值。重新設置這些比例是非常討厭并且很花時間,應該有更好的方法!
還有
MPEG-4有個獨特的特點:視頻流可以包含它需要的畫面比例。是的,正像MPEG-1/2 (DVD,SVCD)及H.263文件一樣。可惜的是,除了MPlayer幾乎沒有播放器支持這項MPEG-4屬性。
這種特性之可以與libavcodec的mpeg4編碼器一同使用。記住:雖然 MPlayer可以正常播放所生成的文件,其他播放器可能使用錯誤的圖象比例。
你應剪切電影圖像上下方的黑條。針對cropdetect及crop濾鏡的用法參考man頁。
用法
mencodersample-svcd.mpg-vf crop=714:548:0:14 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:autoaspect -ooutput.avi
愛華網(wǎng)


