xine终于推出了0.5版本,相比旧版来说,这更象个成熟的正式版本,界面也漂亮许多,我是在redhat linux 7.2b2上安装xine 0.5的rpm包,显卡是gerforce 2 GTS.我以前还用过xine 0.35,xine 0.37,xine 0.4.3,我发现有些在旧版本的xine上看不了的dvd现在可以看了,真是棒极了.
Xine 是一个为linux设计的媒体播放软件。 它支援 MPEG-2 与 MPEG-1 压缩格式,MPEG 声音档案 (例如: MP3) 与 AVI 档案 (使用由 Windows 取得的一些 DLL 档案).
Xine 播放影像与声音讯号资料流并在播放时同步播出。 依照资料流的性质,播放时所需处理器能力有别。 全画框速度播放MPEG 2文件使用400MHz PII系统就可以达成。
Xine 可直接播放 Video CDs, SVCDs and DVDs 光碟。Xine 强调的是直接且有效率。 界面没有多馀的华丽外观。 主要目的仅在於达到平顺播放影片的目标。
Xine 需要 MIT-SHM ( MIT 记忆体分享延伸功能),此功能 XFree86 从 3.3.x 就已支援, 或X-Video 延伸功能 (Xv) -- 此功能较快且支援全萤幕操作但只有部份 XFree86 4.x 驱动程式有支援。
假如你未使用 Xv 功能,建议你设定萤幕颜色深度为 16 位元-每-点 (bpp) 以增进速度。 Xv 似乎在 16bpp 和 24bpp 时效能较佳。
你还需要一张支援 OSS 或 ALSA 驱动程式的音效卡。
xine的官方网站是以从http://sourceforge.net/projects/xine/,但是上面只有tgz封装的源程序xine-ui-0.5.0.tar.gz和xine-lib-0.5.0.tar.gz,安装起来不方便,需要rpm包的朋友可到ftp.gnuchina.org/incoming/xine/RPMS/下载
先下载 xine-lib-0.5.0-1.i386.rpm
xine-lib-oss-0.5.0-1.i386.rpm
xine-lib-arts-0.5.0-1.i386.rpm
xine-lib-w32dll-0.5.0-1.i386.rpm
xine-lib-docs-0.5.0-1.i386.rpm
xine-lib-xv-0.5.0-1.i386.rpm
xine-lib-esd-0.5.0-1.i386.rpm
xine-ui-0.5.0-1.i386.rpm
其中xine-lib-0.5.0-1.i386.rpm,xine-lib-xv-0.5.0-1.i386.rpm,xine-ui-0.5.0-1.i386.rpm和xine-lib-arts-0.5.0-1.i386.rpm最好都下载,其它就由你自己选择了.
安装起来很简单,用rpm -Uhv xine*.rpm即可.进入x window,在console上键入xine就可调用xine程序.
下面我们就来介绍一下xine的使用.
在使用 Xine 时,你可以输入命令列参数也可以不输入.若你想播放 VCD 或 DVD,最简单的方法 就是输入下述指令:
xine
然后在 Xine 控制列单击 DVD 或 VCD 按钮。 Xine将适当的扫描 DVD 或 VCD。 若 Xine 发现DVD 或VCD 存在,你可以按下 `play@# 按钮开始播放电影了。
当 Xine 首次启用时,Xine 的主视窗将显示 (黑底的 Xine logo)。 在画面上单击滑鼠的右键将出现Xine 的控制面板。Xine 的控制面板类似 VCR 的面板有播放,暂停,停止和移动到起始点或终点的功能。
xine在命令列指定影片来源。Xine 使用 media resource locator (MRL)来指定影片来源。
有用的 MRLs 如下:
1,file://some/file.vob - 指定档案 /some/file.vob.
2,fifo://[[mpeg1:mpeg2]:/]some/fifo - Xine 从特别的 FIFO 管线得到影片资料 /some/fifo。 预设,Xine 假设资料流为 mpeg-2 格式,可在 MRL 中明确的指定使用 mpeg1 或 mpeg2。
3,stdin://[mpeg1:mpeg2] - Xine 从 stdin 取得影片。 使用此 fifo:// MRL, Xine 假设为 mpeg2 除非额外设定。
4,dvd://VTS_xx_y.VOB - 使用 DVD 上的 指定 VOB 档。这个方法与使用 file:// MRL 方法是不同的,因为 Xine 会直接从 DVD 读进资料而非透过 Unix 档案系统。
5,vcd://track - 播放 VCD 上特定的轨。
假设你的dvd碟上有一个test.vob,那你就可以用:
xine dvd://test.vob
播放vcd就更方便了,你可用xine vcd://3来指定播放vcd的第3轨.
有些影碟有许多声音轨 (例如 DVDs)。 有两种方法可以选择声音轨。 最简单的方法是使用 Xine 控制面板上声音轨图示(像喇叭形状)旁的箭头来选择。
或者,你也可以使用 -a 命令列参数。 例如要播放档案的第三音乐轨 /path/foo.mpg:
xine -a 3 /path/foo.mpg
对 MPEG-1 影片,只支援 mpeg 声音 (阶层 1, 2 and 3)。
MPEG-2 资料流可以有不同形式的声音流。 Xine 支援 AC3 (dolby digital), mpeg 和 LPCM 声音。 它们被分配到下述轨:
Track selected audio stream
0- 7 AC3 stream 0-7
8-15 MPG audio stream 0-7
16-23 PCM audio stram 0-7
例如,播放 PCM 资料流 0 使用指令
xine -a 16 file.vob
有些音效卡支援数位输出称为 SPDIF。 若用命令列参数指定 -S, Xine 会试图使用它。 注意:这个功能只有在你设定使用ALSA 驱动程式且你的 ALSA 驱动程式 支援时才有用。 例如:
xine -S file.vob
DVDs 和 VOB 档案可能包含字幕资讯, Xine 可以在影片中显示字幕。 这个功能预设是关闭的但是可以改变 Xine 控制面板
中字幕图示右侧字幕轨的号码来开启。
另外,你也可以使用 -u 命令列参数。 例如, 显示编号 0 的字幕,使用:
xine -u 0
Xine 试图自动侦测你的萤幕可以承受的最佳显示方法。 强制使用 MIT-SHM 显示方法而非 Xv 方法,使用 -s 命令列参数。
例如:
xine -s /path/file.mpg
命令列参数 -A 可以用来选择 OSS (oss), ALSA (alsa), ESD (esd) 或 NULL (null) 驱动程式。 例如,强制使用 ALSA驱动程式:
xine -A alsa /path/file.mpg
NULL 驱动程式并不使用任何音效卡硬体仅只适用於测试用途。
Xine 还可以在起始时用 -p 命令列参数设成自动播放。 例如:
xine -p /path/file.mpg
此 -p 参数也可以配合其他参数来进一步控制 Xine:
f - 以全萤幕模式开启 Xine (只适用 Xv)。
h - 隐藏控制面板。
q - 播放完影片时同时结束 Xine。
d - 从 DVD 取得播放清单。
v - 从 VCD 取得播放清单。
例如,全萤幕自动播放且从 DVD 取得播放清单:
xine -pfhd
xine的详细使用方法,可使用help指令来了解;
xine --help
下面,我接着介绍使用xine的一些小技巧
1,关闭萤幕保护
现在 Xine 仍无法在切换到全萤幕时关闭你的萤幕保护和空白萤幕(DPMS)。 要手动关闭,使用 xset 命令:
xset s off # 关闭萤幕保护。
xset -dpms # 关闭 DPMS。
2,移除终端机输出
因为 Xine 仍在发展中,它执行时会输出大量资讯到终端机。 要在开始 Xine 时移除终端机输出:
xine mrl 2>&1 >/dev/null
3,自动执行移除终端机输出
你可以用一个简单的命令壳指令稿(shell script)在载入 Xine 时自动执行这件事。
#!/bin/sh
xset s off -dpms
xine "$1" 2>&1 >/dev/null
xset s on +dpms
4,用 Xine 播放加密的dvd
Xine 对 未加密 DVDs 已内建(out-of-the-box)支援。 大部分 DVDs 是用 Content Scrambling System (CSS)系统加密的。 写作和发表软体来破解这种加密仍有法律上的争议。 因为对 CSS-相关程式码的不确定法律因素, Xine 并不内含这个功能。
要得到这个功能,你必须下载一个特别的 外挂程式 plugin。 有两种常见的外挂程式, captain_css外挂程式和 libcss 外挂程式。
1,captain_css 外挂程式是完整的包装可以从
http://members.nbci.com/captain_css/ 得到。
我一直上不了这个网站,所以并没有用过这个plugin.
2,libcss 外挂程式需要 libcss 程式库,此外挂程式可从
http://www.kuroyi.net/xine/xine_dvd_libcss_plugin-clut.tar.gz得到。这个外挂程序需要libcss.so,
在http://www.linuxvideo.org/user/dl.html上下载libcss-0.1.0.tar.gz
安装完后,确定 /usr/local/lib 有在档案 /etc/ld.so.conf 中且你已经以使用者root执行ldconfig 。
安装方法如下:
(1),安装libcss
tar zxvf libcss-0.1.0.tar.gz
cd libcss-0.1.0
./configure
make
make install
vi /etc/ld.so.conf 在尾部加上/usr/local/lib
ldconfig (注意,要root身份)
(2)安装libcss_plugin
tar zxvf xine_dvd_libcss_plugin-clut.tar.gz
cd xine_dvd_libcss_plugin-clut
./configure
make
make install
安装完成后,检查一下目录/usr/local/lib/xine/plugins中有没有input_dvd.so和input_dvd.la
你必须要有一个/dev/dvd文件 ,它指向你的 DVD 装置。 若你使用你的 DVD 装置 当作你的主要 CDROM (例如:音乐光碟播放程式使用你的 DVD 光碟机) 那试著以root 执行下列指令:
ln -s /dev/cdrom /dev/dvd
或者,若你知道你的DVD是(例如我的dvd rom是/dev/hdd) 那你可以用下列指令:
ln -s /dev/hdd /dev/dvd
若你仍使用 XFree 3.x, 你将必须自己告知核心那边有图形记忆体可用。若你使用 XFree 4.x 只要启动 MTRR 支援就可以了。 试打 cat /proc/mtrr - 若此档案存在且有显示你有的图形记忆体量,那就没问题了。
我的cat /proc/mtr输出如下:
reg00: base=0x00000000 ( 0MB), size= 512MB: write-back, count=1
reg01: base=0xd0000000 (3328MB), size= 32MB: write-combining, count=1
reg02: base=0xd8000000 (3456MB), size= 32MB: write-combining, count=1
linux 核心 2.4.x 开始支援原生装置,要使用原生装置,要先连接一个空的原生装置给你的 dvd 装置,例如:
raw /dev/raw/raw1 /dev/hdd
然後,产生一个链结叫 "rdvd" 指向原生装置
ln -s /dev/raw/raw1 /dev/rdvd
XVideo 延伸功能是 XFree86 X-伺服器从 4.0 以後的一个功能,Voodoo 3,Matrox Gx00,intel i810 and i815以及tnt,gerforce系列显卡都支持.
用xvinfo测试一下,若 Xv 延伸功能正确安装,输出将像下列:
X-Video Extension version 2.2
screen #0
Adaptor #0: "NV10 Video Overlay"
number of ports: 1
port base: 48
operations supported: PutImage
supported visuals:
depth 16, visualID 0x21
depth 16, visualID 0x2a
depth 16, visualID 0x2b
depth 16, visualID 0x2c
depth 16, visualID 0x22
depth 16, visualID 0x2d
depth 16, visualID 0x2e
depth 16, visualID 0x2f
number of attributes: 8
"XV_DOUBLE_BUFFER" (range 0 to 1)
client settable attribute
client gettable attribute (current value is 1)
"XV_COLORKEY" (range 0 to 16777215)
client settable attribute
client gettable attribute (current value is 2110)
"XV_AUTOPAINT_COLORKEY" (range 0 to 1)
client settable attribute
client gettable attribute (current value is 1)
"XV_SET_DEFAULTS" (range 0 to 0)
client settable attribute
"XV_BRIGHTNESS" (range -512 to 511)
client settable attribute
client gettable attribute (current value is 0)
"XV_CONTRAST" (range 0 to 8191)
client settable attribute
client gettable attribute (current value is 4096)
"XV_SATURATION" (range 0 to 8191)
client settable attribute
client gettable attribute (current value is 4096)
"XV_HUE" (range 0 to 360)
client settable attribute
client gettable attribute (current value is 0)
maximum XvImage size: 2046 x 2047
Number of image formats: 4
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)
id: 0x59565955 (UYVY)
guid: 55595659-0000-0010-8000-00aa00389b71
bits per pixel: 16
number of planes: 1
type: YUV (packed)
id: 0x30323449 (I420)
guid: 49343230-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
Adaptor #1: "NV05 Video Blitter"
number of ports: 32
port base: 49
operations supported: PutImage
supported visuals:
depth 16, visualID 0x21
depth 16, visualID 0x2a
depth 16, visualID 0x2b
depth 16, visualID 0x2c
depth 16, visualID 0x22
depth 16, visualID 0x2d
depth 16, visualID 0x2e
depth 16, visualID 0x2f
no port attributes defined
maximum XvImage size: 2046 x 2047
Number of image formats: 4
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)
id: 0x59565955 (UYVY)
guid: 55595659-0000-0010-8000-00aa00389b71
bits per pixel: 16
number of planes: 1
type: YUV (packed)
id: 0x30323449 (I420)
guid: 49343230-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
要激活xv功能,只要在/etc/X11/XF86Config-4中把Modules 段中的`Load "v4l"@#前的"#"去掉即可.
如果你没用过xine的话,赶快用吧,xine 0.5是我用过最满意的播放器,如果要我找出它的缺点,那就是我希望它有一天能够支持mpeg4!
当你用过xine和xmms后,你还有什么理由说linux支持多媒体不如MS呢?!