• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-3  評論-13  文章-10  trackbacks-0
            [+]
            1. 視頻輸出設備
              1. MTRR的設置
              2. 傳統顯卡的視頻輸出
              3. Xv
              4. dfx顯卡
              5. S3顯卡
              6. nVidia顯卡
              7. ATI顯卡
              8. NeoMagic顯卡
              9. Trident顯卡
              10. Kyro/PowerVR cards
              11. DGA
              12. 引言
              13. DGA是什么
              14. 為MPLAYER安裝DGA支持
              15. 切換分辨率
              16. DGA & MPLAYER
              17. 特性
              18. 速度問題
              19. 已知的BUG
              20. SDL
              21. 已知的BUG:
              22. SVGAlib
              23. 安裝
              24. 注意
              25. EGA(4BPP)支持
              26. 幀緩沖輸出(FBdev)
              27. Matrox幀緩沖(mga_vid)
              28. dfx YUV支持(tdfxfb)
              29. OpenGL輸出
              30. AAlib -- 文本方式顯示
              31. VESA -- 輸出到VESA BIOS
              32. 優點
              33. 缺點
              34. 可用于VESA命令行選項
              35. 已知的問題和繞過辦法
              36. X11
              37. VIDIX
              38. 引言
              39. 用法
              40. 要求
              41. 使用方法
              42. ATI顯卡
              43. Matrox顯卡
              44. Trident顯卡
              45. DLabs顯卡
              46. DirectFB
              47. DirectFB/Matrox(dfbmga)
              48. MPEG解碼器
              49. DVB
              50. 使用方法
              51. 將來
              52. DXR2
              53. 用法
              54. DXR3/Hollywood+
              55. 用法
              56. 其他可視硬件
              57. Zr
              58. Blinkenlights
              59. 電視輸出支持
              60. Matrox G400顯卡
              61. 制作一個Matrox電視輸出線
              62. Matrox G450/G550顯卡
              63. ATI顯卡
              64. 引言
              65. ATI顯卡在Linux上電視輸出的支持情況
              66. Voodoo 3
              67. nVidia

            2.3.1 視頻輸出設備

            2.3.1.1 MTRR的設置

            強烈建議你檢查你的MTRR注冊是否正確的設定了,因為他們能極大的提高性能。

            運行'cat /proc/mtrr':

            --($:~)-- cat /proc/mtrr
            reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9
            reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1

            這是正確的,顯示我的Matrox G400有16MB顯存存。我從XFree 4.x.x得到這個,它會自動地設定MTRR注冊。

            如果沒有什么自動工作,你將不得不手工做。首先,你必須找到基地址。你有3種方法找它:

            • 根據X11的啟動信息,例如:

              (--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000
              (--) SVGA: Linear framebuffer at 0xD8000000

            • 從/proc/pci(使用lspci -v命令):

              01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525 Memory at d8000000 (32-bit, prefetchable)

            • 根據mga_vid內核驅動的信息(使用dmesg):

              mga_mem_base = d8000000

            接著讓我們來確定顯存大小。這十分容易,只要把顯存大小變為十六進制,或者使用這個表格:

              1 MB   0x100000
              2 MB   0x200000
              4 MB   0x400000
              8 MB   0x800000
              16 MB   0x1000000
              32 MB   0x2000000

            你知道了基地址和顯存大小,下面讓我們進行MTRR注冊!例如,對于上述32MB顯存( size=0x2000000 )的Matrox顯卡(base=0xd8000000)就運行:

              echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr

            并非所有CPU都支持MTRR。比如較老的K6-2[266MHz左右,步進值0]不支持MTRR,但是步進值12的就支持(用'cat /proc/cpuinfo'命令檢查)。

            2.3.1.2 傳統顯卡的視頻輸出

            2.3.1.2.1 Xv

            在XFree86 4.0.2或者更新的版本下,你能使用XVideo擴展來使用你的顯卡的硬件YUV例程。這是就是'-vo xv'所使用的。同時,這是支持調節亮度/對比度/色相/等等的驅動(除非你使用舊的,緩慢的DirectShow DivX解碼器,什么驅動它都支持),參見man page。

            為了使它工作,確信做如下檢查:

            • 你必須使用XFree86 4.0.2或者更新的版本(以前的版本沒有XVideo)
            • 你的顯卡確實支持硬件加速(現在的顯卡都支持)
            • X加載了XVideo擴展,它是像這樣的:

                (II) Loading extension XVideo

              顯示在/var/log/XFree86.0.log中

              注意: 這只是加載XFree86的擴展。在正常的安裝中,這是總被加載的,這并不意味著顯卡的XVideo支持被加載了!

            • 你的顯卡在Linux下有Xv支持。為了檢查,運行'xvinfo',它是XFree86程序集的一部分。它應該顯示一段很長的文字,類似于這樣:
              	X_video Extension version 2.2
              	screen #0
              	  Adaptor #0: "Savage Streams Engine"
              	    number of ports: 1
              	    port base: 43
              	    operations supported: PutImage
              	    supported visuals:
              	      depth 16, visualID 0x22
              	      depth 16, visualID 0x23
              	    number of attributes: 5
              	(...)
              	    Number of image formats: 7
              	      id: 0x32595559 (YUY2)
              	        guid: 59555932-0000-0010-8000-00aa00389b71
              	        bits per pixel: 16
              	        number of planes: 1
              	        type: YUV (packed)
              	      id: 0x32315659 (YV12)
              	        guid: 59563132-0000-0010-8000-00aa00389b71
              	        bits per pixel: 12
              	        number of planes: 3
              	        type: YUV (planar)
              	(...etc...)
                

              它必須支持YUY2 packed和YV12 planar象素格式,MPlayer才能使用它。

            • 最后,檢查MPlayer是否編譯了'xv'支持。./configure可以顯示出來。

            2.3.1.2.1.1 3dfx顯卡

            老的的3dfx驅動存在XVideo加速的問題,它不支持YUY2或者YV12之類的格式。確定你的XFree86版本在4.2.0以上,它在YV12和YUY2模式下工作很好。以前的版本,包括4.1.0,會在YV12下崩潰。如果你使用-vo xv時遇到奇怪的問題,嘗試使用SDL(它也有XVideo)看是否有幫助。細節請察看SDL部分

            或者,試試新的-vo tdfxfb驅動! 參見tdfxfb部分。

            2.3.1.2.1.2 S3顯卡

            S3 Savage3D應該能正常工作,不過對于Savage4,請使用XFree86 4.0.3或更新的版本(如果圖象有問題,試試16bpp)。至于S3 Virge,雖然有xv支持,但是這種顯卡實在太慢,因此你最好賣了它。

            注意:目前不清楚Savage結構的那個部分缺少YV12支持,而是用驅動進行轉換的(很慢)。如果你懷疑你的顯卡,找一個新的驅動,或者在mplayer-users的郵件列表上禮貌的詢問支持MMX/3DNow的驅動。

            2.3.1.2.1.3 nVidia顯卡

            nVidia在Linux下不是很好的選擇(nVidia認為,這并非真實情況).. 你將不得不使用二進制的非開源的nVidia驅動,nVidia的網站可以找到。標準XFree86驅動沒有這些顯卡的XVideo支持,因為nVidia沒有公開源碼/規格。

            據我所知最新的XFree86驅動包含了GeForce2和3的XVideo支持。

            Riva128顯卡即使用nVidia的驅動也沒有XVideo支持:(向nVidia抱怨去吧。

            2.3.1.2.1.4 ATI顯卡

            • GATOS驅動(除非你有Rage128或者Radeon,否則你應該使用它)缺省打開VSYNC。這意味著解碼速度(!)與顯示器的刷新率是同步的。如果覺得播放速度緩慢,以某種方式禁用VSYNC,或者把刷新率調到到n*(電影的fps)Hz。
            • Radeon VE -- 目前只有XFree86的CVS里有這種顯卡的驅動,4.1.0版沒有。同時沒有電視支持。當然,使用MPlayer你能幸福地得到加速顯示,有或沒有電視輸出,而且不需要任何庫或者X。閱讀Vidix一節。

            2.3.1.2.1.5 NeoMagic顯卡

            這些顯卡能在許多筆記本電腦里找到。不幸的是,X 4.2.0的驅動不能使用Xv,但是我們為你準備了一個經過修改,能夠使用Xv 的驅動。到這里下載。這個驅動是由Stefan Seyfried提供的。

            像這樣修改你的XF86Config使之能進行DVD大小的內容的播放:

            Section "Device"
                [...]
                Driver "neomagic"
                Option "OverlayMem" "829440"
                [...]
            EndSection

            2.3.1.2.1.6 Trident顯卡

            如果你想要在Trident顯卡上使用xv,它在4.1.0下不工作,嘗試XFree最新的CVS或者等候XFree 4.2.0。最新的CVS加入了Cyberblade XP顯卡的全屏Xv支持。

            2.3.1.2.1.7 Kyro/PowerVR cards

            如果你想在一塊基于Kyro的顯卡(例如Hercules Prophet 4000XT)上使用Xv,你應該從PowerVR的網站上下載驅動。

            2.3.1.2.2 DGA

            引言

            這部分文檔試圖花些篇幅來解釋DGA大概是什么以及MPlayer的DGA視頻輸出驅動能干什么(和不能干什么)。

            DGA是什么

            DGA是Direct Graphics Access的簡稱,是一種使程序繞過X-服務器直接修改幀緩沖顯存的方法。從技術角度說這是通過把幀緩沖顯存映射到你的處理器的內存范圍之內。只有你有超級用戶權限的時候內核才允許這種操作。用root登錄或者給MPlayer的執行文件設置SUID位(推薦使用!)可以做到這一點。

            DGA有兩種版本: DGA1用于XFree 3.x.x和DGA2從XFree 4.0.1開始引入。

            DGA1只提供了前述的幀緩沖直接操作功能。你不得不使用XVidMode擴展來切換視頻信號的分辨率。

            DGA2結合了XVidMode擴展的特性而且也允許切換顯示的色彩深度。因此,雖然一般使用32位色X服務器,你也能切換到15位色深,反之亦然。

            然而DGA也有一些弊端。它似乎有些依賴于你使用的圖形芯片和X服務器中控制該芯片的視頻驅動。因此,它并不是對所有的系統都起作用。

            為MPLAYER安裝DGA支持

            首先確保X裝載了DGA擴展,察看/var/log/XFree86.0.log:

                (II) Loading extension XFree86-DGA

            可見,強烈推薦XFree86 4.0.x或更高版本,MPlayer的DGA驅動在./configure時會自動檢測到,否則你可以用--enable-dga強行編譯它。

            如果你的驅動不能切換到一個較小的分辨率,嘗試使用-vm(只用于X 3.3.x),-fs,-bpp,-zoom選項找一個適合你的電影的視頻模式。目前沒有轉換功能:(

            成為root。DGA需要root權限來直接寫顯存。如果你想用普通用戶運行它,給MPlayer設置SUID root權限:

                chown root /usr/local/bin/mplayer
                chmod 750 /usr/local/bin/mplayer
                chmod +s /usr/local/bin/mplayer

            它現在也能被普通用戶使用了。

            警告:安全風險
            這是一個很大的安全風險!永遠不要在除了你之外還有人可以使用的服務器上這樣做,因為他們能通過SUID root的MPlayer獲得root權限。

            現在使用-vo dga選項,開始使用(如此希望:))! 你也應該嘗試看看-vo sdl:dga選項能否正常工作。它快得多。

            切換分辨率

            DGA驅動允許切換輸出信號的分辨率。這樣能避免使用(緩慢的)軟件縮放同時又提供全屏圖象。理想情況下,它將精確切換成視頻數據的分辨率(除了為了保持長寬比),但是X服務器僅允許切換到/etc/X11/XF86Config(XFree 4.0.X使用/etc/X11/XF86Config-4用于區別)中預定義的分辨率。它們被所謂的modelines定義并且依賴于你的視頻硬件的能力。X服務器啟動時掃描這個配制文件并且禁用那些不適用于你的硬件的modelines。你能通過X11的log文件找出哪些方式可用。它能在這里找到:/var/log/XFree86.0.log

            下面的例子對于一塊Riva128芯片工作良好,使用X server的驅動模塊nv.o

              Section "Modes"
                Identifier    "Modes[0]"
                Modeline	"800x600"  40     800 840 968 1056  600 601 605 628
                Modeline	"712x600"  35.0   712 740 850 900   400 410 412 425
                Modeline	"640x480"  25.175 640 664 760 800   480 491 493 525
                Modeline 	"400x300"  20     400 416 480 528   300 301 303 314 Doublescan
                Modeline	"352x288"  25.10  352 368 416 432   288 296 290 310
                Modeline	"352x240"  15.750 352 368 416 432   240 244 246 262 Doublescan
                Modeline	"320x240"  12.588 320 336 384 400   240 245 246 262 Doublescan
              EndSection
            

            DGA & MPLAYER

            MPlayer在有兩種方法使用DGA:SDL驅動能使用它(-vo sdl:dga),DGA驅動(-vo dga)頁使用它。上面說的內容對兩者都有效;在下列的幾段中我將解釋MPlayer中DGA驅動是如何工作的。

            特性

            DGA驅動通過命令行中的-vo dga選項調用。默認操作是轉換成與原來的視頻盡可能接近的分辨率。它將忽略-vm和-fs選項(開啟視頻模式切換和全屏方式) -- 它總試圖通過切換顯示模式盡可能多的覆蓋你的屏幕,這樣阻礙你的CPU使用一個單一的附加的周期來放大圖像。如果你不喜歡它選擇的模式你能強迫它選擇最接近于你通過-x和-y選項規定的分辨率的模式。使用-v選項,DGA驅動將在一大堆別的東西中打印出你當前XF86-Config文件支持的所有分辨率的列表。如果是DGA2你也能通過使用-bpp選項強迫它使用一定的色彩深度。有效的色深是15,16,24和32。這取決于你的硬件對這些色深是否本地支持,還是通過某種(有可能很慢)的轉化來完成的。

            如果你非常幸運,有足夠顯存的屏外緩沖區來存放整個圖象,DGA驅動將使用雙重緩沖,這能使電影播放更加平滑。它會告訴你雙重緩沖是否被打開。

            雙重緩沖的意思是在你的視頻的當前幀被顯示時,下一幀在屏外緩沖區中被繪制。當下一幀準備完畢時,圖形芯片被告知下一幀在顯存中的位置并且直接從那里將要顯示的數據讀出來。在此期間其它在記憶中的緩沖器將再一次被裝滿新的視頻數據。

            雙重緩沖可以用-double選項開啟也可以用-nodouble選項禁止。目前缺省選項是禁用雙重緩沖。屏幕顯示功能(OSD)在使用DGA驅動模式時必須打開雙重緩沖功能。然而,使用雙重緩沖可能導致較大的速度下降(在我的K6-II+ 525上它多占用20%的CPU時間!),下降程度取決于DGA操作你的硬件的方法。

            速度問題

            一般來說,DGA幀緩沖至少應該跟X11驅動一樣快同時還有全屏圖象的附加好處。對MPlayer打印出的百分比速度的評價應該小心,比如X11驅動它們并不包括X-服務器真正繪制所用的時間。開一個終端連到你的機器的串口上運行top命令看看你的機器真正在干什么...

            一般來說,使用DGA相對“普通的”使用X11所產生的速度提高高度依賴于你的顯卡,以及X-服務器中它的模塊做了多少優化。

            如果你的系統較慢,最好使用15或者16bit色深,因為他們僅僅要求32bit顯示的顯存帶寬的一半。

            即使你的顯卡自身就支持32bit色深,使用24bit的色深也是個好主意,因為它被32/32方式少傳輸25%的數據。

            我曾見過一些AVI文件能在Pentium MMX 266上播放。AMD K6-2 CPU在400 MHZ以上的應該可以工作。

            已知的BUG

            嗯,據一些XFree的開發者說,DGA像頭野獸。他們告訴你不要使用它。并非對任何芯片的驅動它的操作都是沒有瑕疵的。

            • 在XFree 4.0.3的nv.o有一個bug導致奇怪的顏色。
            • ATI驅動在使用DGA完成之后要不只一次的切換顯示模式。
            • 一些驅動無法切換會正常的分辨率(用Ctrl-Alt-小鍵盤+,-來手工切換)。
            • 一些驅動顯示奇怪的顏色。
            • 一些驅動錯誤報告他們映射到處理器地址空間中的顯存數量,這樣vo-dga將無法使用雙重緩沖(SIS?)。
            • 一些驅動好像根本找不到一個可用的模式。在這種情況下,DGA驅動將crash并報告100000x100000的無效模式之類的東西...
            • OSD只能在雙重緩沖開啟的時候才正常工作(否則會閃爍)。

            2.3.1.2.3 SDL

            SDL(Simple Directmedia Layer)基本上是一種統一的視頻/音頻接口。使用它的程序只要知道SDL,而不需要了解SDL實際上使用的視頻或音頻驅動。例如使用SDL的Doom移植能在svgalib,aalib,X,fbdev,和其他東西上使用,你僅需要用環境變量SDL_VIDEODRIVER規定(例如)使用的視頻驅動。嗯,至少在理論上。

            在MPlayer中,我們使用它的X11驅動的軟件縮放功能,用于不支持XVideo的芯片/顯卡,直到我們做出我們自己的(更快,更好)的軟件縮放代碼。同時我們使用它的aalib輸出,但是現在我們自己的更合適的了。它的DGA模式比我們的好,直到最近。現在明白了? :)

            它對一些buggy的驅動/顯卡也有幫助,例如視頻跳躍(不是系統緩慢的問題),或者音頻延遲。

            SDL視頻輸出支持在電影下面,(如果出現)的黑條上顯示字幕。

            這里是一些關于SDL輸出的控制選項:

            -vo sdl:name
            規定使用的sdl視頻驅動(例如aalib,dga,x11)
            -ao sdl:name
            規定使用的sdl音頻驅動(例如dsp,esd,arts)
            -noxv
            禁用XVideo硬件加速
            -forcexv
            嘗試強制XVideo加速

            SDL控制鍵:

              F   切換全屏/窗口方式
              C   循環切換可用的全屏方式
              W與S   *和/的映射(音量控制)

            已知的BUG:

            • 在sdl:aalib控制臺驅動下按下的鍵將永遠重復。(使用-vo aa!)它是SDL中的bug,我無法改變它(用SDL 1.2.1測試)。
            • 不要在GUI中使用SDL!它不會像預想的那樣工作。

            2.3.1.2.4 SVGAlib

            安裝

            你必須安裝svgalib和它的開發包來使MPlayer編譯它的SVGAlib驅動(自動檢測,但是也能強制使用),別忘了編輯/etc/vga/libvga.config來配合你的顯卡&監視器。

            注意

            一定不要用-fs選項,因為它將導致使用軟件縮放,速度會很慢,如果你確實需要,使用-sws 4選項,質量會有點差,但是無論如何它更快。

            EGA(4BPP)支持

            SVGAlib結合了EGAlib,使得MPlayer有可能用16種顏色播放任何電影,下列的配制中可以使用:

            • EGA顯卡和EGA顯示器: 320x200x4bpp,640x200x4bpp,640x350x4bpp
            • EGA顯卡和CGA顯示器: 320x200x4bpp,640x200x4bpp

            bpp(每象素比特數)的值必須手工設為4:
                -bpp 4
            電影可能必須被按比例縮小到EGA適合的模式:
               -vop scale=640:350或者
               -vop scale=320:200
            為做到這一點我們需要使用快速但低質量的例程:
               -sws 4
            也許自動糾正長寬比的功能需要關閉:
               -noaspect

            注意:根據我的經驗用-vop eq=-20:0稍稍降低亮度可以在EGA屏幕上獲得最好的圖象質量。在我的機器上我也要降低音頻采樣率,因為聲音在44kHz時很差:-srate 22050.

            你只有打開expand濾鏡才能使用OSD和字幕。具體參數參見man page。

            2.3.1.2.5 幀緩沖輸出(FBdev)

            是否編譯FBdev目標是在./configure期間自動檢測的。閱讀內核源碼中的幀緩沖的文檔(Documentation/fb/*)來了解更多信息。

            如果你的顯卡不支持VBE 2.0標準(較舊的ISA與PCI顯卡,諸如S3 Trio64),僅支持VBE 1.2(或者更老的?):嗯,VESAfb仍然是可用的,但是你將必須在啟動Linux之前裝載SciTech Display Doctor(從前叫UniVBE )。用DOS啟動盤或隨便什么。同時,別忘了注冊你的UniVBE ;))

            FBdev輸出有些除了以前說過的參數外的附加參數:

            -fb
            規定使用的幀緩沖設備(/dev/fb0)
            -fbmode
            使用的模式名(按照/etc/fb.modes文件)
            -fbmodeconfig
            模式的配置文件方式(默認為/etc/fb.modes)
            -monitor_hfreq
            -monitor_vfreq
            -monitor_dotclock
            重要的參數,參見example.conf

            如果你想要切換到某個具體模式,那么使用

                mplayer -vm -fbmode (NameOfMode) filename

            • -vm單獨使用將從/etc/fb.modes中選出最適合的模式。也可以與-x和-y選項一起使用。-flip選項只有當電影的像素格式與視頻模式的像素格式相同時才支持。注意bpp的值,fbdev驅動將嘗試使用當前值,如果你設定-bpp選項,那么就是那個值。
            • -zoom選項不支持(軟件定標太慢了)。-fs選項不支持。你不能使用8bpp(或者更少)的模式。
            • 你有可能想要關掉光標:echo -e '\033[?25l'setterm -cursor off
              和屏幕保護:setterm -blank 0
              要重新開啟光標:echo -e '\033[?25h'setterm -cursor on

            注意:使用VESA 幀緩沖時FBdev視頻方式不能改變,也不要要求這個功能,因為它不是由于MPlayer自身的限制。

            2.3.1.2.6 Matrox幀緩沖(mga_vid)

            這一段是關于Matrox G200/G400/G450/G550 BES (Back-End Scaler)的支持,mga_vid內核驅動。它現在是由A'rpi開發,它有三重緩沖的硬件VSYNC支持。它在幀緩沖控制臺下和X下都可以工作。

            警告:在非Linux系統(在FreeBSD上測試過)上,要使用VIDIX實現mga_vid!

            安裝:

            1. 為了使用它,你首先必須編譯mga_vid.o:

               

              cd drivers
              make

            2. 然后創建/dev/mga_vid設備:

              mknod /dev/mga_vid c 178 0

              然后這樣加載驅動

              insmod mga_vid.o

            3. 你應該使用dmesg命令檢查顯存大小的檢測結果。如果不對,那么使用mga_ram_size選項(先rmmod mga_vid),以MB為單位指定顯卡的顯存大小:

              insmod mga_vid.o mga_ram_size=16

            4. 為了使它在需要時自動地加載/卸載,首先在/etc/modules.conf的末尾加上下面這一行:

              alias char-major-178 mga_vid

              然后把mga_vid.o模塊復制到/lib/modules/<kernel version>/somewhere下的適當位置。

              然后運行

              depmod -a

            5. 你現在需要(重新)編譯MPlayer,configure將檢測到/dev/mga_vid并且編譯'mga'驅動。如果你使用matroxfb控制臺, 在MPlayer中用-vo mga使用它,或者在XFree86 3.x.x或者4.x.x下的使用-vo xmga

               

            mga_vid驅動能與Xv協同工作。

            可以閱讀/dev/mga_vid設備文件(例如cat /dev/mga_vid)來查找一些信息,也可以通過寫它來調整亮度:echo "brightness=120" > /dev/mga_vid

            2.3.1.2.7 3dfx YUV支持(tdfxfb)

            這個驅動使用內核的tdfx幀緩沖驅動來利用YUV加速播放電影。你需要一個支持tdfxfb的內核,然后用./configure --enable-tdfxfb重新編譯

            2.3.1.2.8 OpenGL輸出

            MPlayer支持使用OpenGL顯示電影,但是如果你的平臺/驅動支持xv,就象使用linux的PC機那樣,就使用xv,OpenGL的效果與它相比相當壞。如果你只有沒有xv支持的X11程序,OpenGL是可用的選擇。

            不幸的是并非所有驅動都支持這個特性。Utah-GLX驅動(針對XFree86 3.3.6)對所有顯卡都支持它。訪問http://utah-glx.sourceforge.net了解安裝它的細節問題。

            XFree86(DRI) 4.0.3以上支持Matrox和Radeon顯卡的OpenGL,4.2.0或更新版本支持Rage128。訪問http://dri.sourceforge.net以尋找下載和安裝指導。

            2.3.1.2.9 AAlib -- 文本方式顯示

            AAlib 是一個用于在文本模式下顯示圖形的庫,它使用強大的ASCII渲染器。有許多程序提供對它的支持,像Doom,Quake等等。 MPlayer包含一個針對它的實用的驅動。如果./configure發現安裝了aalib,aalib的libvo驅動將被編譯。

            你能在AA窗口中使用一些控制鍵來改變渲染參數:

              1   減少對比度
              2   增加對比度
              3   減少亮度
              4   增加亮度
              5   打開/關閉快速渲染
              6   設置抖動方式(不抖動, 誤差分布算法, Floyd Steinberg算法)
              7   反轉圖象
              a   轉換aa和MPlayer的控制鍵

            下列的命令行選項能夠使用:

            -aaosdcolor=V
            改變OSD顏色
            -aasubcolor=V
            改變字幕顏色

            V的值可以是:(0/正常,1/暗色,2/粗體,3/粗體字體,4/反轉,5/特殊)

            AAlib自身也提供了大量的選項。這里是一些重要的:

            -aadriver
            設置推薦aa的驅動( X11,curses,Linux )
            -aaextended
            使用所有的256個字符
            -aaeight
            使用8比特的ASCII
            -aahelp
            列出所有的aalib選項

            注意:渲染效果是十分消耗CPU的,特別是使用AA-on-X(在X上使用aalib),在標準的非幀緩沖控制臺上的CPU消耗是最小的,用SVGATextMode設置一個大的文本模式,然后再欣賞電影!(大力神顯卡的第二個接口就不錯:))(但我建議你用-vop 1bpp選項在hgafb上獲得圖象;)

            如果你的計算機速度不足以渲染所有幀就使用-framedrop選項

            在終端中播放電影時使用Linux驅動你將會得到更好的速度和畫面質量,不要用curses(-aadriver Linux)。但是為此你需要/dev/vcsa<terminal>的寫權限。那是aalib不能自動檢測的,但vo_aa會嘗試搜索最佳模式,進一步的調節問題參見http://aa-project.sourceforge.net/tune/

            2.3.1.2.10 VESA -- 輸出到VESA BIOS

            這個驅動被設計并引入作為一個通用的驅動用于任何有VESA VBE 2.0兼容的BIOS的顯卡。這驅動的另一個優點是能試圖迫使在其上進行電視輸出。
            VESA BIOS EXTENSION(VBE)3.0版 日期:1998年九月16日(第70頁)說:

            雙重控制器設計
            VBE 3.0支持雙重控制器設計基于如下假設,由于兩個控制器一般是同樣的OEM提供的,被同一塊顯卡上的一個的BIOS ROM,所以可以對程序隱藏有兩個控制器在作用的事實。這限制了同時的使用獨立的控制器的功能,但是允許VBE 3.0發布前的程序能正常工作。VBE函數00h(返回控制器信息)返回經過合并的兩個控制器的信息,包括經過合并的可供使用的方式的列表。當程序選擇一個方式時,相應的控制器被激活。然后剩下的VBE函數都作用在激活的控制器上。

            因此,你有可能通過這個驅動得到電視輸出。
            (我猜想電視至少經常地是使用獨立的頭或者獨立的輸出)。

            優點

            • 即使Linux不能識別你的視頻硬件你或許還能看電影。
            • 你不需要在你的Linux上安裝任何圖形相關的東西(像X11(或者叫XFree86),fbdev諸如此類)。這個驅動能從文本方式運行。
            • 你有機會獲得可用的電視輸出。(至少已知ATI的顯卡可以)。
            • 這個驅動調用int 10h中斷因此它不是模擬器 -- 它實時調用真正的BIOS中的真正的功能。(效果不錯 -- 按vm86方式)。
            • 你可以對它使用Vidix,這樣能加速視頻顯示同時也加快電視輸出!(ATI顯卡推薦)
            • 如果你有VESA VBE 3.0+,而且在什么地方(配置文件,或者命令行)設置了monitor_hfreq, monitor_vfreq, monitor_dotclock你將獲得可能的最高的刷新率。 (使用一般的計時公式)。要啟用這個特性你必須設定你的顯示器的所有選項。

            缺點

            • 它只能在x86系統上工作。
            • 它只能由root使用。
            • 它目前只能用在Linux上。

            使用GCC 2.96就不要使用這個驅動!它不能工作!

            可用于VESA命令行選項

            -vo vesa:opts
            當前能識別的:dga強迫dga方式,nodga禁用dga方式。在dga模式下你可以通過使用-double選項來使用雙重緩沖。注意:你能 省略這些參數來開啟自動檢測dga方式。

            已知的問題和繞過辦法

            • 如果你在你的Linux機器上安裝了NLS并且從文本方式運行VESA驅動,那么MPlayer終止后你將看到ROM字體而不是本地的字體。你可以重新加載本地的字體例如在Mandrake中使用setsysfont
              (提示:相同的工具也用于fbdev的地方化)。
            • 一些Linux顯卡驅動不更新在DOS內存中的活動的BIOS模式。因此如果你有這樣問題 -- 總是只從文本方式使用VESA驅動。否則,文本方式(#03)總要被激活接著你將需要重起你的計算機。
            • 通常在終止VESA驅動之后你將看到黑屏。為了把你的屏幕回復原狀 -- 只要切換到其它控制臺(通過按Alt-Fx)然后再用同樣的方法切換回你以前的控制臺。
            • 為了得到可用的電視輸出你需要在啟動導入你的電腦之前將電視連接器插上,因為視頻BIOS只在自舉過程中進行一次初始化。

            2.3.1.2.11 X11

            盡量避免使用它。輸出到X11(使用共享內存擴展),完全沒有硬件加速。支持(MMX/3DNow與SSE加速,但是仍然緩慢的)軟件縮放,使用選項-fs -zoom。大多數顯卡有硬件縮放支持,使用-vo xv對他們輸出,或者對于Matroxes使用-vo xmga

            問題在于大多數顯卡的驅動在第二個接口/電視接口上不支持硬件加速。在那些情況下,你將看到綠色和藍色的彩色窗口而不是電影。這是這個驅動起作用的地方,但是你需要強大的CPU來使用軟件縮放。不要使用SDL驅動的軟件輸出+縮放,它的圖象質量比較差!

            軟件縮放是十分緩慢的,你最好嘗試用改變視頻模式的方法代替它。它十分簡單。參見DGA一節的modelines,并且將他們插入到你的XF86Config。

            • 如果你有XFree86 4.x.x -- 使用-vm選擇。它將切換到適合你的電影的分辨率。如果你的XFree86不是:
            • 使用XFree86 3.x.x -- 你必須使用CTRL-ALT-plusminus控制鍵循環可用的分辨率。

            如果你調整不到你設定的模式,檢查XFree86的輸出。有些驅動不能使用低分辨率視頻方式所需要的低的像素頻率。

            2.3.1.2.12 VIDIX

            引言

            VIDIX是VIDeo Interface for *niX的縮寫。
            VIDIX被設計和引入作為快速的用戶空間驅動的接口提供類似mga_vid為了Matrox顯卡提供的這樣視頻性能的。它也十分易于移植。

            這個接口被設計來作為一個將存在的視頻加速接口(就是mga_vid,rage128_vid,radeon_vid,pm3_vid )統一到一個固定的系統的嘗試。它給芯片提供BES(BackEnd scalers)或OV(Video Overlays)之類的高層接口。它不為那些圖像服務器該做的事情提供底層接口。 (我不想跟X11開發組在切換圖像模式上競爭)。即這接口的主要目的是充分提高視頻播放的速度。

            用法

            • 你能使用獨立的視頻輸出驅動:-vo xvidix
              這個驅動被設計為使用VIDIX技術的X11的前端。它要求X服務器而且僅僅只能在X服務器下工作。注意,由于它繞過X的驅動直接訪問硬件,顯存中的暫存的圖像可能被破壞。你可以通過設置XF86Config中的device部分的"VideoRam"選項限制X使用的顯存大小來避免這種情況。你應該設置為你的顯卡上顯存大小減去4MB。如果你的顯存小于8MB,你可以設置screen部分的"XaaNoPixmapCache"選項。
            • 你能在若干視頻的輸出驅動中使用VIDIX副驅動,諸如:
              -vo vesa:vidix(只用于Linux)和-vo fbdev:vidix
            實際上什么視頻輸出驅動與VIDIX配合使用并不重要。

            要求

            • 視頻顯卡應該工作于圖形方式(我所以寫應該只是因為我在文本方式下測試了它 -- 它能工作但是輸出效果很可怕 ;) 對它還是使用AAlib)。
              注意:每個人能通過注釋掉vo_vesa驅動的模式切換部分的方式嘗試這個技巧。
            • MPlayer的視頻輸出驅動應該知道活動的視頻方式和能夠告訴達到VIDIX副驅動服務器的一些視頻特性。

            使用方法

            當VIDIX被用作副驅動時(-vo vesa:vidix)視頻方式的配置由視頻輸出設備執行(簡單來說就是vo_server)。因此,你能對MPlayer使用與vo_server同樣的命令行指令。此外,它能使用-double作為全局的參數。 (我建議至少在使用ATI顯卡時對VIDIX使用這個參數)。
            至于-vo xvidix:目前它能識別下列的選項: -fs -zoom -x -y -double

            你還能在命令行中使用第三個副參數直接制定VIDIX的驅動:

              mplayer -vo xvidix:mga_vid.so -fs -zoom -double file.avi
            or
              mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 file.avi

            但這有點危險,所以你不應該這么做。在這種情況下,被指定的驅動會被強制使用而其結果是無法預計的(它可以把你的計算機鎖死)。只有在你絕對確信它能工作,而MPlayer沒有自動選擇它時,你才能這么做。請把情況報告給開發者。正確的使用方法是使用沒有參數的VIDIX來使用驅動的自動檢測。

            VIDIX是一項新技術所以它極有可能在你的系統上不能正常工作。在這種情況下,你唯一的解決辦法是移植它(主要是libdha)。但它在X11能正常工作的那些系統的上有正常工作的希望。

            因為VIDIX需要對硬件直接訪問,所以你或者以root運行它,或者給MPlayer的二進制程序設置SUID位(警告:這有安全風險)。或者,你可以使用一個特別的內核模塊,像這樣:

            1. 下載svgalib的開發版本(比如1.9.17),
              或者
              這里.下載一個Alex做的供MPlayer使用的版本(不需要svgalib的源代碼就可以編譯)。
            2. 編譯svgalib_helper目錄中的模塊(如果你是從svgalib的網頁上下載的源代碼,可以在svgalib-1.9.17/kernel/目錄下找到它),然后insmod。
            3. svgalib_helper目錄移到mplayer/main/libdha/svgalib_helper.
            4. 如果你是從svgalib的站點下載的源代碼需要:刪掉libdha/Makefile中包含"svgalib_helper"字符串的CFLAGS行前面的注釋號。
            5. 重新編譯安裝libdha.

            2.3.1.2.12.1 ATI顯卡

            目前大部分ATI顯卡都實現了本地支持,從Mach64到最新的Radeon。

            編譯生成兩個二進制文件:用于Radeon的radeon_vid和用于Rage 128顯卡的rage128_vid。你可以強制使用其中一個或者讓VIDIX系統自動載入所有可用的驅動。

            2.3.1.2.12.2 Matrox顯卡

            Matrox G200,G400,G450和G550據報告可以工作。

            這個驅動支持視頻均衡器比且應該幾乎和Matrox幀緩沖一樣快。

            2.3.1.12.3 Trident顯卡

            有一個可用于Trident Cyberblade/i1芯片的驅動,它們一般出現在VIA的Epia主板上。

            這個驅動有Alastair M. Robinson編寫并維護,他在他的主頁上提供他的最新版本的驅動下載。這個驅動會很快被加到MPlayer中,所以CVS應該已經包含最新驅動了。

            2.3.1.2.12.4 3DLabs顯卡

            盡管有一個用于3DLabs GLINT R3和Permedia3芯片的驅動,但沒有人測試過,所以歡迎報告信息。

            2.3.1.2.13 DirectFB

            "DirectFB是設計用于嵌入系統的圖形庫。它能利用最小的資源開銷提供最大的硬件加速效果。" -- 引自http://www.directfb.org.

            我在這一部分中將略去DirectFB的特性。

            盡管MPlayer不是DirectFB支持的"video provider",這個輸出驅動將開啟使用DirectFB的視頻播放。這將 -- 當然 -- 實現加速,在我的Matrox G400上DirectFB的速度跟XVideo一樣。

            總是盡量使用最新的DirectFB。你可以在命令行中通過使用-dfbopts選項設置DirectFB的選項。層選擇可以通過副驅動模式實現,例如:-vo directfb:2(默認使用layer -1:自動選擇)

            2.3.1.2.14 DirectFB/Matrox(dfbmga)

            請閱讀DirectFB的一般介紹部分來了解概要信息。

            這個視頻輸出驅動將開啟Matrox G400/G450/G550顯卡上的CRTC2(第二個接口),顯示獨立于第一個接口的視頻。

            使其工作的方法可以在技術部分和直接從Ville Syrjala的主頁獲得。

            注意:我們沒能讓它工作,但是有人做到了。不管怎樣,將CRTC2代碼移植到mga_vid的工作正在進行中。

            2.3.1.3 MPEG解碼器

            2.3.1.3.1 DVB

            MPlayer支持Siemens,Technotrend,Galaxis或Hauppauge提供的使用Siemens DVB芯片的顯卡。最新的DVB驅動在Linux TV site。如果你想要軟件解碼你需要一個至少1GHz的CPU。

            Configure應該能檢測到你的DVB顯卡。如果它沒有,使用下列命令強制使用

              ./configure --enable-dvb
            

             

             

            如果你在非標準的路徑下有ost頭文件,使用下列命令設置路徑

              ./configure --with-extraincdir=<DVB source directory>/ost/include
            

            然后正常編譯安裝。

            使用方法

            硬件解碼(播放標準的MPEG1/2文件)使用下列命令:

              mplayer -ao mpegpes -vo mpegpes file.mpg|vob
            

            MPEG1的軟件解碼或轉化為其他格式使用下列命令:

              mplayer -ao mpegpes -vo mpegpes -vop lavc yourfile.ext
              mplayer -ao mpegpes -vo mpegpes -vop fame,expand yourfile.ext
            

            注意到,DVB顯卡只支持高度為288或576的PAL格式或者240或480的NTSC格式。你必須對其它的高度進行重新縮放,通過在-vop選項中使用scale=width:height指定你想要寬度和高度。DVB顯卡可以接受多種寬度,像720,704,640,512,480,352等等,而且在水平方向上可以硬件縮放,所以大多數情況下你不需要作水平縮放。例如對于512x384(寬高比4:3)的DivX使用下列命令:

              mplayer -ao mpegpes -vo mpegpes -vop lavc,scale=512:576
            

            如果你使用寬銀幕電影而你把它放大到整個屏幕的高度,你可以使用expand=w:h插件來增加黑帶。為了看640x384分辨率的DivX,使用下列命令:

              mplayer -ao mpegpes -vo mpegpes -vop lavc,expand=640:576 file.avi
            

            如果你的CPU對于播放720x576的DivX太慢,嘗試橫向縮放:

              mplayer -ao mpegpes -vo mpegpes -vop lavc,scale=352:576 file.avi
            

            如果速度沒有提高,嘗試豎直縮放:

              mplayer -ao mpegpes -vo mpegpes -vop lavc,scale=352:288 file.avi
            

            因為OSD和字幕使用OSD插件的擴展特性。因此,不要使用expand=w:h或者expand=w:h:x:y,使用expand=w:h:x:y:1(第5個參數:1將開啟OSD渲染)。你也許想要把圖象向上移動一點來給字幕更大的黑色區域。如果你也想要移動字幕,因為他們可能在你電視屏幕的外面,使用-subpos <0-100>來調整它(-subpos 80是個不錯的選擇)。

            為了在PAL電視上播放非25fps的電影或者因為CPU太慢,加上-framedrop選項。

            為了保持DivX文件的寬高比并獲得最理想的縮放參數(硬件水平縮放和軟件垂直縮放并且保持正確寬高比),使用最新的dvbscale插件:

            for  3:4 TV:  -vop lavc,expand=-1:576:-1:-1:1,scale=-1:0,dvbscale
            for 16:9 TV:  -vop lavc,expand=-1:576:-1:-1:1,scale=-1:0,dvbscale=1024
            

            將來

            如果你有使用問題或想要了解特性通告或者參加這個問題的討論,加入我們的MPlayer-DVB的郵件列表。請記住列表的語言是英語。

            在未來你可以期待使用DVB顯卡的自帶OSD特性顯示OSD和字幕,還有更流暢的非25fps電影播放和實時的MPEG2和MPEG4轉換(部分的解壓)。

            2.3.1.3.2 DXR2

            MPlayer支持使用Creative DXR2卡的硬件加數功能

            首先你要正確安裝DXR2的驅動。你可以在DXR2資源中心這個站點找到驅動和安裝方法。

            用法

            -vo dxr2
            啟動TV輸出
            -vo dxr2:x11-vo dxr2:xv
            啟動X11的疊加輸出
            -dxr2 <option1:option2:...>
            這個選項用來控制DXR2驅動

            DXR2使用的疊加芯片質量很差但它默認的設置應該對所有人都適用。OSD可能可以通過使用colorkey的繪制方法在疊加(不能用于TV)輸出中實現。使用默認的colorkey設定你可能獲得各種效果,一般情況下你可能看到colorkey環繞在字符周圍或者其它可笑的效果。但只要你適當的調節colorkey的設定你應該可以獲得可接受的效果。

            默認選項參見manpage。

            2.3.1.3.3 DXR3/Hollywood+

            MPlayer支持Creative DXR3和Sigma Designs Hollywood Plus卡的硬件加速播放。這些卡都使用SigmaDesigns的 em8300 MPEG解碼芯片

            首先,你將需要正確地安裝DXR3/H+的驅動,版本至少0.12.0或者更新的。你能在DXR3 & Hollywood Plus for Linux的站點找到驅動和安裝指導。Configure應該自動檢測到你的顯卡,編譯應該沒有任何問題。

            用法

            -vo dxr3:prebuf:sync:norm=x:<device>
            overlay激活overlay而不是電視輸出。你必須有一個正確配置的的overlay設置來正常工作。最簡單的配置overlay 的方法是先運行autocal。然后運行mplayer使用dxr3輸出而不打開overlay,運行dxr3view。在dxr3view中你可以調整overlay設置并實時看到效果,可能這個特性在將來會被MPlayer的GUI支持。當正確設置了overlay之后你就不再需要dxr3view了。
            prebuf打開預緩沖。預緩沖是em8300的一個特性,是它可以同時處理一幀以上的視頻。這表示當你開啟預緩沖(默認的)運行時,MPlayer將試圖保持視頻緩沖區里面總是填滿數據的。如果你是用的一臺比較慢的機器MPlayer 大概會占用接近100%的CPU。這在你播放純MPEG流(例如DVD,SVCD之類)的時候尤其明顯,因為MPlayer不需要把它重新編碼成 MPEG所以他會以很高的速度填充緩沖區。
            當不用預緩沖運行時em8300對CPU的占用率十分敏感,所以建議你打開MPlayer的-framedrop選項來防止進一步的不同步
            sync將打開新的同步機制。這個目前是一個試驗性的特性。打開這個同步特性后em8300的內部時鐘將時鐘被監視,如果它開始偏離MPlayer的時鐘它將被重新設置從而導致丟掉任何滯后的幀。
            norm=x用來設置DXR3卡的電視制式而避免使用em8300setup之類的外部工具。可用的制式有5 = NTSC,4 = PAL-60, 3 = PAL。特別的制式是2(自動選擇使用PAL/PAL-60)和1(自動選擇使用PAL/NTSC)因為他們通過測試電影的幀速率來決定是哪個制式。 norm = 0(默認的)不改變現在的制式。
            <device> = 使用的設備號如果你有超過一塊em8300顯卡。
            任何這些選擇都可以被省略
            :prebuf:sync在播放DivX電影時似乎工作的很好。有人報告過在播放MPEG1/2文件時用prebuf選項有問題。你可能會先嘗試不加任何參數,如果你遇到同步的問題,或者DVD字幕的問題,試試:sync
            -ao oss:/dev/em8300_ma-X
            音頻輸出,在其中X是設備號(為0如果只有一塊顯卡)。
            -aop list=resample:fout=xxxxx
            em8300不能工作在采樣率低于44100Hz的情況。如果采樣率在44100Hz之下,在44100Hz和48000Hz中選擇最接近的一個。例如對使用22050Hz的電影,因為44100Hz/2 = 22050,所以使用44100Hz,如果是24000Hz就使用48000Hz,因為48000Hz/2 = 24000如此等等。這對于數字音頻輸出不起作用(-ac hwac3)。
            -vop lace/fame
            (自動插入)要在em8300上觀看非MPEG的內容(例如DivX或者RealVideo)你必須設置一個libavcodec(lavc)或者libfame(fame)之類的MPEG1視頻濾鏡目前lavc有更好的速度還有更高的圖像質量,除非你使用時遇到問題,建議你使用他。-vop lavc/fame的進一步的信息可以參考man page。
            強烈推薦使用lavc。目前沒有辦法設置em8300的fps,這表示它將固定在29.97fps。因為這個強烈推薦你使用-vop lavc=<quality>:25,特別是當你使用prebuffering的時候。那么為什么是25而不是29.97?嗯,原因是當使用29.97 的時候圖像有一些跳躍。目前我們還不知道原因。如果你把它設置成25到27之間的值是圖像就穩定了。目前我們能做的就是接受這個事實。
            -vop expand=-1:-1:-1:-1:1
            盡管DXR3的驅動能把一些OSD放到MPEG1/2/4的視頻上,它比MPlayer的傳統的OSD的質量差的多,并且還有一些刷新的問題。上面的命令行將先把輸入的視頻轉換成MPEG4(這是必須的,對不起),然后使用一個擴展濾鏡,不進行任何縮放(-1:默認值),只是把正常的OSD 放到圖像上(最后的那個"1"的作用)。
            -ac hwac3
            em8300支持使用芯片的數字音量輸出來播放AC3音頻(環繞音效)。閱讀硬件AC3來了解AC3的更進一步的信息

            2.3.1.4 其他可視硬件

            2.3.1.4.1 Zr

            這是用于那些MJPEG視頻捕捉/播放卡(經過DC10+和Buz的測試,對LML33,DC10應該也能工作)的顯示驅動(-vo zr)。驅動通過把每幀圖像編碼成為jpeg格式和然后把它發送到顯卡來工作。在jpeg編碼時要使用libavcodec,而且必須使用。

            用特殊的cinerama模式,你可以通過兩個投影儀和兩塊MJPEG卡用真正的寬銀幕方式觀看電影。根據分辨率和質量的設置,這個驅動可能要求極強的CPU處理能力,如果你的機器太慢的話記住使用-framedrop,注意:我的AMD K6-2 350MHz(加上 -framedrop選項)足夠看VCD尺寸的東西和經過縮小的電影。

             

            這個驅動需要一個內核驅動,可以在http://mjpeg.sourceforge.net找到,你必須先讓它工作。MJPEG卡的存在能被configure腳本自動檢測到,如果自動檢測失敗,用這個命令強制檢測

              ./configure --enable-zr
            

             

             

            驅動的輸出可以用一些選項設置,在man page里面可以找到一份長長的可用選項的描述,一個比較短的選項列表可以運行這個命令獲得

              mplayer -zrhelp
            

            縮放和OSD (on screen display)這類功能這個驅動不能處理,但可以用視頻濾鏡來完成,例如你有一個分辨率是512x272 的電影,而你希望用你的DC10+用全屏幕觀看,主要有三種可能的方法,你可以把電影寬度縮放到768384,或者192。考慮到運行速度和質量的原因,我會選擇使用快速二次線型軟件縮放濾鏡把電影縮放到384x204。命令行是這樣的

              mplayer -vo zr -sws 0 -vop scale=384:204 movie.avi
            

            畫面的切割可以用crop濾鏡也可以用驅動自己完成。假設電影太寬了,在你的機器上顯示不了,那么你會想要用 -zrcrop來切割電影的寬度,那么你應該輸入下面的命令

              mplayer -vo zr -zrcrop 720x320+80+0 benhur.avi
            
            如果你想要使用crop濾鏡,你可以運行
              mplayer -vo zr -vop crop=720:320:80:0 benhur.avi
            

            多個-zrcrop就會調用cinerama模式,你可以把電影投射到幾個電視或者投影儀上來制造一個大銀幕,設想你有兩個投影儀,左邊那個連到你的機器的/dev/video1而右邊那個連到你的機器的/dev/video0上的DC10+上,電影的分辨率是704x288,同時假設你希望右邊的投影儀顯示黑白效果而右邊的投影儀顯示的用質量10來顯示jpeg幀那么你需要使用下列命令:

              mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \
                      -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 movie.avi
            

            你發現在第二個-zrcrop之前出現的選項只作用于DC10+,而第二個-zrcrop之后的選項作用于你的機器。在cinerama中能使用的MJPEG卡最多為4塊,所以你可以制作一片2x2的視頻墻

            最后還有一個重要的注意事項:不要在播放期間在播放設備上啟動或停止XawTV,它將導致你的計算機崩潰。然而,首先啟動XawTV, 然后啟動MPlayer,等MPlayer播放結束,然后停止XawTV是沒有問題的。

            2.3.1.4.2 Blinkenlights

            這個驅動可以使用Blinkenlights UPD兼容協議播放。如果你不知道Blinkenlights是什么,你就不需要這個驅動。

            2.3.1.5 電視輸出支持

            2.3.1.5.1 Matrox G400顯卡

            在Linux下你有2種方法使G400的電視輸出工作:

            重要提示:對于Matrox G450/G550的電視輸出方法看下一節!

            • XFree86:使用能在Matrox的站點獲得的驅動和HAL模塊。這將在電視上實現X。
              這種方法不給你加速播放,不像Windoze! 第二個輸出頭只有YUV幀緩沖,BES(Back End Scaler,在G200與G400與G450與 G550顯卡上的YUV縮放)無法用于它!windows的驅動以某種方式解決了這個問題,有可能是通過使用3D引擎來縮放,并用YUV幀緩沖顯示圖像。如果你確實想要使用X,使用-vo x11 -fs -zoom選項,但這將十分緩慢,而且會開啟Macrovision版權保護 (你能使用這個perl腳本繞過Macrovision。
            • 幀緩沖:在2.4的內核中可以使用matroxfb模塊而2.2的內核中沒有電視輸出的特性,所以對它是沒有用的。你必須在編譯時開啟所有與matroxfb相關的特性(除了MultiHead之外),并且把他們全部編譯成模塊! 你還需要開啟I2C功能。
              1. 進入TVout/matroxset然后運行make。把matroxset安裝到你的PATH中的某個地方。
              2. 如果你沒有裝fbset,進入TVout/fbset然后運行make。把fbset安裝到你的PATH中的某個地方。
              3. 然后進入到MPlayer源碼目錄中的TVout/子目錄,以root執行./modules。你的文本模式的控制臺將進入到幀緩沖模式(沒有方法改回來!)。
              4. 下一步,修改并運行./matroxtv腳本。這將給你提供一個十分簡單的菜單。按2ENTER。現在你的顯示器和電視上應該有一樣的圖像。如果電視(默認PAL)圖畫有些奇怪的條紋,腳本不能夠正確地設置分辨率(使用缺省的640x512)。試試菜單里的其他分辨率或者/和試試fbset。

              Yoh。接著的任務是使tty1上的光標(或者別的什么)消失,和關閉屏幕抑制顯示。執行下列的命令:

              echo -e '\033[?25l'或者setterm -cursor off
              setterm -blank 0

              你可能想把上述內容腳本,同時也清屏.. 讓光標出現的命令是:
              echo -e '\033[?25h'或者setterm -cursor on

              Yeah kewl。用mplayer -vo mga -fs -screenw 640 -screenh 512 <filename>來播放電影
              (如果你正在使用X,用CTRL-ALT-F1之類的快捷鍵換成matroxfb!)
              分辨率換成640x512如果你用的不是這個分辨率。
              享受超快超多特性的Matrox電視輸出(比Xv還要好)!

            制作一個Matrox電視輸出線

             

             

            G400的電纜線:CRTC2連接器的第4根針是復合視頻信號. 基線是第6,第7和第8根針。(Bal醶s R醕z提供信息)

            G400的電纜線:CRTC2連接器的第1根針是復合視頻信號. 基線是第5,第6,第7和第15根針。(Bal醶s R醕z提供信息)

            2.3.1.5.2 Matrox G450/G550顯卡

            這些顯卡的電視輸出支持最近剛被引入,而且還沒有進入內核的主流。據我所知目前不能使用mga_vid 因為G450/G550的驅動只能工作在一種配置下面:第一個CRTC芯片(有更多特性)接第一個display(顯示器),第二個 CRTC(沒有BES -- BES的解釋看上面G400的部分)接電視上,所以你目前只能使用MPlayer的 fbdev的輸出設備。

            目前第一個CRTC不能傳送到第二個頭。內核的matroxfb驅動的作者 -- Petr Vandrovec -- 可能正在努力支持它,使用把第一個CRTC的輸出同時顯示在兩個頭上的方法,像目前G400推薦的一樣,看上面的部分。

            需要的內核補丁和howto的細節可以從http://www.bglug.ca/matrox_tvout/下載。

            2.3.1.5.3 ATI顯卡

            引言

            ATI目前不想對他的任何一種電視輸出芯片提供Linux下的支持,由于他們授權的Macrovision技術。

            ATI顯卡在Linux上電視輸出的支持情況

            • ATI Mach64 gatos支持。
            • ASIC Radeon VIVO gatos支持。
            • RadeonRage128:MPlayer支持!查閱VESA驅動VIDIX兩節。
            • Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4atitvout支持。

            在其它顯卡上,只能使用VESA驅動,沒有VIDIX可用。但需要強大的CPU。

            你唯一需要做的事情 -- 在啟動你的電腦之前插上電視連接器的插頭因為視頻BIOS只在自舉期間初始化一次。

            2.3.1.5.4 Voodoo 3

            查閱這個網址

            2.3.1.5.5 nVidia

            首先,你必須從http://nvidia.com下載封閉源碼的驅動,我不會描述安裝和配置的過程因為它不屬于這篇文檔的范圍。

            當XFree86, XVideo, 和3D加速都正常工作之后,根據下面的例子(改寫成適合你的顯卡/電視)編輯你的XF86Config 中你的顯卡的Device部分:

            Section "Device"
                    Identifier      "GeForce"
                    VendorName      "ASUS"
                    BoardName       "nVidia GeForce2/MX 400"
                    Driver          "nvidia"
                    #Option         "NvAGP" "1"
                    Option          "NoLogo"
                    Option          "CursorShadow"  "on"
            
                    Option          "TwinView"
                    Option          "TwinViewOrientation" "Clone"
                    Option          "MetaModes" "1024x768,640x480"
                    Option          "ConnectedMonitor" "CRT, TV"
                    Option          "TVStandard" "PAL-B"
                    Option          "TVOutFormat" "Composite"
            
            EndSection
             
             
            出處:http://web.njit.edu/all_topics/Prog_Lang_Docs/html/mplayer/Chinese/video.html
            posted on 2012-10-30 09:28 雙魚座的程序員 閱讀(572) 評論(0)  編輯 收藏 引用 所屬分類: OpenSource
            国产精品欧美亚洲韩国日本久久| 国产成人精品久久二区二区| 国产日产久久高清欧美一区| 狠狠精品久久久无码中文字幕| 久久综合九色综合欧美就去吻| 一级做a爱片久久毛片| 久久九九青青国产精品| a级成人毛片久久| 免费观看久久精彩视频| 国产精品久久久久久福利69堂| 久久久久久久综合日本亚洲| 免费国产99久久久香蕉| 久久99精品国产麻豆不卡| 久久久不卡国产精品一区二区| 人人狠狠综合久久亚洲高清| 无码人妻久久一区二区三区蜜桃| 久久久久久久精品成人热色戒 | 欧美久久久久久| 亚洲精品无码久久久久AV麻豆| 亚洲午夜无码久久久久小说| 亚洲中文字幕久久精品无码喷水 | 国产精品一久久香蕉国产线看| 久久99精品久久只有精品| 大伊人青草狠狠久久| 丁香五月综合久久激情| 亚洲午夜无码AV毛片久久| 久久国产精品成人影院| 国产精品一区二区久久精品无码| 亚洲国产精品成人AV无码久久综合影院| 偷偷做久久久久网站| 国产精品美女久久久久| 久久亚洲天堂| 久久成人精品视频| 午夜精品久久久久久| 九九99精品久久久久久| 麻豆久久久9性大片| 2020最新久久久视精品爱| 久久久久亚洲AV无码观看| 青草影院天堂男人久久| 久久免费看黄a级毛片| 国产69精品久久久久9999|