Видео высокой чёткости и аппаратное ускорение посредством VDPAU

Видео высокой чёткости

Большинство видео в сети, а также все видеокамеры высокой чёткости используют формат AVCHD (H.264, MPEG-4 Part 10). Он обеспечивает высокую степень сжатия при сохранении высокого качества изображения. Недостатком является высокая требовательность к ресурсам. Так, обеспечить комфортное воспроизведение видеопотока с разрешением 1920×1080 могут только современные высокопроизводительные процессоры.

NVIDIA VDPAU

Для пользователей, имеющих старый компьютер и не желающих покупать новый или использовать видео худшего качества существуют аппаратные решения. Они позволяют обойтись лишь обновлением видеокарты и использованием программного обеспечения, поддерживающего аппаратное ускорение видео. Цена такого решения невысока, но НЕ все видеокарты NVIDIA поддерживают технологию аппаратного ускорения, её версия для Linux называется VDPAU.

Список видеокарт NVIDIA

Видеокарта Графический процессор Набор возможностей VDPAU Замечания
GeForce FX (5xxx) NV3x Не поддерживается
GeForce 6 (6xxx) NV4x, C51, C61 Не поддерживается
GeForce 7 (7xxx) G7x, C86 Не поддерживается
GeForce 8800 Ultra, 8800 GTX, 8800 GTS (320/640MB) G80 Не поддерживается
GeForce 8300 GS, 8400 GS (старые), 8500 GT, 8600 GT, 8600 GTS; Quadro FX 370, 570, 570M, 1600M, 360M; Quadro NVS 130M, 135M, 140M, 290 G84, G86 A
GeForce 8800 GS, 8800 GT, 8800 GTS (512MB/1GB), 9400 GT, 9500 GT, 9600 GSO, 9600 GT, 9800 GT, 9800 GTX, 9800 GTX+, 9800 GX2; GeForce GT 120, GT 130, GTS 150, GTS 150M, GTS 160M, GTS 250, GTX 260M, GTX 280M G92, G94, G96 A
GeForce GTX 260, GTX 260 Core 216, GTX 275, GTX 280, GTX 285, GTX 295; Quadro FX 770M, 1700, 2700M, 3600M, 3700, 4800, 5800; Quadro NVS 320M GT200 A
GeForce 8400 GS (новые), 9300 GS, 9300 GE; GeForce G 100; Quadro FX 370 LP, 470; Quadro NVS 150M, 160M, 295, 420, 450 G98 B
GeForce 8100, 8200, 8200M, 8300, 9100M, 9200M GS, 9300M GS, 9400M G, 9500M GS, 9600M GS, 9650M GT, 9700M GT, 9700M GTS, 9800M GTS, 9800M GT, 9800M GTX; ION, ION-LE C77, C79, NB9 B
GeForce G 205, G 210, G 210M, GT 220, GT 230M, GT 240M, GT 240, GTS 250M, GTS 260M, 310 GT215, GT216, GT218 C Первое поколение с поддержкой MPEG-4 ASP (MPEG-4 Part 2)

Наборы функциональных возможностей VDPAU видеокарт NVIDIA

Разные поколения видеокарт NVIDIA поддерживают разные наборы возможностей VDPAU. Для всех видеокарт максимальное поддерживаемое разрешение 2048х2048 пикселей, минимальное – 48х48 пикселей и все кодеки ограничены 8192 макроблоками (8190 for VC-1/WMV9).

Частичное ускорение означает, что декодирование потока данных осуществляется центральным процессором, а графический процессор выполняет только дискретное косинусное преобразование и компенсацию движения. Полное ускорение означает, что все операции выполняются графическим процессором.

Набор функциональных возможностей A
Полное ускорение для H.264
Частичное ускорение для MPEG-1, MPEG-2, VC-1/WMV9
Набор функциональных возможностей B
Полное ускорение для MPEG-1, MPEG-2, VC-1/WMV9 и H.264.
Невозможно декодировать H.264 ширины: 769-784, 849-864, 929-944, 1009-1024, 1793-1808, 1873-1888, 1953-1968, 2033-2048 пикселей.
Набор функциональных возможностей C
Полное ускорение для MPEG-1, MPEG-2, MPEG-4 Part 2 (MPEG-4 ASP), VC-1/WMV9 и H.264.

Приложения, использующие VDPAU

Для Linux приложений существуют патчи, позволяющие использовать VDPAU ffmpeg, xine, mplayer, kdenlive (для воспроизведения видео), mythtv, and xbmc и предположительно кодеки с открытым исходным кодом работают в vlc.

В openSUSE можно использовать репозиторий Packman, содержащий пакеты ffmpeg, mplayer и kdenlive c поддержкой VDPAU. Текущая версия xine 1.1.18 (на март 2010) не имеет поддержки VDPAU, она будет включена в версию 1.2.

Установка VDPAU в openSUSE

Для использования VDPAU в openSUSE необходимо использовать:

  • видеокарту nVidia с поддержкой VDPAU
  • проприетарный драйвер nVidia
  • программу с поддержкой VDPAU (например ffmpeg или MPlayer из репозитория Packman)

Использование VDPAU в приложениях

Далее содержится информация, специфичная для конкретных приложений.

Проверка возможностей VDPAU в ffmpeg

Для проверки ffmpeg на предмет поддержки VDPAU необходимо ввести в терминале команду:

 ffmpeg -formats | grep vdpau

ответ должен быть аналогичен этому:

 FFmpeg version 0.5, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --shlibdir=/usr/lib --prefix=/usr --mandir=/usr/share/man --libdir=/usr/lib --enable-shared
--enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libfaad
--enable-libfaac --enable-libxvid --enable-swscale --enable-postproc --enable-gpl
--enable-vhook --enable-x11grab --enable-libschroedinger --enable-libdirac --enable-libgsm
--enable-libx264 --enable-libamr-nb --enable-libamr-wb --enable-libdc1394 --enable-nonfree
--enable-pthreads --enable-vdpau
libavutil 49.15. 0 / 49.15. 0
libavcodec 52.20. 0 / 52.20. 0
libavformat 52.31. 0 / 52.31. 0
libavdevice 52. 1. 0 / 52. 1. 0
libswscale 0. 7. 1 / 0. 7. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on Mar 10 2009 22:17:30, gcc: 4.3.2 [gcc-4_3-branch revision 141291]
D V D h264_vdpau H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (VDPAU acceleration)
D V DT mpeg1video_vdpau MPEG-1 video (VDPAU acceleration)
D V DT mpegvideo_vdpau MPEG-1/2 video (VDPAU acceleration)
D V D vc1_vdpau SMPTE VC-1 VDPAU
D V D wmv3_vdpau Windows Media Video 9 VDPAU

Использования VDPAU в MPlayer

Если у вас установлен MPlayer с поддержкой VDPAU, для проигрывания видео форматов H.264, MPEG1/2 или VC-1 можно использовать следующие команды:

 mplayer -vo vdpau -vc <codec> <video-file-name>

Где <codec> может быть следующим:

 ffmpeg12vdpau
ffh264vdpau
ffwmv3vdpau
ffvc1vdpau

Для проигрывания закодированного в H.264 видео:

 mplayer -vo vdpau -vc ffh264vdpau my-h264-video.avi

Для проигрывания закодированного в MPEG2 видео:

 mplayer -vo vdpau -vc ffmpeg12vdpau my-mpeg2-video.mpg

Для проигрывания закодированного wmv3 видео:

 mplayer -vo vdpau -vc ffwmv3vdpau my-wmv3-video.wmv

Для проигрывания закодированного VC1 видео:

 mplayer -vo vdpau -vc ffvc1vdpau my-wmv-video.wmv

Преобразование из черезстрочной развёртки в прогрессивную в MPlayer VDPAU

В MPlayer можно использовать команды для управления параметрами преобразования

 deint=<0−4>

Chooses the deinterlacer (default: 0). All modes > 0 respect −field−dominance. NOTE: Values > 2 delay the video output by one frame.

 0 - No deinterlacing.

1 - Show only first field, similar to −vf field.

2 - Bob deinterlacing, similar to −vf tfields=1.

3 - Motion adaptive temporal deinterlacing. May lead to A/V desync with slow video hardware
and/or high resolution. This is the default if "D" is used to enable deinterlacing.

4 - Motion adaptive temporal deinterlacing with edge-guided spatial interpolation. Needs fast video hardware.

An example of the syntax could be:

 mplayer -vo vdpau:deint=4 -vc ffmpeg12vdpau my-mpeg2-video.mpg

Использование SMplayer

В меню Настройки > Настройки на вкладке Видео выбираем устройство вывода vdpau. В разделе Дополнительно на вкладке Настроить Mplayer в строке Настройки необходимо ввести параметры запуска Mplayer:

 -vc ffmpeg12vdpau,ffh264vdpau,ffwmv3vdpau,ffvc1vdpau,

Устранение неполадок с VDPAU

При быстром движении картинки возможно появление “разрывов” или горизонтальных линий, также это может проявляться как рывки видео. Одним из возможных решений проблемы можеть быть добавление в /etc/X11/xorg.conf :

 Section "Extensions"
Option "Composite" "Disable"
EndSection

затем необходимо перезапустить X сервер.

Известные ограничения VDPAU (на Апрель 2009)

  • 1. Воспроизведение некоторых видео потоков может вызвать ошибки графического процессора или крах системы.
  • 2. Функция шага вперёд/назад работает не всегда надёжно и может привести к зависанию приложения.
  • 3. MPlayer OSD или Composite Picture не поддерживается.
  • 5. Декодер ffh264vdpau из состава MPlayer проигрывает по производительности другим: ffmpeg12vdpau, ffvc1vdpau и ffwmv3vdpau. Ведутся работы по оптимизации.

Ссылки

Добавить комментарий

Войти с помощью: