LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1907|回复: 11

编译安装mlayer cvs的问题

[复制链接]
发表于 2006-1-16 03:38:17 | 显示全部楼层 |阅读模式
刚装上sid

编译mplayer cvs过程中没有出现错误,但安装后mplayer没有声音。而且菜单没有汉字。控制台启动gmplayer后。右键单击时,控制台中提示
(<unknown>:5520): Pango-WARNING **: Invalid UTF-8 string passed to pango_layout_set_text()

这时什么原因?
发表于 2006-1-16 08:49:54 | 显示全部楼层
locale没有设成UTF-8,使用中文菜单,最好设成这个。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-16 14:19:56 | 显示全部楼层
?? 我以前也是将locale设成gbk。
将locale设成utf-8后还是不对
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-16 16:07:25 | 显示全部楼层
还有一问题。 播放mkv格式的文件没有声音

LinxhPKUCS:/mnt/wind/docs/影视/friends/Season 01# /usr/local/mplayer/bin/mplayer   Friends\ -\ 1x01\ -\ It\ All\ Began.mkv
MPlayer dev-CVS-060113-11:42-4.0.3 (C) 2000-2006 MPlayer Team
CPU: Advanced Micro Devices Sempron/Athlon MP/XP/XP-M Barton,Thorton (Family: 6,  Stepping: 0)
CPUflags:  MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0
针对有扩展指令集x86 CPU编译: MMX MMX2 3DNow 3DNowEx SSE


播放 Friends - 1x01 - It All Began.mkv.
[mkv] Track ID 1: audio (A_REAL/COOK), -aid 0, -alang eng
[mkv] Track ID 2: video (V_REAL/RV40), -vid 0
[mkv] Track ID 3: subtitles (S_TEXT/UTF8), -sid 0, -slang chi
[mkv] Track ID 4: subtitles (S_TEXT/UTF8), -sid 1, -slang eng
[mkv] Will play video track 2
[mkv] Will play audio track 1
检测到Matroska文件格式。
VIDEO:  [RV40]  400x288  24bpp  25.000 fps    0.0 kbps ( 0.0 kbyte/s)
==========================================================================
打开音频解码器: [ffmpeg] FFmpeg/libavcodec audio decoders
Unknown Cook version, report sample!
无法打开解码器
ADecoder初始化失败
ADecoder初始化失败
打开音频解码器: [realaud] RealAudio decoder
opening shared obj '/usr/lib/codes//cook.so'
Decoder init failed, error code: 0x80040005
ADecoder预初始化失败
ADecoder初始化失败
打开音频解码器: [realaud] RealAudio decoder
opening shared obj '/usr/lib/codes//cook.so.6.0'
Decoder init failed, error code: 0x80040005
ADecoder预初始化失败
ADecoder初始化失败
打开音频解码器: [realaud] RealAudio decoder
opening win32 dll 'cook3260.dll'
Decoder init failed, error code: 0x80040005
ADecoder预初始化失败
ADecoder初始化失败
打开音频解码器: [realaud] RealAudio decoder
opening shared obj '/usr/lib/codes//cook.bundle/Contents/MacOS/cook'
Error: /usr/lib/codes//cook.bundle/Contents/MacOS/cook: cannot open shared objec t file: No such file or directory
opening win32 dll 'cook.bundle/Contents/MacOS/cook'
Win32 LoadLibrary failed to load: cook.bundle/Contents/MacOS/cook, /usr/lib/winc odes//cook.bundle/Contents/MacOS/cook, /usr/lib/win32/cook.bundle/Contents/MacOS /cook, /usr/local/lib/win32/cook.bundle/Contents/MacOS/cook
Error loading dll
错误: 无法打开要求的DirectShow解码器: cook.bundle/Contents/MacOS/cook
Read the RealAudio section of the DOCS!
ADecoder预初始化失败
ADecoder初始化失败
找不到音频格式 0x6B6F6F63 的解码器.
请看DOCS/zh/codecs.html!
==========================================================================
==========================================================================
打开视频解码器: [realvid] RealVideo decoder
opening shared obj '/usr/lib/codes//drvc.so'
选定视频编解码器: [rv3040] vfm: realvid (Linux RealPlayer 10 RV30/40 decoder)
==========================================================================
音频: no sound
开始播放...
VDec: vo配置要求 - 400 x 288 (选择色彩空间: Planar I420)
VDec: using Planar I420 as output csp (no 0)
电影宽高比为 1.39:1 - 预放大到正确的电影宽高比.
VO: [x11] 400x288 => 400x288 Planar I420
SwScaler: using unscaled Planar YV12 -> BGRA special converter
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-16 20:53:13 | 显示全部楼层
没人遇到类似的问题吗? 555555
回复 支持 反对

使用道具 举报

发表于 2006-1-16 21:08:06 | 显示全部楼层
mkv 格式真是麻烦呀。。
回复 支持 反对

使用道具 举报

发表于 2006-1-16 21:42:41 | 显示全部楼层
作者: magic  发布日期: 2005-12-19    查看数: 83   出自: http://www.linuxsky.net
MPlayer是Linux下功能最健全的视频播放器之一:几乎所有现有视频格式的支持,mozilla浏览器在线播放支持。这两个功能几乎能满足我们的全部需要。然而,现在有两个困难:
1、debian官方没有MPlayer的deb包,却有mozilla-mplayer的deb包。没有MPlayer,浏览器插件自然没有用;
2、虽然MPlayer的官方现在提供1.0pre7try2的源码包。但是对于Debian Etch/Sid用户,这个版本的源码不打补丁无法用gcc 4.0成功编译,而且使用的是gtk1.2的库,中文显示相比gtk 2.0程序设置要复杂一些。
大家自然可以选择非官方的二进制包。但是根据官方文件,在ad_pcm.c文件中存在堆溢出问题,该问题影响所有pre7(含)以前的MPlayer。而非官方源似乎还没有pre7try2的二进制包。
好在MPlayer的CVS上的源码已经移植到gtk 2.0,而且能够使用gcc 4.0编译,也解决了堆溢出。而且作为Debian的用户,自然也不愿放弃dpkg工具。那么就请使用Debian方式编译自己的MPlayer CVS Debian Package吧!

零、前提:
请注意提示符:
# 代表需要root权限;
$ 代表普通权限即可;

一、准备工作:

1、获得MPlayer CVS:
这里你需要安装CVS:
# apt-get install cvs

2、获得MPlayer source:
CVS安装完成后,请登陆MPlayer的匿名CVS仓库:
$ cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer login
如果提示您输入密码,请留空直接回车,即可。登陆后
$ cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer co -P main
这一步取决于网络情况。对于国内用户,一般这一步相当漫长,请耐心等待代码下载完成。完成后您在当前目录下会获得一个main/子目录,里面就是MPlayer的源码。

3、获得FFmpeg
刚刚获得的mplayer源码不是全功能的,因为它缺少FFmpeg的libavcodec, libavformat和libavutil库,我们同样需要获得它:
$ cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg login
密码留空,直接回车,
$ cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co -P ffmpeg
这一过程也不会很快请耐心等待。完成后当前目录下会有ffmpeg/子目录。

4、制作完整的MPlayer源码目录:
我们需要将刚刚获得的ffmpeg目录里的三个子目录:libavcodec, libavformat,libavutil拷贝到main子目录下:
$ cp -r ffmpeg/libavcodec main/
$ cp -r ffmpeg/libavformat main/
$ cp -r ffmpeg/libavutil main/
我们还需要修改main/CVS/Entries文件,以使我们刚刚拷贝的3个目录的内容同样能够更新。将一下3行加到main/CVS/Entries文件的末尾:
D/libavcodec////
D/libavformat////
D/libavutil////
至此,我们完成了MPlayer源码目录的创建。将来在更新时,只需要在main目录下:
$ cvs -z3 update -dPA
即可。

5、获取其他必须品(codecs, skin...):
请到http://www.mplayerhq.hu/homepage ... cs建议使用other binary codec packages里的all(all codecs for Linux x86 (Win32 .dll and Linux .so))。

二、开始编译:

1、获取Debian制作工具:
首先请确认你有完整的开发工具集:gcc, make, binutils等等。
制作Debian包我们需要dh-make和fakeroot。但是MPlayer已经提供了debian的编译环境,无须dh-make。我们只要获得fakeroot就行了:
# apt-get install fakeroot

2、准备Codecs:
请将获得的all-20050412.tar.bz2解压,并将目录重命名为codecs,然后将其移动或复制到/usr/local/lib/:
# tar jxvf all-20050412.tar.bz2
# mv all-20050412 codecs
# mv codecs /usr/local/lib
这里是MPlayer Codecs的默认路径之一。在编译之前,Codecs就需要放在这里,或者在编译的时候加上你放置Codecs的位置。显然前者要方便一些

3、开始编译:
进入main目录,先更新一下:
$ cvs -z3 update -dPA
然后可以开始Debian编译方式了:
$ DEB_BUILD_OPTIONS="--enable-gui" fakeroot debian/rules binary
注意:DEB_BUILD_OPTIONS指定传递给configure的参数。具体的参数列表可以通过
$ ./configure --help
来查询。如果您需要GUI,请务必按上句所说加入"--enable-gui"参数。
build过程仍然会十分漫长。完成后,在main的上一级目录就会得到mplayer_1.0cvs_i386.deb包!您现在可以使用dpkg来安装它了:
# dpkg -i mplayer_1.0cvs_i386.deb
安装的时候会让你选择视频驱动,一般选为x11即可。
然而事情并没有结束。

三、善后工作:

1、复制Skin。
解压您下载的Skin文件,将得到的目录改名为default,并将default目录移动到/usr/share/mplayer/Skin/,即完成Skin设置。

2、设置字体。
在主目录下有MPlayer的设置目录:~/.mplayer。在这里我们需要创建一个字体文件或链接。我使用的是AR PL SungtiL GB。之所以没有使用AR PL ShanHeiSun Uni,是因为后者实在太大了,在启动MPlayer和改变MPlayer窗口大小时会有言重停顿,甚至影响音话同步。当然如果您在观看时不会频繁的调整窗口大小也无妨。我这里是:
$ ln -s /usr/share/fonts/truetype/arphic/gbsn00lp.ttf ~/.mplayer/subfont.ttf
注意:subfont.ttf的名字不要更改,因为MPlayer默认只会查找这个名字。

3、配置。
默认安装的MPlayer有3个地方我不太满意:
(1)默认窗体大小改变时视频大小不变,即没有缩放;
(2)默认不关闭xscreensaver,因此在观看时有可能在关键时刻忽然屏保启动!于是乎@#¥¥%!@#¥%!@#¥
(3)默认字幕大小并不限制在屏宽之内,因此过长的字幕会超出屏幕边界……
我的解决方法是:
(1)在/etc/mplayer/mplayer.conf文件中加入一行
zoom=yes
即可支持缩放功能。这是修改全局设置的方法,如仅想修改某用户设置,则可以修改~/.mplayer/config文件。
(2)修改~/.mplayer/gui.conf中的stopxscreensaver项为"yes"
stopxscreensaver="yes"
(3)修改~/.mplayer/gui.conf中的font_autoscale项为"2"
font_autoscale = "2"

4、mozilla浏览器插件:
最终安装mozilla浏览器插件
#apt-get install mozilla-mplayer
好了,现在的mozilla和firefox可以播放在线视频了!

至此,一个可以本地播放+在线播放的MPlayer CVS完成!

四、日后升级MPlayer CVS
CVS上每天都会有更新。如果希望试试最新的CVS,是没有必要完全重复上述工作的。具体来说有以下3步
(1)更新CVS源码:
请进入main/目录下,输入:
$ cvs -z3 update -dPA
即可将源码进行增量更新。这个过程就会很快了,因为每天的改动不很大,更新的工作量自然也很小。
(2)重新编译MPlayer CVS:
完成更新后,我们需要重新进行编译:
$ DEB_BUILD_OPTIONS="--enable-gui" fakeroot debian/rules binary
这里如果你需要别的configure参数,也请加到DEB_BUILD_OPTIONS里面。
(3)安装更新的MPlayer CVS:
编译完成后,在main/的上一层目录会得到刚刚更新的deb包。请用dpkg安装:
# dpkg -i mplayer_1.0cvs_i386.deb
至此更新工作完成!

参考:
http://www.mplayerhq.hu/homepage/design7/dload.html
http://www.debian.org/
MPlayer README
回复 支持 反对

使用道具 举报

发表于 2006-1-16 21:48:47 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-16 23:52:55 | 显示全部楼层
我发现:
./configure 时如果加上--charset mplayer的帮助信息是正常的,但gmplayer右键菜单没有汉字
否则。gmplayer正常了,但mplayer的帮助信息成了乱码。
有办法两者兼得吗、??

btw:我的locale是gbk
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-17 00:27:36 | 显示全部楼层
发现一个解决该问题方法,还请高手指教

用iconv程序将help目录下的help_mp-zh_CN.h转化成gbk
具体说来
mv help_mp-zh_CN.h help_mp-zh_CN.h.utf8
iconv -f UTF-8 help_mp-zh_CN.h.utf8 -t GBK > help_mp-zh_CN.h

然后不带--charset配置、编译、安装
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表