LinuxSir.cn,穿越时空的Linuxsir!

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

请教:xine&mplayer播放速度降低。[已解决]

[复制链接]
发表于 2005-10-16 05:07:20 | 显示全部楼层 |阅读模式
本人刚开始gentoo一周而已,现在遇到一个非常奇怪的问题:
xine和mplayer播放高品质rmvb和HDTV文件不正常。
以xine为例,播放一个960x540分辨率的rmvb文件,声音&图象在开始大概5秒钟之后开始出现不联贯现象,且cpu使用率持续保持在99%的水平。HDTV(1080i)格式亦是如此。
mplayer下情况稍好,但是掉帧现象依旧明显。

而在我近年来一直使用的LFS5.0下,xine播放那个rmvb文件的cpu使用率保持在80%左右的水平,且画面,声音都很流畅。HDTV也没问题。mplayer正常。

自己尝试过的处理方法:
1. 分别在CFLAGS设为-O2和-O3的情况下重新编译了xine, mplayer及内核;
2. 尝试不同的USE参数emerge xine和mplayer;
3. 使用LFS下的real/win32codecs;
4. 在未启动任何WM的纯X-Window下运行xine/mplayer;
5. 打开/关闭 mplayer的framedrop选项;
6. 启用不同的vo,如xv, x11, sdl .....;
7. 从它们的官方网页下载最新版本源代码手工编译(-O2/-O3都试过);
8. 将显卡由原来的1280x1024@24Bit设为1152x864@16Bit(情况稍有细微改善);

硬件及部分系统信息:
Athlon XP Barton 2500+ / 256M DDR333 / Geforce 440 MX(Shared 8M Memory)/ NForce 2 Chipset/ 160G HD 8M cache(DMA已用hdparm打开)

Xorg 6.8.2,
Kernel 2.6.10(用LFS下的.config手工编译,未使用任何gentoo的patch);
显卡驱动为7676,从NV网站下载的那个.run文件。
/etc/make.conf里最初就有:
CFLAGS="-O3 -march=athlon-xp"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"


另外,依稀记得几天前刚编译完kde和xine时曾试了一下播放hdtv,在24Bit色彩下还是很正常。当时还不知道有USE这一说,都是直接emerge的,所以没法播放rmvb。
也正是因为这样,才让我认定自己的系统大致上是正常的,只是不知在之后的折腾中自己到底稿错了什么地方。

还请各位gentoo前辈指教,感谢感谢:)
 楼主| 发表于 2005-10-16 08:05:47 | 显示全部楼层
已经搞定,问题处在xorg.conf中。

Option "NvAgp" "0"
这一行一定要去掉。

呵呵,以前是没有这一行的,因为看到精华区里一篇“Nvidia显卡,如何安装Suspend2”提到一定需要这一行,这才加上。

唉,白白浪费了十几个小时:(
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-16 08:21:46 | 显示全部楼层
刚才google了一下,才发现NvAgp其实非常重要。

http://download.nvidia.com/XFree86_40/1.0-2960/README.txt

The following driver options are supported by the NVIDIA XFree86 driver:

        Option "NvAGP" "integer"
                Configure AGP support. Integer argument can be one of:
                0 : disable agp
                1 : use NVIDIA's internal AGP support, if possible
                2 : use AGPGART, if possible
                3 : use any agp support (try AGPGART, then NVIDIA's AGP)
                Please note that NVIDIA's internal AGP support cannot
                work if AGPGART is either statically compiled into your
                kernel or is built as a module, but loaded into your
                kernel (some distributions load AGPGART into the kernel
                at boot up).  Default: 3 (the default was 1 until after
                1.0-1251).

上面这个网页中还详细说明了Nvidia驱动各个参数的具体含义,不错:)
回复 支持 反对

使用道具 举报

发表于 2005-10-16 08:35:21 | 显示全部楼层
下载 nvidia 驱动的页面就有这个README。应该读读。。。。。:)。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-16 09:41:34 | 显示全部楼层
呵呵,是啊,栽在这个地方是够冤枉的。
尝试什么东西之前确实应该作好功课。
回复 支持 反对

使用道具 举报

发表于 2005-10-16 16:23:43 | 显示全部楼层
Option "NvAgp" 后面参数改为1应该就流畅了吧?
说实话,Linux不适合看HDTV类视频,因为没法运用显卡的硬件解码。现在显卡的硬件解码设计都是基于directx的,ATI、Nvidia又不公开硬件设计和驱动代码,连自己写底层实现的方式都没法搞……除非那些显卡厂商肯自己在directx以外再搞一套专门给Linux用的API,不过好像几率比让他们开放驱动代码还要低……
回复 支持 反对

使用道具 举报

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

本版积分规则

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