当前位置:  首页  >  服务器技术  >  Linux/unix  >  Linux入门

从windows转向linux之多媒体播放环境的不同哲学

从windows转向linux之多媒体播放环境的不同哲学--Linux通用技术-Linux技术与应用信息,下面是详情阅读。
播放数字视频已经成为个人用户在 PC中最重要的娱乐之一,这显然得益于宽带接入和P2P技术的飞速发展,而伴随着蓝光DVD与HD DVD格式的到来,数字视频也开始了高清晰之旅。对PC用户而言,多媒体播放功能就日显重要, Windows环境自然不会有这方面的问题, 除了微软自身的Windows Media Player播放器,大量的多媒体软件厂商都推出自己的产品,用户可以有非常丰富的选择。那么Linux环境下的情况如何呢?
许多对Linux有兴趣的用户都因为 这个问题而站在门口张望,既想摆脱对 Windows的依赖,又担心Linux无法提供 “理想”甚至“可用”的多媒体播放功能,这样的担忧与Linux社群缺乏公众普及宣传有关,但这些担忧完全就是多余的,Linux不仅能够提供完整的多媒体播放支持,而且操作非常简单,无论播放何种格式的数字视频,用户所需面对的都是一个统一并与图形环境高度契合的播放界面,这一点与Windows下许多播放工具并行使用的情况形成有趣的对比。
封闭造成兼容壁垒
Windows中的 多媒体播放环境
Windows平台的多媒体播放器都具有完善的功能,也就是说,当你安装好播放器之后,它就能够立刻工作了,比如能够播放MP3、WMA格式的音乐,或者可播放RM、WMV、MOV格式的视频,或者可以播放DVD、蓝光DVD、HD DVD 这样的影碟,用户很容易就能上手。由于很多的多媒体格式都是私有的,各厂商进行此消彼长的竞争,他们都不愿意将自己的格式开放给竞争对手使用,用户为了获得完整的多媒体播放能力,往往必须安装多种播放软件才行。例如, Windows系统已经自带了Windows Media Player播放器,但它无法支持RM格式,用户必须再安装功能类似的Realplayer,如果你还需要播放MOV格式的视频,那么还得安装苹果的QuickTime等等,另外DVD 播放功能必不可缺,WinDVD或PowerDVD 之类的专业软件就非常有用了,因为这类专业产品通常都可以提供更好的画面效果。
仅仅安装完这些软件,你仍然会遇到问题,当你借助P2P工具从网络上下载压缩的视频时,前面所安装的播放器可能无法直接支持,原因在于这些视频采用特殊的编码算法压缩,而上述播放软件不具备相应的解码器,用户必须额外安装一个解码包。一些富有探索精神的用户会去研究为何需要这么做,接着它就会发现多媒体播放软件的逻辑架构:提供GUI操作界面的被称为播放器的前端;真正负担影像解码工作的内核被称为“引擎”,它决定着影像播放的实际效果;解码器则作为“引擎”的输入参数、决定着“引擎”所能支持的格式。前端、引擎、解码器这三者的关系密不可分,其中播放引擎的开发最为困难,仅有少数团队才具备这样的实力,例如Windows Media Player、Realplayer、 QuickTime、WinDVD、PowerDVD等商业产品都拥有自己的播放引擎。
一些国内用户都不喜欢Windows Media Player、Realplayer这样的所谓“官方组合”,它们实在是太过臃肿了,用户更愿意使用暴风影音、Kmplayer之类的万能播放软件。单从程序功能来看,这类软件都可以支持广泛的视频格式,资源占用也更低,对于初级用户来说,这类万能播放器是不错的选择。但这类万能播放器其实都是“组装”产品,如暴风影音基于Media Player Classic播放引擎,然后加上Xvid、ffdshow等开源的免费插件而成(注解:由于上述组件都采用GPL版权公约发行,暴风影音也应该遵守GPL 协议,否则就侵犯了自由软件的知识产权)。Kmplayer则调用了Windows Media Player的底层内核DirectShow负责影像解码,然后挂接Windows下的解码器实现多格式支持。换言之,Windows下的万能播放器都没有自己的播放引擎,它们在构造上类似于浏览器领域中的Maxthon。
这类万能播放器并非Windows系统的默认配备,开发者也是寥寥几人构成的团队,很难获得高阶用户的认同,我们可以看到,喜爱这些软件的以对视频质量要求不高的初级用户居多。而在欧美地区,用户更愿意选择Windows Media Player、Realplayer+解码包这样的正统方案,当然WinDVD或PowerDVD这样的专业软件也必不可少,虽然用户得为此支付不算便宜的费用。总的来说,Windows平台的用户无需担忧多媒体播放方面的问题,他们可以有非常宽裕的选择,但过多的选择也让系统看起来显得凌乱。
模块化结构
Linux中的多媒体播放环境
与Windows不同,Linux世界奉行简洁至上的原则:既然一个软件就能解决问题,那么为何需要两个?这种哲学决定了Linux下的多媒体环境以单一、全功能的面貌示人。由于自由软件都是采用社区模式开发,软件的模块化分得非常细致,多媒体播放器的用户界面、播放引擎与解码器包都是独立开发和独立发行的,各个Linux发行版虽然都安装了播放引擎,但用户仍需自行安装解码器,如果是在Windows下面,用户只需点击“下一步”到“完成”即可,但在Linux下你得学会使用不那么友好的命令行。如果你完成了相关的配置,那么所面对的就是一款与桌面环境高度整合的播放器,它可以胜任所有常见的多媒体播放任务,用起来也极为简单。
首先我们来看Kubuntu的KDE桌面环境,KDE自带了一款名为Kaffeine的播放器前端和Xine播放引擎,我们只需要安装一个名为w32codecs的解码器包,就可以播放几乎所有的多媒体文件。采用 Gnome桌面环境的ubuntu也有一款类似的多媒体播放前端Totem,它的默认多媒体引擎名为gstreamer,它是一个开源的多媒体框架库,提供一个开放的接口实现与解码器的挂接,目前它已能够被用来处理MP3、Ogg、MPEG1、MPEG2、AVI、 Quicktime等多种格式的多媒体数据,但由于无法使用w32codecs解码包,目前它的功能还比较有限。不过在项目开发上,gstreamer被认为是Gnome多媒体系统的未来,大量的开发者都围绕着它进行工作,它将会变得越来越强大。在正常情况下,ubuntu用户都会采用Xine引擎来代替gstreamer引擎,然后加上W32codecs 解码包,这样就可以实现广泛的格式兼容。但为了做到这一点,用户需要做更多的配置工作。
处理完这些看起来棘手的问题,我们便可以在Linux下享受多媒体播放带来的愉悦,用户所面对的其实只是一个前端(Gnome下的Totem、KDE下的 Kaffeine),于是初级入门用户就会产生这样的感觉:Linux只需要一个播放器,就可以播放几乎所有的格式,这个播放器又与桌面系统高度整合,不会像 Windows平台那样每个播放器都有自己的一套界面。因此对这些用户来说,Linux 播放多媒体的方式会更为简洁直观,尽管你在安装时需要了解相关的知识和面对较为繁琐的操作,但在安装完之后事情就变得很简单,你不再需要知道所谓的格式兼容问题或者在多个播放器间的权衡问题。在经过短短的心理不适之后,Linux用户们大多会喜欢上这种简洁、直观的使用方式。简单地说就是:Windows的多媒体环境配置起来简单,但用起来复杂,而Linux正好相反。
Linux下的独立型播放器
Mplayer、Xine提供更多选择
简洁为美是Linux社区的主流文化,不过总有一些另类用户受到Windows的惯性影响,认为播放DVD这样的事情应该由专业的、独立的播放软件来完成。Linux也为用户提供了这样的选择,Linux平台下有两款独立型播放器:Xine和Mplayer。
Xine播放器我们在前面其实已经涉 及到了,与常规的播放软件不同,Xine 的GUI前端、播放引擎与解码库采用独立发行的模式,这种模式创造出一个庞大的播放器家族,前面提到的Totem与 Kaffeine若都采用xine引擎,它们的播放效果便不会有任何差异,两者差别只是在 GUI界面不同而已。同样,如果用户使用 Xine播放器自己的GUI前端和引擎,那么其效果也与前两者相同,只不过Xine前端看起来更像WinDVD、PowerDVD之类的专业型播放工具而已。也就是说,真正的关键在于播放引擎,它负责完成影像解码与显示画面的绘制,而解码算法则是由解码器所提供。另外,作为独立型播放器,Xine对桌面环境无依赖性,你既可以在Gnome环境中使用,也可以在 KDE下使用。
相比之下,Mplayer播放器更为有一定经验的Linux用户所喜爱,普遍的观点就是Mplayer播放DVD效果更佳。与 Xine不同,Mplayer没有将播放引擎独立出来,所以我们无法单独安装,但它同样有“非官方”的前端,SMplayer便是其中的典型代表。Mplayer同样是以GPL 发行,它的开发始于2000年,最初的作 者是rpád Gereo .. ffy(在社区里也被称为 A'rpi/Astral),当时他无法在Linux下找到一个令人满意的视频播放器,便自己着手进行开发。Mplayer的第一个版本被称为mpg12play v0.1,2000年的11月升级到 v0.3版本,之后许多开发者陆续加入,不过绝大多数开发者都来自于匈牙利。在2003年以后,Alex Beregszászi开始接替 rpád Gereo .. ffy准备开发第二代MPlayer播放器,但由于种种原因,Mplayer G2后来暂停开发,开发团队将精力放在现行 Mplayer的完善上。目前Mplayer的最新版本是1.0rc2,今年10月7日推出。
在早些时候,Mplayer的安装非常复杂,你必须自己编译程序,配置中文字体,缺乏经验的新手经常会搞得焦头烂额,不过ubuntu/Kubuntu将相关的安装包纳入源中,我们只需要用简单的安装命令就能解决问题。
除了支持Linux和UNIX外,Mplayer还 可支持Windows和Mac OS X平台,它是一款真正意义上的跨平台多媒体播放软件。其Windows版本以资源占用率小而著称,用户不必安装额外的解码器就能够播放各种多媒体格式,并且对MPEG/XviD/ DivX格式的文件支持尤其出色,不仅拖动播放速度相当快,而且能够在播放破损文件时也有良好的效果,很适合硬件配置低的用户使用。
简洁与统一
Linux哲学的无形体现
与Windows环境下鼠标点击安装的方式迥异,Linux下多涉及命令行的使用,这对用户的技术水平提出了较高的要求。作为参考,大家可以从ubuntu中文支持网站中找到一份详尽的新手指南,指南中提供了完整、经过严格检验的命令,用户只需直接将该命令复制、然后粘贴进终端窗口即可,无需一个字母一个字母地键入。
当你做完上述配置之后,便可以在Linux下欣赏数字视频或观看DVD,无论 Gnome的Totem还是KDE的Kaffeine,它们都是各自桌面环境的一部分,GUI界面保持一致,给人以更简洁、统一的感觉,这也与WInodws环境形成了鲜明的对比。

Linux的高清播放支持有待改进
由于版权的关系,蓝光DVD与HD DVD等高清光碟尚未为Linux所支持。根据要求,播放软件要支持这两种高清光碟,则应该对HDCP内容保护技术提供支持,但Linux下的播放引擎,无论是Xine、Mplayer还是gstreamer,都是以GPL公约发行,所纳入的组件也必须遵循GPL公约,这种开源特性就与 HDCP的封闭属性发生冲突。而对于非光碟类的高清晰压缩视频,Linux平台播放器的表现也还难如人意,除了CPU 占用偏高以外,还会存在花屏的现象,主要原因在于仍缺乏针对高清播放的解码包。但随着时间的推移,这种局面将会很快得到改善。

Kubuntu 7.04下配置多媒体播放环境
1 首先,加上Medibuntu repository源,在终端下输入以下命令:
sudo wget http://www.medibuntu.org/sources. list.d/gutsy.list -O /etc/apt/sources.list. d/medibuntu.list
2 加入GPG key并刷新软件库,接着输入 下列命令:
wget -q http://packages.medibuntu.org/ medibuntu-key.gpg -O- | sudo apt-key add - && sudo apt-get update
3 用以下命令一次性安装解码器及附带文件:
sudo apt-get install libdvdcss2 libdvdnav4 libdvdplay0 libdvdread3 w32codecs libxine-extracodecs gstreamer0.10-pitfdll gstreamer0.10-ffmpeg gstreamer0.10- plugins-bad gstreamer0.10-plugins-badmultiverse gstreamer0.10-plugins-ugly? gstreamer0.10-plugins-ugly-multiverse
注意:如果遇到需要输入[Y/n]或[y/N]的时候,则一律输入[y]并回车。因Kaffeine默认引擎为xine,因此不必重复安装。

安装xine播放器
在终端中输入以下命令,如前面已安装过某些包则会提示文件重复并自动忽略(ubuntu、Kubuntu相同)。
sudo apt-get install xine-ui libdvdcss2 libxine1- ffmpeg libxine1-doc libxine-doc libxine1-plugins w32codecs gcc-3.3-base libstdc++5

Ubuntu 7.04下配置多媒体播放环境
1 由于系统自带以gst reamer为引擎的 Totem播放器,虽已支持很多多媒体格式,但rmvb、rm等格式仍无法被支持, DVD播放的效果也不好,因此需用以下命 令将其卸载:
sudo apt-get remove totem-gstreamer
2 用以下命令安装Xine引擎的Totem播 放器:
sudo apt-get install totem-xine totem-mozilla totem
3 加入源,步骤同Kubuntu配置中的1和2步骤。
4 用以下命令一次性安装多媒体解码器及 附带文件:
sudo apt-get install libdvdcss2 libxine1- ffmpeg libxine1-doc libxine-doc libxine1- plugins w32codecs gcc-3.3-base libstdc++5
注意:如遇到需要输入[Y/n]或[y/N]的时候,则一律输入[y]并回车。

安装配置Mplayer播放器
需预先为ubuntu/Kubuntu配置好安装源(ubuntu、Kubuntu相同)。
1 在终端中输入以下命令:
sudo apt-get install mplayer-fonts mplayer mplayer-skins mozilla-mplayer
2 启动Mplayer(在KDE/Gnome菜单中 可以找到入口),然后右键弹出主菜单 “Preferences/属性│Video/视频”,在 “Available drivers/可用驱动”中选择 “x11”或“xv”,在同一窗口下半部分选中“允许掉帧/Enable frame dropping”。
3 若要安装SMplayer前端,只要下载打包好的deb文件,然后在终端下用“sudo dpkg”命令进行安装。
SMplayer打包文件可以从以下地址下载:
http://sourceforge.net/project/showfiles. php?group_id=185512&package_id=216202 &release_id=545520

责任编辑:金雅文jin_yawen@chip.cn
吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有