1080p на двух разных графических процессорах, что еще это может быть?
Я строю HTPC с этой материнской платой ASRock E350M1/USB3. Встроенная видеокарта ATI Radeon HD 6310 с трудом проглотила 1080p x264 мкВ (~10 ГБ), поэтому я выбрал дискретный Nvidia GT 240 (1024 МБ). Как ни странно, это также не сыграло бы это должным образом.
На обеих картах были установлены и активированы драйверы соответствующих поставщиков. Я пробовал x264 и raw blu-ray безрезультатно. Я знаю, что GT 240 способен воспроизводить фильмы 1080p, так что же такое зависание?
Под изменчивым понимается получение одного кадра каждые несколько секунд, но я также вижу это время от времени: http://ptpimg.me/8yt8ev.png
Выход из запуска vlc из командной строки на нетронутом Blu-ray (m2ts) рипе.
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
на тот же файл: здесь
Итак, GT 240 работает с использованием VD-PAU, и это волшебная вещь, которая говорит программному обеспечению, например, nplayer, использовать графический процессор для выполнения работы вместо центрального процессора. Проблема в том, что 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
и это, конечно, приближается. Тем не менее, все еще слишком много пропущенных кадров, чтобы их можно было наблюдать.
2 ответа
Можете ли вы подтвердить, действительно ли аппаратное декодирование используется вообще?
Вывод mplayer и vlc (при запуске в консоли) поможет подтвердить или опровергнуть это, если вы сможете добавить его к исходному вопросу.
Попробуйте это в ~/.mplayer/config, чтобы включить его:
vo=vdpau,xv
vc=ffh264vdpau,ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau
Попробуйте установить SmPlayer и перейти к настройкам, настройкам, затем на вкладке "Общие" на контроллере вывода выбрать "gl" (быстро). Затем на вкладке производительности в потоках декодирования выберите 8. Я сделал это для своего ATI HD 5470, который играл очень плохо и был исправлен. Расскажите мне что-нибудь о том, как это работает.