首先是安装,配置好livna源和freshrpm源后,直接运行命令:
yum install mplayer smplayer
安装好以后还要安装解码包:
http://www1.mplayerhq.hu/MPlayer/releases/codecs/
在上面网站下载
all-20071007.tar.bz2解码包,解压安装到 /usr/lib/win32 目录下。
安装好以后,弄一部rmvb的电影 右键-》用mplayer打开 播放电影,提示报错而且只有声音没用图像,错误如下:
Cannot find codec matching selected -vo and video format 0x30345652.
用终端命令播放的话详细错误如下:
Opening video decoder: [realvid] RealVideo decoder
Error: /usr/lib/codecs/drvc.so: cannot open shared object file: No such file or directory
………………(太长了,中间省略)
Error loading dll
ERROR: Could not open required DirectShow codec drvc.bundle/Contents/MacOS/drvc.
Read the RealVideo section of the DOCS!
VDecoder init failed
Cannot find codec matching selected -vo and video format 0x30345652.
Read DOCS/HTML/en/codecs.html!
我记得fc6没有这个错误,这样的错误是f8,f9才出来的(f7不晓得),解决方法:
在/usr/lib/win32里找到drvc.so、drv2.so.6.0、drv3.so.6.0、drv4.so.6.0,
把这四个文件copy到/usr/lib/codecs文件夹下,
再一次 右键-》用mplayer打开 播放电影,报错且没有字幕: mplay cannot prepare subtitle font
解决办法:
1、删除/etc/mplayer/mplayer.conf (最好备份)
2、安装mplayer-fonts,具体命令见第3条
3、 cp /usr/share/fonts/zh_CN/TrueType/zysong.ttf ~/.mplayer/subfont.ttf
4、重启mplay即可
再一次 右键-》用mplayer打开 播放电影,能正常播放,但还是报错看着烦躁:
ERROR: Could not open required DirectShow codec drvc.dll.
用终端命令播放的话详细错误如下:
Opening video decoder: [realvid] RealVideo decoder
Error: libstdc++.so.5: cannot open shared object file: No such file or directory
…………(中间继续省略)
Error loading dll
ERROR: Could not open required DirectShow codec drvc.dll.
Read the RealVideo section of the DOCS!
VDecoder init failed
Opening video decoder: [realvid] RealVideo decoder
Selected video codec: [rv30] vfm: realvid (Linux RealPlayer 8 RV30 decoder)
百度/狗狗一通搜索过后,解决方法如下:
运行:
ldd /usr/lib/codecs/drvc.so
得到
ldd /usr/lib/codecs/drvc.so
linux-gate.so.1 => (0x00110000)
libstdc++.so.5 => not found
libc.so.6 => /lib/libc.so.6 (0x00162000)
/lib/ld-linux.so.2 (0x008ea000)
发现到:libstdc++.so.5 => not found
OK,确啥补啥,终端运行命令# yum install libstdc++.so.5
在/usr/lib/win32里找到drvc.so、drv2.so.6.0、drv3.so.6.0、drv4.so.6.0,
把这四个文件copy到/usr/lib/codecs文件夹下(前面已经复制过的话这个步骤可以省略)
再到shell分別运行:
1#chcon -t textrel_shlib_t /usr/lib/codecs/drvc.so
2#chcon -t textrel_shlib_t /usr/lib/codecs/drv2.so.6.0
3#chcon -t textrel_shlib_t /usr/lib/codecs/drv3.so.6.0
4#chcon -t textrel_shlib_t /usr/lib/codecs/drv4.so.6.0
再试一下,看看吧。
下面是ubuntu下同样一个问题的解决方法,对比发现两个系统还是有明显的差别的:
环境: Ubuntu 7.10
报错信息: could not open required directshow codec drvc.dll
解决步骤:
# find /usr/lib -name drvc*
/usr/lib/codecs/drvc.so
# ldd /usr/lib/codecs/drvc.so
libstdc++.so.5 => not found
这样可以看出, libstdc++.so.5需要安装
# apt-get install libstdc++5
我运行上面这四个命令时再报错(这个命令等同上面四个命令):
[root@localhost codecs]# chcon -t textrel_shlib_t /usr/lib/codecs/drv*
chcon: can't apply partial context to unlabeled file “drv2.so.6.0”
chcon: can't apply partial context to unlabeled file “drv3.so.6.0”
chcon: can't apply partial context to unlabeled file “drv4.so.6.0”
chcon: can't apply partial context to unlabeled file “drvc.so”
没有别的办法,继续百度/狗狗一通搜索过后,总算找到原因和解决方法:
原因是:鉴于linux上网那是相当的安全,在中国的网络上可以裸奔横着走,开着个selinux完全是画蛇添足平添麻烦,于是我就把selinux关了,然后就有了上面那样的莫名其妙的错误(换个用户比如说root用mplayer的话就好好的)…………
解决方法:开起selinux然后重启电脑,再运运行命令 chcon -t textrel_shlib_t /usr/lib/codecs/drv* 就ok了。我的f9使用gnome开启步骤:
系统-》管理-》SELinux Management 输入超级用户密码进入后将选项 System Default Enforcing Mode选项从Disabled 改成 Permissive 就开起SELinux了。重启一下电脑SELinux就回来了,运行chcon一切正常。
弄了上面这些以后,mplayer看电影总算不报错一切正常了,长出一口气,呼…………………………