Гибридный дамп для VDPAU ускоренного воспроизведения видео на Ubuntu 11.10 с шмелем 3.0?
Я пытаюсь запустить гибридный дамп для ускоренного воспроизведения видео VDPAU на Ubuntu 11.10 с установленным и запущенным Bumblebee 3.0. Но, следуя инструкциям в URL ниже, я не могу заставить работать mplayer с vdpau:
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
:
отредактированный
/etc/bumblebee/xorg.conf.nvidia
иметьSection "Screen" Identifier "Screen0" DefaultDepth 24 SubSection "Display" Depth 24 Virtual 1920 1080 EndSubSection EndSection
Бежать
LD_LIBRARY_PATH=/usr/lib/nvidia-current:/usr/lib/nvidia-current/vdpau DISPLAY=:8 optirun mplayer -vo vdpau file.720p.mkv
Бежать
LD_LIBRARY_PATH=/usr/lib/nvidia-current DISPLAY=:8 compiz --replace &
Загруженный https://github.com/gebart/hybrid-windump, удален
xorg.conf
из него потом скомпилировал (простоmake
команда).Бежать
./windump :8 :0
Примечание: вам не нужно редактировать /etc/bumblebee/bumblebee.conf
и изменить KeepUnusedXServer
в true
как мы запускаем MPlayer напрямую с Optirun.
Я вижу один недостаток в вашем подходе к использованию X-сервера, запущенного Bumblebee (:8
). Как только демон Bumblebee обнаруживает, что клиенты optirun отсутствуют, он выключает X-сервер. Чтобы X-сервер оставался в живых, даже если optirun
вышел:
- редактировать
/etc/bumblebee/bumblebee.conf
и установитьKeepUnusedXServer=true
- Перезапустите демон, используя
sudo restart bumblebeed
(будьте осторожны: это убьет все существующиеoptirun
приложение) - Запустить запуск X-сервера:
optirun true
(true
это просто команда, которая сразу же возвращается, это может быть что угодно) Запустите приложение на вторичном X-сервере.
LD_LIBRARY_PATH
часть необходима, если вы используете драйвер nvidia:LD_LIBRARY_PATH=/usr/lib/nvidia-current DISPLAY=:8 metacity --replace &`
- Запустите 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):
Так должно быть DISPLAY=:0; metacity --replace &
Кроме того, optirun говорит, что ваш дисплей ясно:0.0, почему вы пытаетесь запустить метасити на дисплее:8? У вас есть запущенная программа: 8, которую мы не видим в вашем сообщении? Если да, пожалуйста, предоставьте нам эту информацию, пожалуйста?