[建议]媒体播放器的组合(xine,totem,mplayer,kaffeine,xmms,bmp,audaciousi

Totem,mplayer,sopcast,realplayer,bmp
xiechy
帖子: 1074
注册时间: 2006-01-18 15:01

[建议]媒体播放器的组合(xine,totem,mplayer,kaffeine,xmms,bmp,audaciousi

#1

帖子 xiechy » 2006-03-20 21:03

论坛上有很多兄弟提问时总是直接说totem怎么了,amarok怎么了,其实,真正在后面干活的是引擎,totem有xine或者是gstreamer的引擎,而amarok也是两种(xine和arts吧),出错的往往只是引擎而已。所以我们更关注的应该是这个播放器使用的是什么解码库,而不是界面本身。

amarok现在在源里应该只有xine的引擎了,arts看来已经被“一杯净土掩风流”了,在新的kde4中,amarok有了全新设计框架,由于kde4还未“出生”,而amarok2的开发也暂时是集中精力在xine上,所以可以说,amarok就是xine引擎。

1、关于totem
很多人都是建议安装totem和totem-xine然后加上w32codec包来实现多媒体播放的,包括新手指南也是这样的,但我的看法却有点不同。gstreamer是gnome绑定的解码库,严格的说确实也很优秀,保留仍然是很有必要的,播放avi效果还是很好的,而且调节显示也很方便。与其装totem-xine,为什么不直接装xine呢?xine本身的调节参数很多,可定制的能力更强,而且历史悠久,稳定性非常好,建议直接装xine,自己调用自己的引擎(好像有点搞笑的样子,这样能叫“调用”吗?)。



2、关于字幕。
在xine下面,似乎从来没有为字幕操过心,Load Subtitle一直很正常,包括对DVD的字幕支持也很好。
在mplayer下面有时候当设置不好时会乱码或者是显示不出,其实这也还是汉字编码问题。在~/.mplayer/config文件中可以对mplayer进行配置,以下是我的配置内容。


font=/usr/share/fonts/VeraSansYuanTi/VeraSansYuanTi-Regular.ttf
subfont-text-scale=3.5
vo=x11
zoom=yes

注意,我们平时用的是gmplayer而并不是mplayer,gmplayer的配置文件是~/.mplayer/gui.conf但道理是一样的。
打入命令:

mplayer -sub xxx.sub -subcp utf8(自己替换成字幕文件的编码,好像更多的是gb18030) xxxxx.avi

也就是说其实用什么字幕文件,字幕文件的编码,字幕文件的字体,大小,其实都是自己可以配置的,要是比较懒,就把它们都写进配置文件里面(我喜欢练听力,所以一般不加字幕)。

3、关于流媒体
kaffeine对流媒体的协议支持很好,xine本身可能是编码识别的问题,只要播放的地址有汉字,就会显示“缺少插件”,但如果没有汉字则没有问题,非常正常。而且mplayer也是如此。所以我们只要结合一下kaffeine的长处就可以了。安装kaffeine-xine,也就是让kaffeine使用xine的引擎来解码,在加上kaffeine-mozilla扩展浏览器的播放流媒体的能力,流媒体就使用的非常顺利了。另外,还有一个可以用mplayer来下载流媒体文件的方法。

mplayer -dumpstream -dumpfile xx.local.avi xx.remote.avi

还有一点要顺便说明的是,有很多视频播放网站(例如video.ustc.edu.cn)的不是直接播放,而是一个php文件,其实是个文本文件,里面再放上真实地址。这时会报告说kaffeine“缺少插件”(又是这个该死的信息),这时打开文本,把地址copy出来,直接播放这个地址就可以了。

4、顺便提提
mplayer的播放库应该是avcodec吧(极其优秀,M的开发者对这个极度自豪),divx,xvid,x264等应该都是用这个解码的,但wmv,rm应该是用win32codec解码才对,不过从播放的效果来看,不大像是win32codec,尤其是wmv,很卡,可能现在已经变了,我手头上的pdf文档有点老了。

5、codec和引擎的区别
codec记录了文件怎么编码,怎么解码,而引擎是去调用codec的执行者,通过对数据文件的读取,和对codec的调用,使得可以将数据中的内容显示在屏幕上,放出声音来。

6、我们所用的w32codecs 是什么?
它是mplayer官方站点上对一些codec进行的打包。mplayer本身是跨平台的程序,它可以读取dll中的接口信息,调用dll,很多私有格式,并没有公开它的内部编码,只是释出了dll,让其他程序可以调用dll中的接口,来进行编解码,这包括realmedia和microsoft的文件。所以,我们在w32codecs中,可以看到很多dll,而不是linux常用的shared object(so)文件。顺便说一下,xine除了原生支持的一些格式外,它也是通过调用外部的这些codecs来解码的,所以w32codecs不仅对mplayer很关键,对xine也是一样。至于gstreamer嘛,呵呵,gstreamer有一个子项目,叫做pitfall~~自己在包管理器里就可以看到了。它的作用就是提供对外挂dll的支持~呵呵,现在大家知道为什么gstreamer也可以放wmv了吧?

7、mpeg4规范
我们知道,wmv,wma,xvid,divx,很大一部分avi,他们都是所谓的mpeg4的文件,这种文件的压缩比极高,但是显示的质量并没有太大的改变。mpeg2就是我们常见的dvd所采用的编码规范,MPEG(活动图像专家组)包括一组规范。其中5,6已经胎死腹中,mpeg7不是面向消费的。

上面讲得mpeg的是背景,下面讲mpeg4的正题:第一个mpeg4规范的实现,是由M$作出来的,不过很快就被破解了,之后破解版本有了很多的分支(如xvid,divx等),M$自己的文件也有版本更新,所以,mpeg4不是一种固定的格式,而是一组格式的统称,他们都可以上朔到M$的最初版本。对于用开源编码实现的视屏文件,我们可以用原生的codec来解压,例如libxvid,但是很多闭源codec编码的文件就不一定可行。不过在解码器上,有一个非常出色的软件,叫做ffmpeg,由原来的avcodecs发展而来。由于各种文件都是一个源泉,所以有时候,还是可以解压来看的。但是会要么没声音,要么出花纹,要么无法拖放~~这里面可能是引擎无法正确调用codec,有可能是调用了类似的codec,有可能是开源的codec的本身的限制……所以如果出了问题,可以试着指定另外的codec来看看~



总结:建议的配置安排:
totem + totem-gstreamer
xine + kaffeine-xine
mplayer

三套马车,三套不同的播放库,任何媒体,总有一款合适你!
希望废话的地方能稍稍解除一点大家的疑问

音频播放:
对音频播放,那也是一个争论的非常多的话题,绝对不比视屏/影音的少。有些人力挺amarok,有些人只用xmms,当然还有现在新出的一系列的什么audacious~以前的beep-media-player~还有新进改名的democracy player等等等等,不一而足。

前面说过,amarok并不提供引擎,引擎由其他的project提供,下面讲讲xmms相关的一些project的亲缘关系~
话说太初有道,道即是xmms,xmms即是道~
之后xmms由于一直是用的gtk+的外壳,使用的字体引擎也一直是传统的核心字体的模式,所以就有所谓的更改xmms的乱码问题等等的帖子大量存在,gtk+还导致xmms2的开发进度一直很慢~因为很多插件都是用的gtk+作为界面,要想全都转过来实在是很麻烦~

既然gtk+是xmms的原罪,那自然就会有改进的移植。xmms的开发队伍决定下一代的xmms2(不要和一个相关的gui项目混淆,不过这个gui项目“xmms2”早就停止了)只是一个简单的共享库接口,使用客户/服务器模式,对插件系统,对流媒体支持的等等特性进行了增强。但总的来说,它是一个“框架”,更多的是做为一个“后端”,一个“引擎”存在的,本身没有GUI的打算,也不大算作为独立播放器。

而beep-media-player(bmp)则是一个xmms的gtk2的移植,这个project开始于2003年,之后2005年停止更新了。这个移植还是有很多缺点,在它的下一代bmpx(bmp的开发者转向了这个项目)中被克服。
同时,audacious,也是在2005年开始的,也是从bmp的0.9.7.1版本后,这主要是技术上的分歧。就像compiz和beryl一样,加强了streaming,id3tag等等。

从上面我们可以知道,既然这几种播放器都是xmms的fork,那么,他们之间的插件什么的是不是可以通用呢?既正确,又不完全正确。正确,是他们实际上都是一套代码的修正,插件本质上是一样的,但是由于一些细节上的差别,可能还是有代码的区别。不过大多数情况只是编译时连接的库的区别而已,基本很小。这也是为什么很多xmms/bmp的插件,会用同一套代码,只是编译的时候用个不同的tag即可(典型的就是xmms-wma和bmp-wma,其实就是一个代码,makefile不一样而已)。

顺便说下,ape很多人说要用audacious才能播放,这个说法看看前面的介绍就知道了,其实是不大可能的~因为毕竟实际上是差不多的东西,只是现在实际上audacious的ape的插件比较好找就是了~(xmms和bmp的需要mac-port计划,但是这个有侵权嫌疑,所以在sf上被撤了下来。)不过其实也可以用的。为了自己方便,把xmms-mac和mac的代码放上去。


mpd是什么?
mpd是个很独特的东东,它是一个server,就像mysql,acpi之类的一样,在系统中是以服务的形式存在的。所以~~他没有界面,只有协议,只有客户端,就像我们用mldonkey(当作server来用的时候),可以用sancho,mlgui之类的界面来操作mldonkey本生一样~由于没有界面的拖累,mpd可以说是非常省资源(cpu占有率也就是0.3%左右把800MHz pentium-m)——毕竟我们听歌,一般是放在背景的,谁会没事老去看?另外mpd本身的客户端也非常强大众多:
命令行的mpc
ncurse界面的ncmpc
gtk的gmpc
而且本身也支持tag数据库,也能做到象amarok那样的分类搜索,管理,gmpc也可以上lastfm查看album图片~
另外,还有的好处就是客户端想关就关,只要服务不停,可以一直听着~开着x,还是在命令行,都无所谓~既有强大的功能,也极其省资源。它也有gmpc歌词的插件,但现在还是英文的站点连接的~

xmms2和mpd很类似,xmms2相对mpd的优势是,更加模块化,例如对歌曲数据库,采用外部的sqlite,功能更强大,而且以后也有可以扩展的余地;对格式的支持采用插件的形式,模块化很强,所以比mpd支持格式更容易。现在,可以支持mpd不能支持的lastfm,mms广播,wma等。另外,它是user daemon,不需要全局管理员运行。
大体上来说,xmms2相当于mpd2的水平,这不是我说的,是官方wiki说的。(xmms2用c,mpd2用cxx,可能这算是差别吧)xmms2的官方站点的wiki说明是,xmms2和下一代的mpd2的目标与实现方法可能都很类似,大体上是相同的级别的东西,开发者也可能会互相合作。
它也用很多客户端(qt,python,gtk),但是一般我都没用,直接用附带的xmmx2 控制台快捷binding就够了。
不过它比mpd可能可更耗资源一点,毕竟功能也丰富些。

06/06/2007
进行修改,与时俱进~
怎加mpeg4内容
增加w32codecs内容
08/2007
增加xmms部分。
09/2007
增加mpd/xmms2部分
10/2007
xmms2 修改
附件
mac-3.99-u4-b5.tar.gz
(411.36 KiB) 已下载 839 次
xmms-mac-0.3.1.tar.gz
(292.76 KiB) 已下载 779 次
上次由 xiechy 在 2007-10-04 10:02,总共编辑 4 次。
头像
karron
帖子: 6226
注册时间: 2005-06-11 14:03
来自: 不明真相的群众
联系:

#2

帖子 karron » 2006-03-21 8:06

不错.
我的blog,关于技术,软件,linux,vim <---- 所有博客均被河蟹.
种草得草
帖子: 340
注册时间: 2005-12-31 12:17

#3

帖子 种草得草 » 2006-03-21 22:47

totem-gstreamer(这个是为了看看gstreamer0.10的新特性,感觉还不错)
gxine 全格式的based on xine+w32codecs
mplayer 这个是必装的.
realplayer 有时候mplayer和xine搞不定的rmvb尝试一下
vlc 小巧高效.
头像
ubuntu_amateur
帖子: 79
注册时间: 2006-06-10 14:58
来自: China

#4

帖子 ubuntu_amateur » 2006-10-27 16:11

qianghr
帖子: 67
注册时间: 2007-03-09 14:23

#5

帖子 qianghr » 2007-05-12 0:59

好多内容变了,Gstreamer可以播wmv了,但是效果不好,一拖就花,mplayer播wmv是一点问题没有,就是不能拖rm,总之mplayer是必装的。
头像
skyx
论坛版主
帖子: 9202
注册时间: 2006-12-23 13:46
来自: Azores Islands
联系:

#6

帖子 skyx » 2007-05-12 1:16

楼主很少现身了
no security measure is worth anything if an attacker has physical access to the machine
RaistlinCan
帖子: 19
注册时间: 2007-04-28 22:48

#7

帖子 RaistlinCan » 2007-05-21 7:17

同学啊~~USTCer
头像
linunix
帖子: 424
注册时间: 2006-11-21 21:25

#8

帖子 linunix » 2007-05-23 14:18

为什么我装mplayer很多格式都播不了啊,已经装了xine解码和w32codecs
头像
hcym
帖子: 15634
注册时间: 2007-05-06 2:46

#9

帖子 hcym » 2007-05-25 12:35

居然没人谈高清播放

Ubuntu 不食人间烟火,多亏还有个Vista没删!


图片图片
头像
TrueElement
帖子: 35
注册时间: 2007-04-28 13:03
来自: 广东

xine如何Load Subtitle

#10

帖子 TrueElement » 2007-05-25 23:43

请问在哪设置载入字幕?
用xine打开电影(.avi),发现没载入字幕,且没找到有哪个菜单有手动载入字幕的。
roamdog
帖子: 21
注册时间: 2007-04-27 21:31
来自: China GD
联系:

#11

帖子 roamdog » 2007-05-27 1:51

咋安装啊?mplaye 到哪里下载啊??
头像
woainba15
帖子: 833
注册时间: 2006-11-11 17:14
来自: 浙江宁波
联系:

#12

帖子 woainba15 » 2007-05-27 14:19

ls的:sudo apt-get install mplayer
时间过得快啊!
头像
samcrai
帖子: 59
注册时间: 2007-02-25 15:16

#13

帖子 samcrai » 2007-06-04 0:08

:P :P :P 不错的组合
xiechy
帖子: 1074
注册时间: 2006-01-18 15:01

#14

帖子 xiechy » 2007-06-06 21:20

skyx 写了:楼主很少现身了
呵呵,我胡汉三还活着~只是有点忙就是了~
xiechy
帖子: 1074
注册时间: 2006-01-18 15:01

#15

帖子 xiechy » 2007-06-06 21:21

RaistlinCan 写了:同学啊~~USTCer
握手!
回复