Гибридный дамп для VDPAU ускоренного воспроизведения видео на Ubuntu 11.10 с шмелем 3.0?

Я пытаюсь запустить гибридный дамп для ускоренного воспроизведения видео VDPAU на Ubuntu 11.10 с установленным и запущенным Bumblebee 3.0. Но, следуя инструкциям в URL ниже, я не могу заставить работать mplayer с vdpau:

/questions/29391/prosmotr-video-s-vklyuchennyim-apparatnyim-uskoreniem-daet-mne-zvuk-no-net-izobr/29399#29399

avilella@magneto:~/hybrid_graphics/hybrid-windump$ git pull
Already up-to-date.
avilella@magneto:~/hybrid_graphics/hybrid-windump$ make clean && make

optirun true
LD_LIBRARY_PATH=/usr/lib/nvidia-current DISPLAY=:8 metacity --replace &
LD_LIBRARY_PATH=/usr/lib/nvidia-current DISPLAY=:8 mplayer -vo vdpau file.720p.mkv
#(in the other gnome-terminal tab)
LD_LIBRARY_PATH=/usr/lib/nvidia-current ~/hybrid_graphics/hybrid-windump/windump :8 :0

Также попробовал:

LD_LIBRARY_PATH=/usr/lib/nvidia-current DISPLAY=:8 mplayer -vo vdpau -vc ffh264vdpau file.720p.mkv

Я не получаю никакого видео от него, только аудио. Я получаю видео и аудио, если удаляю бит vdpau, но тогда windump не нужен:

LD_LIBRARY_PATH=/usr/lib/nvidia-current DISPLAY=:8 mplayer file.720p.mkv

Если я попробую glxspheres, он работает хорошо, например так:

LD_LIBRARY_PATH=/usr/lib/nvidia-current DISPLAY=:8 glxspheres
#(in the other gnome-terminal tab)
LD_LIBRARY_PATH=/usr/lib/nvidia-current ~/hybrid_graphics/hybrid-windump/windump :8 :0

Polygons in scene: 62464
Visual ID of window: 0x27
Context is Direct
OpenGL Renderer: GeForce 310M/PCI/SSE2

Сейчас видео играет. Следуя инструкциям ниже, я заставил его работать до некоторой степени:

редактировать /etc/bumblebee/xorg.conf.nvidia и добавил:

Section "Screen"
    Identifier "Screen0"
    DefaultDepth 24
    SubSection "Display"
        Depth    24
        Virtual  1280 720
    EndSubSection
EndSection

Restarted bumblebeed:

sudo restart bumblebeed

В одном из терминалов я называю mplayer команда:

LD_LIBRARY_PATH=/usr/lib/nvidia-current:/usr/lib/nvidia-current/vdpau DISPLAY=:8 optirun mplayer -vo vdpau -ao alsa file.720p.mkv

В другом терминале я затем вызываю compiz а потом windump команды:

LD_LIBRARY_PATH=/usr/lib/nvidia-current DISPLAY=:8  compiz --replace &

~/hybrid-windump/windump :8 :0

ПРОБЛЕМЫ: я борюсь с размером окна видео. На экране 1366x768 я настроил видео размером 1280x720, но изображение обрезается примерно на 200 пикселей с правой стороны, оставляя такой же размер черного windump площадь.

Есть идеи?

4 ответа

Вот так я и получил vdpau:

  1. отредактированный /etc/bumblebee/xorg.conf.nvidia иметь

    Section "Screen"
        Identifier "Screen0"
        DefaultDepth 24
        SubSection "Display"
            Depth    24
            Virtual  1920 1080
        EndSubSection
    EndSection
    
  2. Бежать

    LD_LIBRARY_PATH=/usr/lib/nvidia-current:/usr/lib/nvidia-current/vdpau DISPLAY=:8 optirun mplayer -vo vdpau file.720p.mkv
    
  3. Бежать

    LD_LIBRARY_PATH=/usr/lib/nvidia-current DISPLAY=:8  compiz --replace &
    
  4. Загруженный https://github.com/gebart/hybrid-windump, удален xorg.conf из него потом скомпилировал (просто make команда).

  5. Бежать ./windump :8 :0

Примечание: вам не нужно редактировать /etc/bumblebee/bumblebee.conf и изменить KeepUnusedXServer в true как мы запускаем MPlayer напрямую с Optirun.

Я вижу один недостаток в вашем подходе к использованию X-сервера, запущенного Bumblebee (:8). Как только демон Bumblebee обнаруживает, что клиенты optirun отсутствуют, он выключает X-сервер. Чтобы X-сервер оставался в живых, даже если optirun вышел:

  1. редактировать /etc/bumblebee/bumblebee.conf и установить KeepUnusedXServer=true
  2. Перезапустите демон, используя sudo restart bumblebeed (будьте осторожны: это убьет все существующие optirun приложение)
  3. Запустить запуск X-сервера: optirun true (true это просто команда, которая сразу же возвращается, это может быть что угодно)
  4. Запустите приложение на вторичном X-сервере. LD_LIBRARY_PATH часть необходима, если вы используете драйвер nvidia:

    LD_LIBRARY_PATH=/usr/lib/nvidia-current DISPLAY=:8 metacity --replace &`
    
  5. Запустите windump с: windump :8 :0

Примечание: я не мог заставить это работать с xorg-edgers / ppa + nouveau и драйвером nvidia, использующим вилку gebarts. С драйвером nvidia у меня сильно рвется при запуске glxspheres, Если разрешение выведенного на экран экрана не соответствует основному разрешению экрана, вам, вероятно, необходимо добавить дополнительные модели /etc/bumblebee/xorg.conf.nvidia, Для 1920x1080 добавляемые строки выглядят так:

Section "Screen"
    Identifier "Screen0"
    DefaultDepth 24
    SubSection "Display"
        Depth    24
        Virtual  1920 1080
    EndSubSection
EndSection

Я рад, что людям нравится мое решение, но я хотел бы подчеркнуть, что это всего лишь доказательство концептуального способа использования VDPAU с Optimus.

Gebart написал Hybrid-Windump таким образом, что он сильно привязан к процессору, поскольку все копируется с "экрана" на "экран" довольно неэффективно.

Да, вы используете VDPAU для декодирования, но вы не получаете никакой экономии при использовании процессора.

Также есть возможность вывести отдельные окна по их идентификатору.

Для клавиатуры вам нужно Option "AutoAddDevices" "true",

Вы также можете использовать гибридный windump, чтобы начать весь рабочий стол с поддержкой VDPAU, используя предпочитаемое DE.

Если вы все еще хотите использовать это, вот несколько видео о том, как выглядят результаты (в зависимости от конфигурации X):

http://www.youtube.com/watch?v=WVBMLdeRoUU

http://www.youtube.com/watch?v=pxziIAPFIFY

Так должно быть DISPLAY=:0; metacity --replace &

Кроме того, optirun говорит, что ваш дисплей ясно:0.0, почему вы пытаетесь запустить метасити на дисплее:8? У вас есть запущенная программа: 8, которую мы не видим в вашем сообщении? Если да, пожалуйста, предоставьте нам эту информацию, пожалуйста?

Другие вопросы по тегам