The Xine Video Player HOWTO <author>作者:Rich Wareham, <tt><richwareham@users.sourceforge.net></tt><newline> 譯者:陳健智 <tt><htmlurl url="mailto:clavin@mail.rm.kmu.edu.tw" name="clavin@mail.rm.kmu.edu.tw"></tt> <date>v1.13, 2001 September 14 翻譯日期:17 Oct 2001 <abstract>此文件說明如何安裝,設定與使用 Xine 影片播放軟體。以下說明僅適用於 Xine 0.5 以後版本• </abstract> <toc> <sect>簡介 <p> 此文件是為一般使用者所寫,提供如何使用 Xine 影片播放軟體來播放影片檔與未加密 DVD 影片的方法. 請注意 Xine 影片播放軟體在未修正前是無法播放 CSS-加密的 DVD 影片光碟。 <p> 此說明僅適用於 Xine 0.5 以後版本• <sect1>此文件的新版本 <p> 此文件的新版本可從下列位址得到: <itemize> <item><htmlurl url="http://xine.sourceforge.net/"> <item><htmlurl url="http://www.srcf.ucam.org/~rjw57/xine"> </itemize> 從下列位址可以得到此文件最新版本的各種格式: <htmlurl url="http://www.srcf.ucam.org/~rjw57/xine"> <sect1>回應 <p> 任何評論,錯誤報告,額外資訊和所有批評都請直接寄給: <verb> richwareham@users.sourceforge.net </verb> <sect1>拋棄聲明 <p> 本文件不為其內容負任何責任。使用此觀念,範例和其他內容請自行負責。 此外,這僅是一個早期版本,很有可能是不正確與錯誤的。 許多可能的設定方法中的一個將在此描述。 在 Linux 的世界中,做一件事通常有許多方法。 就我所知,這裡所提到的軟體都受到 GNU 通用公共許可證或較寬鬆通用公共許可證的規範。 <sect1>版權訊息 <p> 此文件著作權歸屬 Xine c2001 計畫所有並依照下列規範散佈: <itemize> <item>此文件可以在所有拷貝保留此版權訊息下以任何物理介質或電子方式全部或部份重製和散佈。 商業性質的散佈是受允許且鼓勵的; 然而, 作者樂於在這種散佈時得到告知。 <item>所有翻譯,衍生產品或混合任何此文件的聚合產品都受到此著作權的保護。 換言之,你不能生產任何此 HOWTO 的衍生產品而加上對散佈的額外限制。 </itemize> <sect1>我如何提交改變或添加到此 HOWTO? <p> 較好的方法是編輯 Xine-HOWTO.sgml 檔案合併改變, 並如下述方法新增一個 diff 檔案 <verb> diff -uw 原始檔案 新檔案 </verb> 且寄到 <tt>richwareham@users.sourceforge.net</tt>. 如果你不熟悉 SGML, 沒關係。 任何形式的改變或新訊息都可被接受。 新增 diff 檔案只是讓 HOWTO 維護者較易維護罷了。 :-) <sect>關於 Xine <p> Xine 是一個為 Unix-類作業系統設計的通用公共許可證規範影片播放軟體。 它支援 MPEG-2 與 MPEG-1 壓縮格式 (聲音 + 影像 複合) 訊號, MPEG 聲音檔案 (例如: MP3) 與 AVI 檔案 (使用由 Windows 取得的一些 DLL 檔案). Xine 播放影像與聲音訊號資料流並在播放時同步播出。 依照資料流的性質,播放時所需處理器能力有別。 全畫框速度播放 MPEG 2 檔案使用 400 MHz PII 系統就可以達成。 Xine 可直接播放 Video CDs, SVCDs and DVDs 光碟。 不幸的是,播放加密/鎖碼的 DVD 光碟在某些國家仍有法律性的爭議所以我們無法在 Xine 軟體中加入任何 DVD 解鎖/解碼的程式碼。要播放這種 DVD 光碟,你將需要其他程式或一個特別的 Xine 外掛程式。細節請詳見 播放 DVD 光碟 一章。 Xine 強調的是直接且有效率。 在此時並不發展多餘的華麗外觀。 主要目的僅在於達到平順播放影片的目標。 <sect1>我從那裡可以得到 Xine 軟體? <p> Xine 可以從 <htmlurl url="http://xine.sourceforge.net/">得到。 翻譯時最新版本為 0.9.2. Xine 同時提供 tar.gz 壓縮檔與 Debian 和 RPM 包裝格式。 <sect1>支援平台與系統需求 <p> Xine 需要本機具備顯示卡與螢幕 (透過網路的 X-session 播放現在未提供也將可能永遠不會實現,因為解碼的影像資料流需要巨量的頻寬)。 Xine 需要 MIT-SHM ( MIT 記憶體分享延伸功能),此功能 XFree86 從 3.3.x 就已支援,或 X-Video 延伸功能 (Xv) -- 此功能較快且支援全螢幕操作但只有部份 XFree86 4.x 驅動程式有支援。 想了解更多 Xv 功能 (並知道你的顯示卡是否被支援),請參考下述『增進 Xine 效能』一章或參考 XFree86 組織的網站 (<htmlurl url="http://www.xfree86.org/">). Xine 也支援 Dxr3/Holywood+ DVD 解壓縮卡的使用來做 DVD 輸出. Xine 只能使用這些卡來播放 MPEG 和 DVD . 假如你未使用 Xv 功能,建議你設定螢幕顏色深度為 16 位元-每-點 (bpp) 以增進速度。 Xv 似乎在 16bpp 和 24bpp 時效能較佳。 假如你擁有 Matrox G200 或 G400 圖形顯示卡你可選用 sybcfb/teletux 影像輸出驅動程式。 請參看 Xine 內含的 README.syncfb 檔案來了解詳情。 使用這個驅動程式的好處是可以做到影像圖形與螢幕的同步更新以除去常發生於快速移動場景時的 "撕裂"毛邊雜訊。 你需要一張支援 OSS 或 ALSA 驅動程式的音效卡。 ESD 音效常駐程式也支援。本 HOWTO 假設你已經正確的安裝並設定妥你的音效卡與 X 伺服器。 Xine 已經被成功安裝且使用在下列系統: <itemize> <item> Linux on a Pentium III 667 using XFree86 4.01 on a nVidia Riva TNT 2 <item> Linux on a Pentium II 400 using XFree86 3.3.6, 4.0, 4.01 and 4.02 on a nVidia Riva TNT <item> FreeBSD 4.1-Release on a Celeron 400 using XFree86 3.3.6 and 4.0.1 on a Matrox G400 <item> Linux on a Pentium 120 (no MMX) using XFree86 3.3.5 on a Trident 9660 <item> Linux on an AMD K6-266 using XFree86 3.3.5 on a ATI AIW M64-8Mb PCI <item> Linux on an AMD K6-III 450 using XFree86 3.3.6 on a ATI RageII 8MB <item> Linux on a Celeron 633 using XFree86 4.0.1 on a ATI AIW Rage128-16MB <item> Linux on a Amd K7@550 using Xfree 4.0.1 on a Ati Rage 128 16 Mb (Xv is working on this configuration with drivers from GATOS project) <item> Linux on a Celeron 667 using XFree86 4.0.2 on a Riva TNT 16Mb (Xv is working on this configuration with closed-sources drivers version 0.9.5 from NVidia). <item> Linux on a Pentium III 500 using XFree86 4.0.2 on a Matrox G400. </itemize> 移植到 非-Intel 平台的工作正進行中但仍不成熟。 Xine 在 Mac 上的 Linux/PPC 工作正常。 對 Irix(TM) 和 Solaris(TM) 系統平台的支援也在進行中. <sect1>我可以到那邊問 Xine 的問題或報告臭蟲? <p> 這裡有一個位於 Sourceforge 叫 xine-user 的郵件列表,你可以在這裡問問題。 所有資料也詳見 Xine 網站 (<htmlurl url="http://xine.sourceforge.net/">). 也有一個 IRC 聊天室。 <tt>#xine</tt> 它位於 <tt>irc.openprojects.net</tt>. <sect>編譯並安裝 Xine<label id="compiling"> <p> 下列指引假設你是用由 Xine 網站下載的原始碼壓縮檔安裝•你將至少需要兩個檔案 (名稱為 <tt>xine-lib.x.y.z.tar.gz</tt> 和 <tt>xine-ui.x.y.z.tar.gz</tt>). 請確定這兩個檔是同一個 Xine 版本. 下載檔案到你方便的目錄。打開終端機程式並進入此目錄。 例如,若你下載到 <tt>/home/rich/src/</tt> 打下列指令: <verb> $ cd /home/rich/src/ </verb> 這個 <tt>xine-lib</tt> 檔案是 Xine 執行時程式庫它 包括 Xine 引擎的程式碼本身. 而 <tt>xine-ui</tt> 檔案包括一些 Xine 的使用者介面. 現在已經具備一個 X-windows 為基礎的圖形化使用者介面和一個實驗性的 純文字介面 (它將影像轉為所謂的 'ASCII-art'). 輸入下列指令. 它將解壓縮 Xine 程式庫和使用者介面原始壓縮檔. 用 <tt>x.y.z</tt> 取代你下載的 Xine 版本. <verb> $ tar xvzf xine-lib.x.y.z.tar.gz $ tar xvzf xine-ui.x.y.z.tar.gz </verb> <sect1>那裡有安裝指引? <p> 全部的安裝指引包括於 <tt>INSTALL</tt>檔案中。 下述說明為安裝指引的縮減版。 <sect1>快速啟動安裝說明 <p> 解壓縮 Xine 原始碼壓縮檔如 <ref id="compiling" name="編譯並安裝 Xine">一章所述。 <tt>xine-lib</tt> 檔案必須先安裝. 先轉到 <tt>xine-lib.x.y.z</tt> 目錄並依照你的機器設定原始碼且以下列指令編譯: <verb> $ ./configure $ make </verb> 你可能想用 <tt>./configure --help</tt> 指令去看如何設定任何機器相關的選項. 現在,使用 <tt>root</tt>權限, 鍵入下列指令: <verb> $ make all install </verb> 在你編譯 <tt>xine-ui</tt>之前, 你可能需要告訴你的系統 xine 程式庫所在目錄, 你可能需要設定 <tt>LD_LIBRARY_PATH</tt> 環境變數為你安裝 Xine 程式庫的目錄且/或執行 <tt>ldconfig</tt> 程式. 當 Xine 程式庫被安裝後, 你可以在 <tt>xine-ui.x.y.z</tt> 目錄重複下列指令. <sect1>安裝 Xine 在不同的目錄 <p> 要安裝 Xine 在,例如 <tt>/usr/local/xine</tt>目錄, 使用下列選項去 <tt>設定</tt> <verb> $ ./configure --prefix=/usr/local/xine </verb> 且, 以 <tt>root</tt> 權限輸入 <verb> $ make install </verb> <sect1>我如何提供 C 語言編譯器額外的旗標(flags)? <p> 你可以設定 <tt>GLOBAL_CFLAGS</tt> 變數且再次執行 <tt>./configure</tt>。 可能需要指定額外的 include paths 或 library paths 給編譯器。例如: <verb> $ export GLOBAL_CFLAGS="-I/usr/include -L/home/guenter/xine_libs" </verb> <sect1>我用 K7 處理器,我如何編譯 Xine ? <p> 假如你用較新的 gcc 你可以試著編譯入更多 K7 支援功能 (especially better instruction sheduling)。 若 <tt>configure</tt> script 無法正確偵測你的處理器/gcc 編譯器,試著以正確的描述句明確的設定 <tt>XINE_BUILD</tt> 環境變數,例如: <verb> $ export XINE_BUILD=k7-pc-linux-gnu $ rm -f config.cache $ ./autogen.sh $ make $ make install </verb> <sect1>已編譯好的二進位檔 <p> 若你不希望自己編譯 Xine , Xine 網站裡有幾個預先編譯好的"套件"方便取用。 注意:也有其他方法可以安裝"套件",你可能希望用圖形介面程式如 <tt>kpackage</tt> 來安裝。 <p><bf>請自己修正:</bf> 下列說明在更新的套件可能需要修正. <sect2>Debian 套件 (.deb) <p> If you are using the `unstable' branch of Debian, you can install Xine by using the following command as <tt>root</tt>: <verb> $ apt-get install xine-ui </verb> <sect2>Red-Hat 套件 (.rpm) <p> 從 Xine 網站下載 RPM 檔並以 <tt>root</tt> 權限輸入下列指令 , 記得以下載的檔名取代下述檔名。 <verb> $ rpm -ivh xine-x.x.x.rpm </verb> <sect>使用 Xine <p> 在使用 Xine 時,你可以輸入命令列參數也可以不輸入。 若你想播放 VCD 或 DVD,最簡單的方法就是輸入下述指令: <verb> $ xine </verb> 然後在 Xine 控制列單擊 DVD 或 VCD 按鈕。 Xine將適當的掃描 DVD 或 VCD。 若 Xine 發現DVD 或 VCD 存在,你可以按下 `play' 按鈕開始播放電影了。 當 Xine 首次啟用時,Xine 的主視窗將顯示 (黑底的 Xine logo)。 在畫面上單擊滑鼠的 右鍵將出現 Xine 的控制面板。 Xine 的控制面板類似 VCR 的面板有播放,暫停,停止和移動到起始點或終點的功能。 想知道使用方法,可使用下列指令 <verb> $ xine --help </verb> <sect1>在命令列指定影片來源. <p> Xine 使用 <it>media resource locator</it> (MRL)來指定影片來源。有用的 MRLs 如下: <itemize> <item><tt>file://some/file.vob</tt> - 指定檔案 <tt>/some/file.vob</tt>. <item><tt>fifo://[[mpeg1:mpeg2]:/]some/fifo</tt> - Xine 從特別的 FIFO 管線得到影片資料 <tt>/some/fifo</tt>. 預設,Xine 假設資料流為 mpeg-2 格式,可在 MRL 中明確的指定使用 <tt>mpeg1</tt> 或 <tt>mpeg2</tt>。 <item><tt>stdin://[mpeg1:mpeg2]</tt> - Xine 從 stdin 取得影片。 使用此 <tt>fifo://</tt> MRL, Xine 假設為 mpeg2 除非額外設定。 <item><tt>dvd://VTS_xx_y.VOB</tt> - 使用 DVD 上的 指定 VOB 檔。這個方法與使用 <tt>file://</tt> MRL 方法是不同的,因為 Xine 會直接從 DVD 讀進資料而非透過 Unix 檔案系統。 <item><tt>vcd://track</tt> - 播放 VCD 上特定的軌。 </itemize> 總歸一句, Xine 的執行方法是 <verb> $ xine <mrl> </verb> 舉例來說,播放檔案 <tt>/some/where/foo.vob</tt>: <verb> $ xine file://some/where/foo.vob </verb> 除了上述方法,你也可以直接指定一個檔案播放,例如: <verb> $ xine /some/where/foo.vob </verb> 你也可以暗示 MRL <tt>stdin://mpeg2</tt>: <verb> $ xine - </verb> <sect2>範例 <p> 下列方法都可以播放這個檔 <tt>/path/foo.vob</tt>: <verb> $ xine /path/foo.vob $ xine file://path/foo.vob </verb> Xine 支援 xdnd 協定 (第 3 版) 所以假如有一個支援這個協定的檔案瀏覽器 (如 gmc),你可以拖拉影片檔到 xine 來播放。 播放 VCD 的第三軌: <verb> $ xine vcd://3 </verb> 直接播放 DVD: <verb> $ xine dvd://VTS_01_1.VOB </verb> <sect1>選擇聲音軌 <p> 有些影片檔有許多聲音軌 (例如 DVDs)。 有兩種方法可以選擇聲音軌。 最簡單的方法是使用 Xine 控制面板上聲音軌圖示(像喇叭形狀)旁的箭頭來選擇。 或者,你也可以使用 <tt>-a</tt> 命令列參數。 例如要播放檔案的第三音樂軌 <tt>/path/foo.mpg</tt>: <verb> $ xine -a 3 /path/foo.mpg </verb> 對 MPEG-1 影片,只支援 mpeg 聲音 (階層 1, 2 and 3)。 MPEG-2 資料流可以有不同形式的聲音流。 Xine 支援 AC3 (dolby digital), mpeg 和 LPCM 聲音。 它們被分配到下述軌: <verb> Track selected audio stream 0- 7 AC3 stream 0-7 8-15 MPG audio stream 0-7 16-23 PCM audio stram 0-7 </verb> 例如,播放 PCM 資料流 0 使用指令 <verb> $ xine -a 16 file.vob </verb> <sect2>SPDIF 輸出 <p> 有些音效卡支援數位輸出稱為 SPDIF。若用命令列參數指定 <tt>-S</tt>, Xine 會試圖使用它。 注意:這個功能只有在你設定使用 ALSA 驅動程式且你的 ALSA 驅動程式支援時才有用。 例如: <verb> $ xine -S file.vob </verb> <sect2>改變外表 <p> Xine 支援外表改變 (像 XMMS 或 Winamp 程式). 要改變程式外表, 只要增加或在 <tt>~/.xinerc</tt> 檔案編輯下列行: <verb> skin: skin_name </verb> <tt>skin_name</tt> 是一個已經安裝的程式外表檔名. Xine 附帶下列程式外表: lcd, xinetic, metal. <sect1>顯示字幕 <p> DVDs 和 VOB 檔案可能包含字幕資訊, Xine 可以在影片中顯示字幕。 這個功能預設是關閉的但是可以改變 Xine 控制面板中字幕圖示右側字幕軌的號碼來開啟。 另外,你也可以使用 <tt>-u</tt> 命令列參數。 例如, 顯示編號 0 的字幕,使用: <verb> $ xine -u 0 <file or MRL> </verb> <sect1>改變影像輸出方法 <p> 要改變影像輸出方法, 使用 <tt>-V</tt> 命令列參數. 例如使用 MIT-SHM (XShm) 顯示方法, 使用 <verb> $ xine -V XShm </verb> 使用 XVideo (Xv) 輸出: <verb> $ xine -V Xv </verb> Xine 會'記得'你對影像輸出方法的改變所以你的改變將在 Xine 重新啟動後仍然存在. <sect1>強制使用特定的聲音驅動程式 <p> 命令列參數 <tt>-A</tt> 可以用來選擇 OSS (<tt>oss</tt>), ALSA 0.5 (<tt>alsa05</tt>), ALSA 0.9 (<tt>alsa</tt>), ESD (<tt>esd</tt>), ARTS (<tt>arts</tt>) 或 NULL (null) 驅動程式。 例如,強制使用 ALSA 驅動程式: <verb> $ xine -A alsa /path/file.mpg </verb> 注意: 假如你使用 ALSA 0.5, 你應該使用 alsa05 輸出驅動程式. NULL 驅動程式並不使用任何音效卡硬體僅只適用於測試用途。 Xine 會'記得'你對音效輸出方法的改變所以你的改變將在 Xine 重新啟動後仍然存在. <sect1>自動播放 Auto-play <p> Xine 可以設定當它使用 <tt>-p</tt> 參數啟動時會自動播放. 例如: <verb> $ xine -p /path/file.mpg </verb> <tt>-p</tt> 參數也可以另加上其他選項來進一步控制 Xine : <itemize> <item><tt>f</tt> - 啟動 Xine 於全螢幕模式 (Xv only). <item><tt>h</tt> - 隱藏控制面板. <item><tt>q</tt> - 當影片播放完畢自動退出 Xine . <item><tt>d</tt> - 從 DVD 取得播放清單。 <item><tt>v</tt> - 從 VCD 取得播放清單。 </itemize> 例如,全螢幕自動播放且從 DVD 取得播放清單: <verb> $ xine -pfhd </verb> <sect1>用遙控器來控制 Xine <p> <bf>工作中: 包括 Tobi Jaffey's post about LIRC</bf> <sect1>使用時的小技巧 Tips and tricks <p> 下列方法是使用時的一些小技巧使你能更善用 Xine。 <sect2>移除終端機輸出 <p> 因為 Xine 仍在發展中,它執行時會輸出大量資訊到終端機。 要在開始 Xine 時移除終端機輸出: <verb> $ xine mrl 2>&1 >/dev/null </verb> <sect2>自動執行移除終端機輸出 <p> 你可以用一個簡單的命令殼指令稿(shell script)在載入 Xine 時自動執行這件事。 <verb> #!/bin/sh xine "$@" 2>&1 >/dev/null </verb> <sect1>微調 Tweaking Xine <p> 在 <tt>~/.xinerc</tt> 檔案中有一些額外的選項. 請參看隨 Xine 所附的 <tt>README.xinerc</tt> 檔案以得知詳情. <sect>用 Xine 播放 DVDs <p> Xine 對 <it>未加密</it> DVDs 已內建(out-of-the-box)支援。 大部分 DVDs 是用 Content Scrambling System (CSS)系統加密的。 寫作和發表軟體來破解這種加密仍有法律上的爭議。 因為對 CSS-相關程式碼的不確定法律因素, Xine 並不內含這個功能。 要得到這個功能,你必須下載一個特別的 外掛程式 plugin。 有許多常見的外掛程式, 如 captain_css 外掛程式, dmd (Digital Movie Disc)外掛程式和 dvdnav 外掛程式。 <tt>captain_css</tt> 外掛程式是完整的包裝可以從 <htmlurl name="http://www.geocities.com/captain_css/" url="http://www.geocities.com/captain_css/"> 得到. <tt>dmd</tt> 外掛程式是基於 VideoLan 企劃的成果, 它的主要特點訴求是三角形支援. 可以從 <htmlurl name="http://www.geocities.com/xinedvdplugin/" url="http://www.geocities.com/xinedvdplugin/">得到. <tt>dvdnav</tt> 外掛程式更具野心它的目標是提供 Xine 完全的 DVD 選單支援. 它執行需要 libdvdread 程式庫. 更多的資訊可以從 <htmlurl name="http://dvd.sourceforge.net/" url="http://dvd.sourceforge.net/">得到. Y你也必須有一個檔 <tt>/dev/dvd</tt>,它指向你的 DVD 裝置。 若你使用你的 DVD 裝置當作你的主要 CDROM (例如:音樂光碟播放程式使用你的 DVD 光碟機) 那試著以root 執行下列指令: <verb> $ ln -s /dev/cdrom /dev/dvd </verb> 或者,若你知道你的 DVD 是 (例如: /dev/hdc) 那你可以用下列指令: <verb> $ ln -s /dev/hdc /dev/dvd </verb> <sect>用 Xine 觀賞 AVI 檔案 <p> 從 Xine 0.3.6版起, Xine 已經可以播放 Windows AVI 檔案。 要達到此功能它使用了 Windows 驅動程式檔 (DLLs) 來播放。 Xine 預設會到 <tt>PREFIX/lib/win32/</tt> 目錄去找。 <tt>PREFIX</tt> 就是你安裝 Xine 的目錄. 如果你沒有指定任何 <tt>--prefix</tt> 選項給 <tt>./configure</tt>, 這 將會是 <tt>/usr/local</tt>. 這個路徑可以在你的 <tt>~/.xinerc</tt> 檔案中加入下列行來重設: <verb> win32_path: [directory to look in] </verb> 一個包含觀看大多數 AVI 檔案用的 DLLs 的 Zip 檔 可從 <htmlurl url="http://bpinaud.free.fr/video" name="http://bpinaud.free.fr/video"> 和 <htmlurl url="http://divx.euro.ru/" name="http://divx.euro.ru/"> (檔名叫 <tt>binaries.zip</tt>). 注意:只有 Intel-類的平台適用. Xine 使用嵌入式版本的 <htmlurl url="http://ffmpeg.sourceforge.net/" name="ffmpeg"> 程式庫也支援 DivX 解碼;-) 和 MJPEG avi 檔案. 這個在非Intel 平台也可用. 為了要使用 ffmpeg 程式庫來播放 AVIs, 你必須加下列一行 <verb> ff_priority: 10 </verb> 到你的 <tt>~/.xinerc</tt> 檔案中. <sect1>若 Xine 在播放 AVI 檔案時當掉,怎麼辦? <p> 此 Win32 codec (AVI 檔案支援) 仍是實驗性質。 若你的系統符合以下要求它應該可以工作: <itemize> <item>Xv 驅動程式可用。 <item>此 AVI 檔包含由下列 DLLs 所支援的影片與音效資訊流. <item>你有適當的 DLLs 在 <tt>/usr/lib/win32/</tt> </itemize> 但是它也可能莫名其妙就當掉。 特別是在檔案內含陌生的聲音資料流時。 <sect>各平台的特別注意事項與系統需求 <p> <sect1>FreeBSD <p> <sect2>Xine 分配(allocating) 影像失效 <p> 確定你有足夠的分享記憶體。 預設值是相當有限的。 編輯 <tt>/etc/sysctl.conf</tt> 檔案: <verb> kern.ipc.shmmax=67108864 kern.ipc.shmall=32768 </verb> <sect2>播放 VCD <p> 現在 (因為 FreeBSD 核心的關係) Xine 僅能夠從 ATAPI 光碟機播放 VCDs 而不能從 SCSI 光碟機播放。 現在 (Jan 2001), FreeBSD-穩定版需要一個核心的補釘檔來使 VCDs 可以工作 (若你不確定如何用補釘檔來建構一個自訂核心,請檢查 FreeBSD 文件)。 你需要補釘的檔案是 <tt>/sys/dev/ata/atapi-cd.c</tt> ,此補釘檔是包含於 <tt>README.freebsd</tt> 檔案中隨 Xine 原始碼散佈。 <sect>增進效能<label id="performance"> <p> 播放影片 (特別是 DVDs) 是 <it>非常</it> 依賴處理器的。 要幫助播放平順, Xine 試圖使用各種形式的硬體加速功能。 列資料對 x86 PCs 和 Linux 是最相關的所以請在你的系統架構中加入所有技巧。 <sect1>硬體 <p> 本章列出一些有用的硬體。 <sect2>AGP bus 和顯示卡. <p> 一個 AGP 顯示卡讓電腦傳送影像資料到顯示卡更有效率。 因此播放會較平順,強烈建議使用。 <sect2>RAM 超頻(僅限高手!) <p> 若你熟悉 BIOS 設定,你可以將所有 RAM 在 BIOS 中相關的時間設定 (如 CAS delay, RAS to CAS delay, 等) 設為 2. 你可能想嘗試一些瘋狂的技巧, 如陳述於 (舉例來說) <htmlurl url="http://www.overclockers.com/tips105/index03.asp">. 此網站是利用一個 Windows-工具來充分利用晶片組功能,你可以用 FreeBSD 上的 pciconf來作同樣的事。 在一些 linux 發行套件中也有類似工具。若使用 via apollo pro 晶片組有問題,請聯繫 heiko (<tt>heiko@users.sourceforge.net</tt>). <p>在 <htmlurl url="http://powertweak.sourceforge.net">可以找到一個調整的好工具。. <sect1>設定並使用原生裝置(raw devices)供 dvd 讀取 <p> linux 核心 2.4.x 開始支援原生裝置也有給較舊核心的補釘檔 <htmlurl url="ftp://ftp.kernel.org/pub/linux/kernel/people/sct/raw-io/">. 要使用原生裝置,要先連接一個空的原生裝置給你的 dvd 裝置,例如: <verb> $ raw /dev/raw1 /dev/hdc </verb> 然後,產生一個鏈結叫 "rdvd" 指向原生裝置 <verb> $ ln -s /dev/raw1 /dev/rdvd </verb> <p> 有些系統套件可能需要你去設定連結如: <verb> $ raw /dev/raw/raw1 /dev/hdc $ ln -s /dev/raw/raw1 /dev/rdvd </verb> . <sect1>XVideo 延伸功能 <p> XVideo 延伸功能是 XFree86 X-伺服器從 4.0 以後的一個功能。 現在有下列顯示卡支援: <descrip> <tag/3DFX Voodoo 3/ The 3dfx driver works in XFree86 version 4.0.3 and above. <tag/nVidia GeForce/ Xv only works with nVidia's own drivers. The place to ask is the IRC room <tt>#nvidia</tt> on <tt>irc.openprojects.net</tt>. They can be downloaded from <htmlurl url="http://www.nvidia.com/"> <tag/nVidia TNT2 and TNT1/ As with the GeForce, only NVidia's drivers work. <tag/ATI cards/ Xv is reported to work with Rage 128 and Mach64 based cards with drivers from the GATOS project (<htmlurl url="http://www.linuxvideo.org/">). <tag/Matrox Gx00 cards/ Xv 功能內建。 <tag/Intel i810 and i815/ Xv 功能內建。 <tag/Savage chips/ Xv has been reported to work with some Savage cards using a modified driver module. 這裡有關於可以工作的顯示卡詳細清單 <htmlurl url="http://www.probo.com/timr/savage40.html">. </descrip> 若 Xv 延伸功能正確安裝, <tt>xvinfo</tt> 程式的輸出將像下列: <verb> Adaptor #1: "Matrox G-Series Backend Scaler" number of ports: 1 port base: 47 operations supported: PutImage supported visuals: depth 16, visualID 0x23 depth 16, visualID 0x24 depth 16, visualID 0x25 depth 16, visualID 0x26 number of attributes: 3 "XV_COLORKEY" (range 0 to 16777215) client settable attribute client gettable attribute (current value is 2110) "XV_BRIGHTNESS" (range -128 to 127) client settable attribute client gettable attribute (current value is 0) "XV_CONTRAST" (range 0 to 255) client settable attribute client gettable attribute (current value is 128) maximum XvImage size: 1024 x 1024 Number of image formats: 0 </verb> 你可能也需要載入 v4l (Video4Linux) X 延伸功能. 輸入 <tt>xdpyinfo | grep XV</tt>. 若有顯示 '<tt>XVideo</tt>' , 那你有這個功能. 如果沒有 '<tt>載入 "v4l"</tt>' 於 XF86Config 檔的 <tt>Modules</tt> 段 (正常在 <tt>/etc/X11/XF86Config</tt>) 且再試一次. 然後嘗試 '<tt>xvinfo</tt>' 指令. 如果輸出為 'no adapter present', 就是你 沒有 XV 支援. 檢查你的顯示卡是否在 XFree86 網站支援中 (<htmlurl url="http://www.xfree86.org/">), 安裝 任何需要的軟體且再試一次. <sect1>MTRR (Linux) <p> 從 Linux 核心文件: <verb> 在 Intel P6 家族處理器 (Pentium Pro, Pentium II 與以後) Memory Type Range Registers (MTRRs) 被用來控制處理器存取記憶體區段。 這對 PCI 或 AGP bus 顯示卡 (VGA)是最有用的。 啟動 write-combining allows bus 寫入 transfers to be combined into a larger transfer before bursting over the PCI/AGP bus. 這將增進影像寫入動作效率達 2.5 倍以上。 Cyrix 6x86, 6x86MX and M II 處理器有 Address Range Registers (ARRs) 它提供一個類似 於 MTRRs 的功能。 在此, ARRs 被用於模擬 MTRRs。 AMD K6-2 (stepping 8 及以上) 與 K6-3 處理器有兩個 MTRRs。 它們也受支援。 Centaur C6 (WinChip) 有 8 MCRs, 允許 write-combining. 它們也受支援。 </verb> 當使用 XShm 輸出方法,確定 MTRRs 設定正確可 明顯的 增進播放效果。可以檢查是否有 /proc/mtrr 以確定你的核心支援 MTRR。 打 cat /proc/mtrr 且確定有一行關於你的顯示卡的記憶體。若沒有,參閱 Linux 核心原始文件的 mtrr.txt 檔。 <sect1>最佳化磁碟存取 <p> 下列說明僅對 IDE 硬碟有效。 首先確定你的主機板支援 UDMA/33 協定 (或更高階 UDMA 協定)。 你可使用 <tt>hdparm</tt> 工具程式使 Linux 使用此介面來最佳化磁碟資料傳輸。 有關 <tt>hdparm</tt> 的資料詳見 <htmlurl url="http://oreilly.linux.com/pub/a/linux/2000/06/29/hdparm.html">. <bf>警告:</bf> <tt>hdparm</tt> hdparm 是一個有危險性的工具,不正確的使用可能影響你的電腦讀取此硬碟的能力。 使用危險自己負責。 檢查 <tt>hdparm drive_device</tt> 輸出包含下列: <verb> S hdparm /dev/dvd ... using_dma = 1 (on) ... </verb> 若它顯示 off 或你想改變任何參數請詳見 <tt>hdparm</tt> 手冊。 <sect>故障排除 <p> 下述章節列出一些常見的問題和解決方案。 若你是一個一般 Xine 使用者且覺得有一個常見問題未列入,請 e-mail 給 HOWTO 維護者: <verb> richwareham@users.sourceforge.net </verb> <sect1>我使用核心 2.4.10 以上且 Xine 發生奇怪的錯誤 <p> 核心 2.4.10 以上有一個問題,有時候會引起 Xine 偶而暫停. 如果你討厭這個問題, 試著向下更新核心到 2.4.9. <sect1>Xine 上的 DVD 按鈕沒有作用 <p> 確定你有 <tt>/dev/dvd</tt> 檔案且設定正確 (參見上述播放 DVDs 一章)。 <sect1>一切似乎都很好但卻會中途停止或迴圈播放 <p> 這是 2.4.1 版核心的臭蟲。 你需要更新。 <sect1>我得到這個訊息: <tt>demux error! 00 00 00 (should be 0x000001)</tt> <p> 可能 xine 不能存取你的輸入來源。 大部分常發生於當你想播放加鎖/加密 DVDs 時。 Xine 內建功能並不能播放這種 DVDs (因法律因素)。 你需要使用一台 css-啟動的 DVD 輸入外掛程式來避免這個問題。更多的資訊可看 <htmlurl url="http://xine.cjb.net/">. 注意:播放 CSS 加密的 DVDs 並非 Xine 既有功能。 你可能已經登載(mounted)你的 DVD 光碟。 Xine 會試著略過正常的 Linux 檔案系統所以 DVD 登載時將無法工作。 試著用 umount 指令除載(unmounting)它。 另一個原因可能是你的 (RPC-2) DVD 光碟機並未設定為正確的區域碼。 <sect1>出現許多訊息 ``200 frames delivered, 200 frames skipped, 0 frames discarded'' <p> 你可能已經選錯了聲音頻道或你正試著播放一個 Xine 並未支援的資料格式。 <sect1>當我播放一個特別檔案/資料流, Xine 顯示一些圖片但卻沒有聲音 <p> 試另一個聲音頻道: <verb> $ xine -a channel stream.vob </verb> 有些 .VOB 檔案的聲音頻道較奇怪 (如: 3, 7, 10) <sect1>使用 Linux 時, 我得到一個錯誤如 <tt>status=0x51 { DriveReady SeekComplete Error }</tt> <p> 要修正這個錯誤, 試著在你的核心啟動 `Use multi-mode by default' (重新編譯設定 ATA/IDE/MFM/RLL support -> IDE, ATA and ATAPI Block devices -> Use multi-mode by default to `Y'). 相關的核心文件說明片段: <verb> CONFIG_IDEDISK_MULTI_MODE: 如果你得到一個錯誤, 試著在這裡說 Y : hda: set_multmode: status=0x51 { DriveReady SeekComplete Error } hda: set_multmode: error=0x04 { DriveStatusError } 如果你有懷疑, 選擇 N. </verb> <sect1>我在播放 SVCD 時有問題 <p> Xine <it>可以</it> 播放 SVCDs 但是你必須試試聲音頻道。正常時,你應該發現聲音在 #8 軌和雙語 SVCDs 的 #9 軌,所以 <verb> $ xine -a 8 </verb> 應該可以按 ``vcd'' 按鈕且播放你的 SVCDs <sect1>Xine 嚴重掉格 <p> 你的硬體對 Xine 來說太慢了。確定你啟動所有速度最佳化選項。參考 <ref id="performance" name="增進 Xine 的效能">一章• <sect1>全螢幕模式不能用 <p> 檢查 Xv 延伸功能工作是否正常。 <sect1>我的音效卡,從 S/PDIF 輸入的 AC3 功能不能用 <p> 從 S/PDIF 輸入的 AC3 功能是由 ALSA 所支援,只支援 Trident 4DWaveNX 和 YMF 晶片的音效卡。所以若你用上述音效卡,可用 <verb> $ xine -S -A alsa </verb> 此 <tt>-S</tt> 選項關閉內建的 AC3 解碼器。對非常慢的機器將可以增進影片播放 (沒有聲音) 當你如下啟動 Xine <verb> $ xine -S -A null </verb> <sect1>從那邊我可以得到最新的發展版? <p> 警告在先,發展版正如其名。 它是給發展者用的。 它可能甚至未適當編譯或功能並不正常。 若你 <it>有</it> 為發展流血犧牲的打算,那麼檢查我們的 CVS: <verb> $ cvs -d :pserver:anonymous@cvs.xine.sourceforge.net:/cvsroot/xine login (enter an empty password) $ cvs -d :pserver:anonymous@cvs.xine.sourceforge.net:/cvsroot/xine co xine-lib $ cvs -d :pserver:anonymous@cvs.xine.sourceforge.net:/cvsroot/xine co xine-ui </verb> <sect1>我如何使用 dvd 外掛程式和/或 <tt>dvd://</tt> MRL? <p> 目前,由 Xine 散佈的 DVD 外掛程式並不支援播放鎖碼/加密 DVDs。 詳見播放 DVDs 一章有關取得一個特別的 Xine `外掛程式' 它允許播放這些 DVDs。 因為解密 CSS 不確定的法律因素我們並未將之含括於任何 Xine 套件中, 也基本上不贊同使用這些軟體 (你應該先確定你居住的地方使用這種軟體是否合法)。我們希望這種情形會很快改善。 對解鎖/解碼 dvds 來說,先登載 DVD 以檢查有那些檔案在上面。 這些檔名可能像 <tt>.../VIDEO_TS/VTS_xx_x.VOB</tt>, , 上述的 x 是數字。 這些 DVD 上龐大的 .VOB 檔案就是影片所在。 現在我們仍未支援整部影片的無縫播放 - 你只能個別播放這些檔。 要播放 VOB 檔案,使用下列指令 <verb> $ xine dvd://VTS_xx_x.VOB </verb> 確定你沒有輸入任何路徑名 (不用輸入 VIDEO_TS/)。 Xine 試著用 /dev/dvd 打開 dvd。 在 FreeBSD 這只有在你建好一個符號連結到你的 dvd-devicenode 時才能用。 <sect1>訊息顯示無法打開 dvd 光碟機(/dev/dvd) 或 Xine 無法偵測 DVD 播放器 <p> 你可能沒有 /dev/dvd (檢查一下)。 若是這樣, 只要建立一個連結 /dev/dvd 指向你的 DVD 裝置即可。可能用下述指令 <verb> $ cd /dev $ ln -s hdc dvd </verb> 就可以解決。 <sect1>我如何從 STDIN 播放資料流? <p> 使用下述指令 <verb> $ cat stream.mpg | xine stdin://mpeg1 </verb> 或, 若你要播的是 mpeg-2 資料流,使用指令 <verb> $ cat stream.vob | xine stdin://mpeg2 </verb> <sect1>我可以改變介面嗎? <p> Xine 可以用 `skins' 來自設介面外觀。 最終目標你將可以在控制面板就改變介面,但是現在你還必須編輯一個檔。 執行 xine 至少一次 - 它將寫入自己的 config 檔 <tt>.xinerc</tt> 到你的家目錄。 現在執行這個檔將這一行 "skin:default" 改成你要用的介面。 <sect1>我可以改變顏色/亮度/對比嗎? <p> 現在只有一些 Xv 驅動程式有支援。 你可以在你的 /.xinerc 找到三行像: <verb> brightness:0 saturation:0 contrast:128 </verb> 上述值和可能範圍依你的 Xv 驅動程式而定所以你可以實驗一下找出最佳值。 <sect1>我的 X 桌面當 Xine 播放影片時,有些地方變透明! <p> 看來像你的圖形介面 GUI 的某些顏色跟 Xv 使用的 colourkey 相衝突了。 你可以改變 colorkey 的值來避免。 例如在你的 ~/.xinerc 改成下述 <verb> colorkey:2110 </verb> 你可以改變由 Xine 所使用於影片覆蓋 overlay 的顏色。 <sect1>我聽不到聲音播放,只有訊息 ``audio driver 'oss' failed, using null driver instead.''顯示 <p> 首先, 確定你的 OSS 音效驅動程式工作正常 (也就是說你可以用其他軟體播放音樂)。 最常見的原因是有其他軟體也同時用到你的音效裝置。 若你使用 linux, 指令 ``fuser /dev/dsp'' 將可以告訴你這個軟體的執行序的 PID 號碼。 <sect1>當執行 xine 幾次後,它就無法分配分享記憶體 <p> 這個問題應該在 Xine 0.3.3 和以後版本已經修正。 然而, 這只有在你用 "正確" 的方式離開 Xine 才有用 (如: 使用控制面板和按 "q" 鍵)。 <bf>不要</bf> 只是用你的視窗管理器關閉影片輸出視窗 - xine 將不會在這種情況釋放分享記憶體(!)。 <sect1>在 FreeBSD 上使用 Xine 有問題 <p> 檢查檔案 README.freebsd 看看可否得到答案,此檔可以在 Xine 原始碼找到。 <sect1>我想我拼錯 Xine 的發音 <p> 它發音為 [ksi:n]. ksi 像 `ks' 在 `knocks' 所發的音而 n 像 `een' 在 `been' 所發的音。 <sect1>我想我找到一個臭蟲! <p> Xine 仍在發展初期。 請耐心些。 若你有時間,請聯繫我們並作一完整臭蟲回報。 <bf>請包括所有終端機輸出和你的硬體與作業系統詳盡的資料。</bf> 一個諸如`我無法播放 <it>x</it> DVD' 的臭蟲回報是沒有多大用途的。 你可以用 email 跟我們聯繫: <verb> Xine Mailing List <xine-user@lists.sourceforge.net> </verb> <sect>對 Xine 提出貢獻 <p> Xine 正持續發展中。 若你有興趣參與你可以從 CVS 得到發展版並請檢查 TODO檔。 <tt>TODO</tt>. 請寄送補丁檔給 <verb> Xine Mailing List <xine-user@lists.sourceforge.net> </verb> 要記得 Xine 是一項自願工作所以發展者可能會隔一段時間才會回應你的意見。 <sect>進階資源 <p> <sect1>DVD 資訊 <p> 你可以從下列位置找到 DVD 相關資訊 <itemize> <item><htmlurl url="http://www.linuxvideo.org/"> - 另一個 DVD-專屬開放原始碼計畫。 包含許多供 Linux 影片應用程式的資訊和資源。 <item><htmlurl url="http://www.videolan.org/"> - 法國網站 (有 english) 主要目的在提供軟體以在網路上散佈 MPEG2 影片和 DVD。 <item><htmlurl url="http://www.opendvd.org/"> - 有很多 DVD 軟體資訊的好站。 </itemize> <sect1>發展者資源 <p> <itemize> <item><htmlurl url="http://www.linuxtv.org/"> - 許多有用的數位 TV/DVD 相關原始碼和資訊。 </itemize> </article>