+ -
当前位置:首页 → 问答吧 → [求助]播放720P的MKV很卡

[求助]播放720P的MKV很卡

时间:2009-09-05

来源:互联网

我的显卡是NVIDIA 9800GT 1G显存的。
用gnome-mplayer播放720P的电影时一会卡一下。
这个显卡播放高清影片应该绰绰有余的吧。

作者: CrazyPandar   发布时间: 2009-09-05

intel 945GM照样播 720Pmkv,不卡,就是cpu很让人难受

mplayer -vo gl XXX.mkv

如果用硬解,参看http://www.linuxsir.org/bbs/post1951611-7.html

作者: nonplus   发布时间: 2009-09-05

我在XP下面播放,一点都不卡。
而且硬解也打开了,CPU只占3%。

作者: CrazyPandar   发布时间: 2009-09-05

ls不要误导人家, 那个半年前的帖子已经过时了

PKGBUILD
代码:
# $Id$
# Maintainer: Hugo Doria <[email protected]>

pkgname=mplayer
pkgver=29411
pkgrel=3
pkgdesc="A movie player for linux"
arch=('i686' 'x86_64')
depends=('libxxf86dga' 'libxv' 'libmad' 'giflib' 'cdparanoia'
 'sdl' 'lame' 'libtheora' 'xvidcore' 'zlib' 'libmng' 'libxss'
 'libgl' 'smbclient' 'aalib' 'jack-audio-connection-kit' 'libcaca'
 'x264>=20090416' 'faac' 'lirc-utils' 'ttf-dejavu' 'libxvmc' 'libjpeg>=7'
 'libass' 'libdvdnav' 'libdvdread' 'libdvdcss')
license=('GPL')
url="http://www.mplayerhq.hu/"
makedepends=('unzip' 'live-media' 'libdca' 'mesa')
backup=('etc/mplayer/codecs.conf' 'etc/mplayer/input.conf')
source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.bz2 liba52_gcc_bug.patch)
md5sums=('f98798cc793bcd13137cd941963342f7' 'c00f5d6cf7fb2a840e5eea9c1da568da')

build() {
 # Custom CFLAGS break the mplayer build
 unset CFLAGS

 # Needed to compile using gcc 4.4.1 
 patch -p0 < ${srcdir}/liba52_gcc_bug.patch || return 1 

 cd ${srcdir}/${pkgname}

 ./configure --prefix=/usr --disable-runtime-cpudetection --disable-gui --disable-arts \
 --confdir=/etc/mplayer --disable-liblzo --disable-speex \
 --disable-openal --disable-fribidi --disable-libdv --disable-musepack \
 --language=all --disable-esd --disable-mga --enable-ass --enable-freetype --enable-largefiles || return 1

 [ "$CARCH" = "i686" ] && sed 's|-march=i486|-march=i686|g' -i config.mak

 make || return 1
 make -j1 DESTDIR=${pkgdir} install || return 1
 install -Dm644 etc/{codecs.conf,input.conf,example.conf} ${pkgdir}/etc/mplayer/ || return 1
 install -dm755 ${pkgdir}/usr/share/mplayer/
 ln -s /usr/share/fonts/TTF/DejaVuSans.ttf ${pkgdir}/usr/share/mplayer/subfont.ttf || return 1
 rm -rf ${pkgdir}/usr/share/mplayer/font
}
liba52_gcc_bug.patch:
代码:
--- mplayer/configure.old  2009-04-16 12:02:10.000000000 +0200
+++ mplayer/configure   2009-05-22 15:23:38.000000000 +0200
@@ -6410,6 +6410,7 @@
 def_liba52='#undef CONFIG_LIBA52'
 def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL"
 if test "$_liba52_internal" = yes ; then
+       test "$cc_vendor" = gnu && test "$cc_version" = 4.4.1 && CFLAGS=$(echo $CFLAGS|sed "s/ *-O4 */ -O2 /")
 _liba52=yes
 def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1"
 _res_comment="internal"
上述两个文件放到同一个文件夹, 然后makepkg. mplayer编译过程会自动侦测系统环境, 给你加上vdpau支持.
编译好后,pacman -Rd mplayer卸载, pacman -U *.pkg.tar.gz安装.

在~/.mplayer/config中加入
代码:
vo=vdpau,xv
vc=ffh264vdpau,ffmpeg12vdpau,ffwmv3vdpau,
请楼主以后多用用google, 试过了没有办法再来问问题!
记得贴上错误信息大家好帮忙.

作者: lolilolicon   发布时间: 2009-09-05

谢谢楼上帮忙。
我已经搞定了。
http://blog.zol.com.cn/868/article_867075.html

作者: CrazyPandar   发布时间: 2009-09-05

不过还是有点郁闷,我的PD2.8的CPU,
就算软解720P的电影也不会卡吧。
大家觉得呢?

作者: CrazyPandar   发布时间: 2009-09-05

引用:
作者: lolilolicon
ls不要误导人家, 那个半年前的帖子已经过时了

PKGBUILD
代码:
# $Id$
# Maintainer: Hugo Doria <[email protected]>

pkgname=mplayer
pkgver=29411
pkgrel=3
pkgdesc="A movie player for linux"
arch=('i686' 'x86_64')
depends=('libxxf86dga' 'libxv' 'libmad' 'giflib' 'cdparanoia'
 'sdl' 'lame' 'libtheora' 'xvidcore' 'zlib' 'libmng' 'libxss'
 'libgl' 'smbclient' 'aalib' 'jack-audio-connection-kit' 'libcaca'
 'x264>=20090416' 'faac' 'lirc-utils' 'ttf-dejavu' 'libxvmc' 'libjpeg>=7'
 'libass' 'libdvdnav' 'libdvdread' 'libdvdcss')
license=('GPL')
url="http://www.mplayerhq.hu/"
makedepends=('unzip' 'live-media' 'libdca' 'mesa')
backup=('etc/mplayer/codecs.conf' 'etc/mplayer/input.conf')
source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.bz2 liba52_gcc_bug.patch)
md5sums=('f98798cc793bcd13137cd941963342f7' 'c00f5d6cf7fb2a840e5eea9c1da568da')

build() {
 # Custom CFLAGS break the mplayer build
 unset CFLAGS

 # Needed to compile using gcc 4.4.1 
 patch -p0 < ${srcdir}/liba52_gcc_bug.patch || return 1 

 cd ${srcdir}/${pkgname}

 ./configure --prefix=/usr --disable-runtime-cpudetection --disable-gui --disable-arts \
 --confdir=/etc/mplayer --disable-liblzo --disable-speex \
 --disable-openal --disable-fribidi --disable-libdv --disable-musepack \
 --language=all --disable-esd --disable-mga --enable-ass --enable-freetype --enable-largefiles || return 1

 [ "$CARCH" = "i686" ] && sed 's|-march=i486|-march=i686|g' -i config.mak

 make || return 1
 make -j1 DESTDIR=${pkgdir} install || return 1
 install -Dm644 etc/{codecs.conf,input.conf,example.conf} ${pkgdir}/etc/mplayer/ || return 1
 install -dm755 ${pkgdir}/usr/share/mplayer/
 ln -s /usr/share/fonts/TTF/DejaVuSans.ttf ${pkgdir}/usr/share/mplayer/subfont.ttf || return 1
 rm -rf ${pkgdir}/usr/share/mplayer/font
}
liba52_gcc_bug.patch:
代码:
--- mplayer/configure.old  2009-04-16 12:02:10.000000000 +0200
+++ mplayer/configure   2009-05-22 15:23:38.000000000 +0200
@@ -6410,6 +6410,7 @@
 def_liba52='#undef CONFIG_LIBA52'
 def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL"
 if test "$_liba52_internal" = yes ; then
+       test "$cc_vendor" = gnu && test "$cc_version" = 4.4.1 && CFLAGS=$(echo $CFLAGS|sed "s/ *-O4 */ -O2 /")
 _liba52=yes
 def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1"
 _res_comment="internal"
上述两个文件放到同一个文件夹, 然后makepkg. mplayer编译过程会自动侦测系统环境, 给你加上vdpau支持.
编译好后,pacman -Rd mplayer卸载, pacman -U *.pkg.tar.gz安装.

在~/.mplayer/config中加入
代码:
vo=vdpau,xv
vc=ffh264vdpau,ffmpeg12vdpau,ffwmv3vdpau,
请楼主以后多用用google, 试过了没有办法再来问问题!
记得贴上错误信息大家好帮忙.
这个是在aur上的吗? 名字是什么?我想用yaourt装

作者: caelfish   发布时间: 2009-09-05

.不是 =.=

作者: lolilolicon   发布时间: 2009-09-05

1.提供的是思路而已…… -.- portage跟aur还是有差别的
2.mplayer的patch传说中gcc4.4.1版本并不需要打补丁(gentoo下gcc4.4.1不打补丁大部分anime不能看)

果然这里很危险……

作者: nonplus   发布时间: 2009-09-05

看来不是,
引用:
然后makepkg. mplayer编译过程会自动侦测系统环境, 给你加上vdpau支持.
你给出的pkbuild没看出来会添加vdpau支持啊?(汗,菜鸟),我在aur看到有这个http://aur.archlinux.org/packages.php?ID=22231

作者: caelfish   发布时间: 2009-09-06

引用:
作者: me
mplayer编译过程会自动侦测系统环境, 给你加上vdpau支持.
这个是mplayer的一个"特性" -- 不需要你额外指定--enable-vdpau, 只要它侦测到你的显卡支持vdpau就会给你enable了. 其他诸多选项也是如此, 它会尽可能给你全enable的, 所以基本上你只要负责--disable-你不要的就OK了

当然你有N卡你也可以加上, 无所谓

AUR那个是svn的, 也可一试.

作者: lolilolicon   发布时间: 2009-09-06

知道了 谢谢~~大侠

作者: caelfish   发布时间: 2009-09-06

不过 您这个mplayer的依赖怎么这么多啊? 我装官方源里那个没这么多依赖啊

作者: caelfish   发布时间: 2009-09-06

我自己加的, 因为我需要这些支持

作者: lolilolicon   发布时间: 2009-09-06

引用:
作者: lolilolicon
这个是mplayer的一个"特性" -- 不需要你额外指定--enable-vdpau, 只要它侦测到你的显卡支持vdpau就会给你enable了. 其他诸多选项也是如此, 它会尽可能给你全enable的, 所以基本上你只要负责--disable-你不要的就OK了

当然你有N卡你也可以加上, 无所谓

AUR那个是svn的, 也可一试.
我晕,编译的时候还根据系统环境做设置,个人觉得这样不怎么合理。

作者: CrazyPandar   发布时间: 2009-09-06

这个也是各持所见, 我也觉得这个不是什么好的设计.

但是这样设计也是有原因的, 毕竟mplayer这个东西编译的选项比较复杂, 如果完全需要手动--enable --disable的话, 恐怕对于部分用户来说并不能让mplayer发挥最大功用. 所以换个角度来看, 这也算是一种"智能"吧...XD

几个月以前就有出现过[extra]里的mplayer默认编译进了VDPAU支持, 原来是维护者打包的时候被mplayer"智能"掉了. 囧

作者: lolilolicon   发布时间: 2009-09-06

AUR上面有个mplayer-vdpau-nogui .我用的这个。
效果还可以。。vdpau有个弊端,如果KDE开启桌面特效的, 在播放高清的话,你会发现意想不到的效果(嘻嘻嘻)

作者: firefoxmmx   发布时间: 2009-09-06

引用:
作者: firefoxmmx
AUR上面有个mplayer-vdpau-nogui .我用的这个。
效果还可以。。vdpau有个弊端,如果KDE开启桌面特效的, 在播放高清的话,你会发现意想不到的效果(嘻嘻嘻)
我用的XFCE,一切正常,嘿嘿。

作者: CrazyPandar   发布时间: 2009-09-07

本人的集显intel gma x4500显示芯片,搜了一下,是支持硬解的
使用默认的mplayer时候 mplayer -vo help | grep vdpau无任何输出。
然后编译了svn版的mplayer ,加了参数 --enable-vdpau,结果编译出错....
换intel的驱动成aur上的newest,还是如此......

作者: Havanna   发布时间: 2009-09-30

ls的,vdpau只支持N卡吧?

作者: xcxxb   发布时间: 2009-09-30

引用:
作者: xcxxb
ls的,vdpau只支持N卡吧?
呀,我不懂
那么请问本人的intel集成显示芯片在mplayer中如何开启硬解呢?

作者: Havanna   发布时间: 2009-09-30

引用:
作者: Havanna
呀,我不懂
那么请问本人的intel集成显示芯片在mplayer中如何开启硬解呢?

Coreavc
http://sites.google.com/site/polaris...---coreavc-pkg

作者: ddup   发布时间: 2009-10-05

多查查,intel的只能支持xvmc,播放少数格式的时候减少cpu使用量,不能硬解。

说能硬解只是windows下

作者: jarryson   发布时间: 2009-10-05

引用:
作者: CrazyPandar
不过还是有点郁闷,我的PD2.8的CPU,
就算软解720P的电影也不会卡吧。
大家觉得呢?
linux桌面的视频播放性能不是很好. 曾经在同一台笔记本电脑上用mplayer测过.

linux是gentoo linux,已经加上了所有优化参数.

作者: redguardtoo   发布时间: 2009-10-06