1080p 在两个不同的 GPU 上播放时出现卡顿,还能是什么原因?

1080p 在两个不同的 GPU 上播放时出现卡顿,还能是什么原因?

我正在搭建一个 HTPCASRock E350M1/USB3 主板。板载 ATI Radeon HD 6310 显卡很难处理 1080p x264 mkv(~10 GB),所以我换了一块独立的 Nvidia GT 240(1024MB)。奇怪的是,它也无法正常播放。

两张卡都安装并激活了相关的供应商驱动程序,我试过 x264 和原始蓝光,但无济于事。我知道 GT 240 能够播放 1080p 电影,那么问题出在哪里呢?


断断续续是指每隔几秒左右就会出现一帧画面,但我有时也会看到这种情况:http://ptpimg.me/8yt8ev.png


在未修改的蓝光 (m2ts) 翻录上从命令行运行 vlc 的输出。

me@GAMMA ~ $ vlc
VLC media player 1.1.9 The Luggage (revision exported)
Blocked: call to unsetenv("DBUS_ACTIVATION_ADDRESS")
Blocked: call to unsetenv("DBUS_ACTIVATION_BUS_TYPE")
[0x8d41914] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
Blocked: call to setlocale(6, "")
Warning: call to srand(1326832540)
Warning: call to rand()
Blocked: call to setlocale(6, "")

(process:2617): Gtk-WARNING **: Locale not supported by C library.
    Using the fallback 'C' locale.
Warning: call to rand()
Warning: call to rand()
Warning: call to rand()
Warning: call to rand()
libdvbpsi error (PSI decoder): TS discontinuity (received 1, expected 0) for PID 0
libdvbpsi error (PSI decoder): TS discontinuity (received 1, expected 0) for PID 0
libdvbpsi error (PSI decoder): TS discontinuity (received 3, expected 0) for PID 256
libdvbpsi error (PSI decoder): TS discontinuity (received 3, expected 0) for PID 256
[0x8ddc6e4] signals interface error: signal 17 overriden (0x3b114c0)
[0x8ddc6e4] signals interface error:  /usr/lib/libQtCore.so.4(?)[(nil)]
[0x8ddc6e4] signals interface error: signal 17 overriden (0x3b114c0)
[0x8ddc6e4] signals interface error:  /usr/lib/libQtCore.so.4(?)[(nil)]

vlc -vvv来自同一文件的输出:这里


好的,我们通过使用 VD-PAU 让 GT 240 工作起来了,这是一个神奇的东西,它告诉 nplayer 之类的软件使用 GPU 而不是 CPU 来完成工作。问题是 VD-PAU 本质上只适用于 Nvidia,而内置显卡则基于 ATI。

(in ~/.mplayer/config)
vo=vdpau,xv
vc=ffh264vdpau,ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau

我做了一些调查,发现 VA-API 和 XVBA 似乎与 ATI 相当。现在的问题是如何让它们在 natty 中工作(最好使用 xbmc 之类的东西)


到目前为止,仅使用板载 Radeon HD 6310 显卡,我就可以完成以下操作:

sudo apt-get install xvba-va-driver libva-glx1 vainfo
mplayer -vo xv -framedrop -ao sdl /path/to/000000.m2ts

并且已经非常接近了。但是丢帧仍然太多,因此无法观看。

答案1

您能否确认硬件辅助解码是否确实被使用?

如果您可以将其添加到原始问题中,mplayer 和 vlc 的输出(如果在控制台中运行)将有助于确认或否认这一点。

尝试在 ~/.mplayer/config 中将其打开:

vo=vdpau,xv
vc=ffh264vdpau,ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau

答案2

尝试安装 SmPlayer,然后进入选项、首选项,然后在常规选项卡上,在输出控制器上,选择 gl(fast)。然后在性能选项卡上,在解码线程上,选择 8。我为我的 ATI HD 5470 做了这个,它播放效果很差,后来修好了。告诉我它的性能如何。

相关内容