Chinaunix首页 | 论坛 | 博客

TS

  • 博客访问: 218671
  • 博文数量: 67
  • 博客积分: 2335
  • 博客等级: 大尉
  • 技术积分: 682
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-18 14:59
文章分类

全部博文(67)

文章存档

2017年(1)

2016年(1)

2014年(1)

2013年(3)

2012年(3)

2011年(8)

2010年(24)

2009年(13)

2008年(6)

2007年(7)

我的朋友

分类:

2007-02-18 14:59:56

打造LINUX下的万能播放器


    如果你是一个Windows用户,大概对安装多个视频播放器习以为常,播放DVD电影用WinDVD或PowerDVD;播放RM格式视频用 Realplay;播放WMV视频要用微软的Windows Media Player;如果播放苹果的MOV格式视频,大概还需安装一个QuickTime。造成这种情况的主要原因在于各类视频格式彼此互不兼容,用户不得不使 用多个功能类似的播放器。而在Linux环境下,虽然也存在许多不同的播放器软件,但用户完全可以用一个播放器来实现所有视频媒体的播放,无须考虑专有格 式的负累,使用起来也更简单。不过,由于各个Linux发行版都没有直接完成解码器的安装,用户必须作一定的手工配置,这也是我们在下文中将向大家介绍的 内容。另外需提到的是,本文所用的Linux发行版为Ubuntu,其他发行版用户的配置方式有较大的差异,但基本原则都相同。

播放引擎、解码器和用户界面

图1 视频播放器由用户界面、播放引擎和解码器三个部分组成。


    在进入实质安装配置阶段之前,我们有必要先来了解一下Linux环境视频播放的相关知识。在Windows系统中,视频播放软件都很简单,比如 Windows Media Player、Realplayer、WinDVD等都是一个拥有完整功能的播放软件。但在Linux环境下,视频播放软件往往被细化为播放引擎、解码器 和播放软件的UI界面(User Interface)。播放引擎负责实际的视频解压处理,它是一套通用的平台;解码器其实就是视频解码所对应的算法,用户安装某个解码器,播放引擎就可以 根据这个解码器提供的运算规则对视频文件进行解码处理;而软件的UI界面则是指用户的操作界面,也就是我们在视觉上可以见到的播放器。如图1所示,一套完 整的视频播放工具是由“播放引擎-解码器-UI界面”三个部分组成,不论Windows平台、Linux平台还是Mac平台都是如此,只不过 Windows平台的播放软件开发商将播放引擎、解码器和UI界面整合在一起,用户安装完之后就可以播放解码器所支持的格式,但由于各个播放器厂商都与竞 争对手的压缩算法以及视频格式相互排斥,用户不得不安装多个播放器才能够完成对所有格式的支持。
但在Linux环境下,情况就大不相同了,首先 Linux下的播放软件并没有将播放引擎、解码器和UI界面封装在一起,而是保持相对独立性。目前Linux下应用最广泛的播放软件包括Xine和 Mplayer两大类,其中Xine体系因将Xine引擎、解码器和UI界面相互独立,从而衍生出庞大的播放器家族,例如Gnome环境默认的Totem 播放器、KDE环境默认的Kaffeine播放器都是基于Xine引擎。Mplayer则拥有相当广泛的终端用户,但衍生型播放器相对少一些(目前常见的 只有Gmplayer)。除此之外目前开源业界正在积极开发Gstreamer流媒体播放编程框架(其目的是简化Linux/UNIX的多媒体应用程序开 发,或者说Gstreamer将是一个功能强大的播放引擎),目前0.10版已经发布,能够支持MP3、Ogg、MPEG1、MPEG2、AVI、 Quicktime等多种格式的多媒体数据。但作为新生事物,针对Gstreamer的解码器数量不多,暂时还缺乏完善的解决方案,因此本文的内容不涉及 Gstreamer方面的问题。对接触Linux不久、或对Linux认识不深的用户来说,Xine体系应该更具有普遍性,而它与Gnome、KDE的结 合也更紧密。在下文中,我们就以Xine体系为例向大家介绍如何安装设置一款能够支持所有格式的“万能播放器”。

 

在Ubuntu下安装Xine/Totem与相应的解码器
    如上所述,一个完整的播放软件必须具备播放引擎、解码器和UI界面三要素,其中播放引擎决定视频播放的性能,而解码器则决定该软件能够支持多少种格式。 Xine播放软件包括Xine-lib、Xine-UI和libxine-extracodecs/w32codecs等几个文件包构成,其中Xine- lib为核心播放引擎,许多发行版Linux已经直接内置,Xine-UI则为图形化的用户界面,libxine-extracodecs和 w32codecs为解码包,两个包内几乎包含所有视频格式的解码器。倘若用户使用Gnome默认的Totem前端,那么Xine-UI可以不必安装,但 Xine-lib核心引擎和两个解码包还是必须安装的。

图2 Linux下的Totem与Xine播放器,安装好解码器后可以播放几乎所有的视频格式。

    Ubuntu发行版采用apt-get包管理机制,apt-get在使用上非常方便,只要你输入要安装的文件包,那么它就会自动访问远端的服务器,并从相 应路径中获取这些文件,下载后安装在你的计算机上。如果遇到包依赖性问题,apt-get也能够自动解决。不过在使用apt-get之前,我们必须先为系 统添加“源”。“源”的概念就是软件升级服务器的目标路径(不仅仅是访问域名,还包括该服务器的存储路径),通俗点说就是指向升级软件包存储在某个服务器 的某个文件夹。添加“源”的具体操作如下。(以下资料来自)
第一、在终端下输入以下两个命令:
sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup  [本命令作用是备份sources.list文件]
sudo gedit /etc/apt/sources.list  [用gedit编辑器打开sources.list文件]
然后用以下内容替换原来文件中的内容,保存后关闭,我们的建议直接到网站参考相应的内容,将网站所列的“源”全部都加入,这样以后升级其他软件也将非常方便。
deb breezy main restricted universe multiverse
deb breezy-updates main restricted universe multiverse
deb breezy-security main restricted universe multiverse
deb breezy-backports main restricted universe multiverse
deb breezy main restricted universe multiverse
第二、在终端下接着输入以下命令,如果是Ubuntu 5.10,那么输入:
sudo apt-get install xine-ui totem-xine w32codecs   [安装Xine-ui和Totem-xine播放器前端以及w32codecs 解码器包。]
如果用户使用的是最新6.06版本,输入:
sudo apt-get install xine-ui totem-xine w32codecs libxine-extracodecs  [安装Xine-ui和Totem-xine播放器前端以及w32codecs libxine-extracodecs两个解码器包]
第三、上述安装步骤完成后,Xine和Totem就可以顺利实现各类视频的播放,当然DVD播放必不可少,我们可以通过以下命令让这两个播放前端支持DVD:
sudo apt-get install libdvdcss2 [安装libdvdcss2,该文件可以让Xine引擎实现DVD回放]
如果发现DVD播放画面断断续续,最有可能的原因就是DVD光驱的DMA通道没有打开,我们可以通过以下操作来完成:
sudo gedit /etc/hdparm.conf [打开hdparm.conf文件,该文件定义存储设备的工作模式]
然后在打开的文件中查找光驱定义的内容(如/dev/cdrom ),增加一行“dma=on”,这样DMA模式就开启了。笔者使用Ubuntu 5.10曾遇到这个问题,但绝大多数的发行版都已经默认打开光驱DMA功能,无须手动设置。
第 四、到这个时候,你应该可以用Xine或Totem播放几乎所有视频文件了。一般来说,大家可能会更习惯用Xine来播放DVD(Xine界面与 WinDVD、PowerDVD更相似一些),而使用Totem来播放压缩视频,但实际上这两者只是在界面上存在差异而已,核心引擎和解码器都完全相同。

总结
    由于包管理机制的差异,其他Linux发行版用户不能直接采用上述apt-get命令来安装,但基本的原则都是相同的,即必须安装播放器核心引擎、UI界 面以及解码器包。例如在SuSE 10.0中,用户可以通过Yast包管理系统来安装Xine-lib和Xine-UI,而w32codecs解码器包则需要自行下载并用rpm命令方式进 行安装;如果是Fedora Core的用户,则可以分别下载打好的rpm安装包,用命令rpm-Uvh *.rpm来完成这些包的安装。倘若用户只想使用Gnome默认的Totem-xine,那么只要直接将解码器包解压到用户目录下的. gnome2/totem-addons/子目录下即可,Totem会在播放视频时自动调用、实现对几乎所有视频格式的支持。倘若你在Linux世界中入 了门,那么便会发现Linux环境的多媒体播放能力一点也不比Windows差,而且你只要完成一次安装就可以一劳永逸。


阅读(1281) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:gcc安装

给主人留下些什么吧!~~