安装的totem使用的是gstreamer组件播放视频或者音频的;
但是fedora安装盘和yum仓库中提供的gstreamer组件只有gstreamer,gstreamer-plugins-base,gstreamer-plugins-good这几个包;
realmedia格式的支持在gst-plugins-ugly里面提供,wmv格式的支持在gst-plugins-ffmpeg里面提供;
gst-plugins-bad里面也提供了对其他一些格式,比如aac等的支持
安装gst-plugins-bad时提示需要一些库文件不存在:
warning:gstreamer-plugins-bad-0.10.5-3.fc8.i386.rpm:HeaderV3DSAsignature:NOKEY,keyIDe42d547b
error:Faileddependencies:
libSoundTouch.so.1isneededbygstreamer-plugins-bad-0.10.5-3.fc8.i386
libcdaudio.so.1isneededbygstreamer-plugins-bad-0.10.5-3.fc8.i386
libdca.so.0isneededbygstreamer-plugins-bad-0.10.5-3.fc8.i386
libdirect-1.0.so.0isneededbygstreamer-plugins-bad-0.10.5-3.fc8.i386
libdirectfb-1.0.so.0isneededbygstreamer-plugins-bad-0.10.5-3.fc8.i386
libfaac.so.0isneededbygstreamer-plugins-bad-0.10.5-3.fc8.i386
libfaad.so.0isneededbygstreamer-plugins-bad-0.10.5-3.fc8.i386
libfusion-1.0.so.0isneededbygstreamer-plugins-bad-0.10.5-3.fc8.i386
libmms.so.0isneededbygstreamer-plugins-bad-0.10.5-3.fc8.i386
libx264.so.58isneededbygstreamer-plugins-bad-0.10.5-3.fc8.i386
libxvidcore.so.4isneededbygstreamer-plugins-bad-0.10.5-3.fc8.i386
这些库文件由哪个包提供也不好搜索,不过realplayer的rpm包好像这些so文件都能提供;如果安装gstreamer需要realplayer先安装的话,那么也就没有必要安装gstreamer了,直接安装realplayer好了;
后来试着安装了mplayer,也是提示需要一些库文件找不着;
warning:mplayer-1.0-0.42.rc2.fc8.i386.rpm:HeaderV3DSAsignature:NOKEY,keyIDe42d547b
error:Faileddependencies:
libaa.so.1isneededbymplayer-1.0-0.42.rc2.fc8.i386
libamrnb.so.0isneededbymplayer-1.0-0.42.rc2.fc8.i386
libcaca.so.0isneededbymplayer-1.0-0.42.rc2.fc8.i386
libcucul.so.0isneededbymplayer-1.0-0.42.rc2.fc8.i386
libdca.so.0isneededbymplayer-1.0-0.42.rc2.fc8.i386
libdvdnavmini.so.4isneededbymplayer-1.0-0.42.rc2.fc8.i386
libfaac.so.0isneededbymplayer-1.0-0.42.rc2.fc8.i386
liblirc_client.so.0isneededbymplayer-1.0-0.42.rc2.fc8.i386
libmad.so.0isneededbymplayer-1.0-0.42.rc2.fc8.i386
libmp3lame.so.0isneededbymplayer-1.0-0.42.rc2.fc8.i386
libx264.so.58isneededbymplayer-1.0-0.42.rc2.fc8.i386
libxvidcore.so.4isneededbymplayer-1.0-0.42.rc2.fc8.i386
mplayer-fontsisneededbymplayer-1.0-0.42.rc2.fc8.i386
这其中的一些so文件很可能就是codec库文件;具体这些so文件怎么获得,以后还得研究研究;
既然rpm文件无法正常安装,干脆通过源码安装好了;
下载了gst-plugins-bad和gst-plugins-ugly的最新源码包;
但是configure的时候,提示找不到liboil,解决了这个问题后,又提示找不到gstreamer,gstreamer-plugins-base等等;
原来liboil和gstreamer等都是通过rpm安装的,直接安装bin格式,不是通过源码安装的,也就没有安装pkgconfig文件,而gst-plugins-badconfigure的时候都是通过pkg_config来找依赖文件的;
现在有三种途径,
一是自己制作pc文件,放到/usr/lib/pkgconfig目录下面,因为gst和liboil都是放在/usr/lib目录下面,
另外就是重新下载相关的源码,通过源码将liboil,gstreamer,gstreamer-plugins-base都安装一遍;
再就是修改configure文件,不通过pkgconfig来搜索依赖文件路径,直接在/usr/lib目录下搜索,这样修改可能很大,不建议;
因为fedora提供的gstreamer并不是最新的,而我下载的gst-plugins-bad和gst-plugins-ugly是最新的,它依赖最新的gstreamer和gst-plugins-base,所以干脆下载了最新的gstreamer和gst-plugins-base源码包,都重新用源码安装一遍;
安装gst-plugins-bad和gst-plugins-ugly时候,.configure最后会提示某些会被built,某些不会被built,还没有闹明白,不知道会不会对后面有影响?
最后所有的安装结束了之后,通过totem播放一个rmvb格式的文件,提示的为一个gstreamererror,和以前播放时找不到合适的plugins、不支持realmedia不一样;
通过命令行
totem--gst-debug-level=1
(--gst-debug-level表示gstream的日志级别,0为fetal级别,5为所有日志,1为error)
重新播放文件,提示找不到对应的codec,在/usr/lib/codec;/usr/lib/win32;/usr/lib/;/usr/local/lib;/usr/local/lib/codec等目录下面找不到drvc.sdrv4.so.6.0
这两个so文件由谁来提供的啊,这个真是不知道,从网上搜索了知道,realplayer可以提供这两个so文件,这样又回到了以前的问题了,如果要安装realplayer才能解决gstreamer的编解码问题,那么也就没有必要安装gstreamer了,我觉得gstreamer应该提供了相应的codec工具,可能是我某个地方编译的时候没有注意;
后来在网上搜了一下,一个好心人,上传了一个压缩包,里面包含一些so文件和dll文件,都是和codec相关的,也包含drvc.so和drv4.so.6.0,将包里面的so文件导到/usr/lib/codec目录下,就其他dll文件导到/usr/lib/win32目录下面;
重新播放rmvb文件,正常了,播放rm文件,也正常了;
但是播放wmv,说需要windowmediaaudio8codec和windowmediavideo8codec
找了一些gstreamer上的资料,gstreamer-plugins-ffmpeg提供对wmv格式的支持,因此下载gst-plugins-ffmpeg源码包,安装完之后,重新播放wmv格式文件,播放成功。
下载本文示例代码