Здесь есть некоторые вводящие в заблуждение и неправильные рекомендации, поэтому давайте подведем итоги, в чем заключается проблема и какие есть решения.
TL; DR
Последние версии Ubuntu начиная с 12.10 (Quantal) содержат исправленную версию библиотеки. Если вы по-прежнему сталкиваетесь с проблемами с синим видео (НЕ включая группу Blue Man ), проверьте этот ответ - имя библиотеки Flash Player должно быть libflashplayer.so
другим, иначе libvdpau не будет применять обходной путь. Вы также можете взглянуть на /etc/vdpau_wrapper.cfg
файл. Там вы можете отключить обходные пути, применяемые libvdpau.
Если у вас Oneiric (11.10) или Precise (12.04), установите исправленный libvdpau:
sudo add-apt-repository ppa:tikhonov/misc
sudo apt-get update
sudo apt-get install libvdpau1
В противном случае вы можете изменить библиотеку Flash Player:
cd /usr/lib/flashplugin-installer || cd /usr/lib/adobe-flashplugin/
sudo perl -pi.bak -e 's/libvdpau/lixvdpau/g' libflashplayer.so
Прочитайте весь пост перед комментированием.
Проблема
Flash Player начиная с версии 11.2 использует аппаратное ускорение видео на большинстве платформ. К сожалению, ускорение в Linux не просто не поддерживается, но по сути сломано. Flash Player меняет цвета в видео при следующих условиях:
- Вы используете довольно новый графический процессор Nvidia с поддержкой VDPAU .
- Вы используете текущую версию двоичного драйвера Nvidia (более старые версии не поддерживают VDPAU).
- У вас
libvdpau1
установлен пакет.
- Плеер на сайте использует Stage Video - поэтому это касается только YouTube и нескольких других игроков.
Смотрите объяснение Пьера-Лупа Гриффе из Nvidia .
Это не ошибка в драйверах Nvidia. Nvidia знает об этой проблеме, и они уже создали обходной путь. Драйвер Nouveau, вероятно, не затронут, потому что поддержка декодирования видео еще не закончена .
Это не ошибка в libvdpau. libvdpau - это просто оболочка, которая позволяет видеопроигрывателям использовать декодирование VDPAU (см . объяснение Стивена Уоррена ).
Это не специфичная для Ubuntu ошибка. Также затронуты другие дистрибутивы, например Arch .
Ошибка, возможно, есть во Flash Player - хотя Adobe пытается обвинить Nvidia и некомпетентных пользователей. На багтрекер Adobe поступило несколько отчетов, и все они были отклонены как «CannotReproduce»:
Официального исправления от Adobe не будет, так как Flash Player на базе NPAPI будет получать только исправления безопасности до 2017 года. Надеемся, что к этому времени Flash Player нам не понадобится.
Обходные пути
Используйте libvdpau 0.5
Доступно в официальных репозиториях начиная с Ubuntu 12.10 libvdpau 0.4.1-6
Эта версия libvdpau включает обходной путь Стивена Уоррена, описанный ниже.
Смотрите объявление о выпуске
Установите исправленный libvdpau (правильный патч)
Стивен Уоррен создал хороший патч для libvdpau , который обнаруживает Flash Player и применяет обходные пути только для него. Патч можно контролировать с помощью /etc/vdpau_wrapper.cfg
файла.
Исправленный libvdpau исправляет цвета и позволяет Flash Player использовать VDPAU для аппаратного оверлея, что все еще дает некоторые преимущества в производительности.
Чтобы обертка работала, она должна распознавать использование Flash. Таким образом, библиотека флэша должна быть названа libflashplayer.so
и плагин обертка должна быть включена в Firefox (в about:config
, dom.ipc.plugins.enabled.libflashplayer.so
и dom.ipc.plugins.enabled
должна быть установлена true
).
Для Precise (12.04) и Oneiric (11.10) вы можете установить пропатченную libvdapu из PPA Максима Тиконова, используя следующие команды:
sudo add-apt-repository ppa:tikhonov/misc
sudo apt-get update
sudo apt-get install libvdpau1
Изменение должно вступить в силу после перезагрузки (или, возможно, раньше).
Запретить Flash Player от нахождения libvdpau
(Через Даниэля Марио Вегу на Launchpad )
Найдите libflashplayer.so
в своей системе - для Ubuntu, это либо в том /usr/lib/adobe-flashplugin/
случае, если у вас установлен adobe-flashplugin
пакет, либо /usr/lib/flashplugin-installer/
для flashplugin-installer
пакета. Обратитесь к браузеру, about:plugins
если у вас возникли проблемы с поиском файла ( в случае Firefox может потребоваться небольшая настройка ).
Выполните следующие команды - при условии, что вы установили либо flashplugin-installer
, либо adobe-flasplugin
:
cd /usr/lib/flashplugin-installer || cd /usr/lib/adobe-flashplugin/
sudo perl -pi.bak -e 's/libvdpau/lixvdpau/g' libflashplayer.so
Изменение вступает в силу после перезапуска браузера.
Это изменит двоичный файл Flash Player для поиска несуществующей библиотеки «lixvdpau» вместо «libvdpau». Поэтому он не будет пытаться использовать презентацию VDPAU вообще.
Команда создает резервную копию двоичного файла libflashplayer.so.bak на случай возникновения каких-либо проблем.
Эту команду необходимо запускать каждый раз, когда происходит обновление Flash Player, поскольку ваши изменения будут перезаписаны.
С помощью этого обходного пути вы можете сохранить ускорение HW, установить libvdpau1, и его очень легко применять по сравнению с исправлением libvdpau.
Используйте Google Chrome с PepperFlash
Начиная с версии 20, Google Chrome поставляется с «Pepper» Flash Player 11.3 с поддержкой PPAPI (вместо 11.2 для NPAPI, используемого Firefox и др.). PepperFlash, похоже, не подвержен этой проблеме, поскольку он использует полное аппаратное ускорение.
PepperFlash можно использовать с Chromium , но, к сожалению, ни один другой браузер в настоящее время не поддерживает PPAPI.
Отключить аппаратное ускорение Flash Player
Самым простым и наименее навязчивым решением является отключение ускорения Flash Player в настройках дисплея - щелкните правой кнопкой мыши Flash, выберите «Настройки»…
Это, однако, не так просто, так как окно «Настройки» не отвечает под композитным менеджером (Compiz, стандартный Unity) и если в браузере отображаются полосы прокрутки.
Чтобы отключить аппаратное ускорение, откройте любое видео (например, на YouTube) в полноэкранном режиме, а затем откройте окно «Настройки…». Или вы можете временно переключиться на Unity 2D или другой не композитный WM.
Изменение вступает в силу после обновления.
Недостаток: это отключает ускорение HW в Flash Player даже для векторных и растровых операций. Некоторые Flash-игры и фильмы могут иметь худшую производительность и / или худшую графику.
Удалить libvdpau
Если вы хотите включить ускорение HW во Flash Player, вы можете удалить libvdpau из системы, что фактически запрещает Flash Player использовать VDPAU.
Бегать:
sudo apt-get remove libvdpau1
Недостаток: настольные плееры (такие как Totem и Mplayer) также не смогут использовать аппаратное декодирование видео. Это приведет к более высокой загрузке процессора во время воспроизведения. Также может пострадать производительность воспроизведения видео (например, пропущенные кадры или полностью замороженное изображение), особенно если у вас более медленный процессор и вы смотрите видео 1080p.
Включить аппаратное декодирование видео Flash Player
Большинство пользователей сообщают, что это приводит к очень частым сбоям Flash Player (возможно, из-за проблем параллелизма при декодировании), но если вам повезет, попробуйте.
Это также тот же метод, который используется в аддоне Flash-Aid . Это не сделает это немного лучше.
Бегать:
sudo mkdir /etc/adobe
echo -e "EnableLinuxHWVideoDecode=1" | sudo tee /etc/adobe/mms.cfg > /dev/null
Это создаст файл /etc/adobe/mms.cfg с EnableLinuxHWVideoDecode=1
контентом. Это единственный способ заставить Flash Player декодировать видео на GPU, и он официально не поддерживается Adobe.
Чтобы отменить это, запустите:
sudo rm /etc/adobe/mms.cfg
удалить файл mms.cfg.
Вы можете попытаться улучшить стабильность Flash Player с помощью VDPAU_NVIDIA_NO_OVERLAY=1
переменной среды, см. Форумы Nvidia .
Заменить Flash плееры
(В соответствии с рекомендациями Bowser на Launchpad )
Используйте FlashVideoReplacer Firefox, дополнение, Literna Mágica или другое решение, чтобы заменить стандартные проигрыватели во Flash встроенным плагином для видеопроигрывателя (например, Totem totem-mozilla
- или VLC - mozilla-plugin-vlc
). Нет Flash Player, нет проблем.
Патч libvdpau (взломать vdpau_trace)
Есть неофициальный патч от Nvidia, который исправляет ошибку Flash Player на уровне libvdpau путем взлома vdpau_trace.
Обратите внимание, что вышеупомянутый патч Стивена Уоррена технически лучше и должен использоваться вместо него.
Не обходные пути
Следующие решения будут работать только частично или могут иметь некоторые оговорки.
Включить HTML5 на YouTube
Включение проигрывателя HTML5 по адресу http://www.youtube.com/html5 не будет работать со всеми видео; некоторые видео YouTube просто недоступны для проигрывателя HTML5 (например, из-за отсутствия поддержки рекламы). Однако HTML5-видео - это круто, и вы все равно должны его использовать.
Переход на Flash Player 11.1
В FP 11.1 есть известные уязвимости, которые исправлены в 11.2. Если вы хотите рисковать, вы должны знать, во что вы ввязываетесь.
Если вы все еще хотите понизить версию, попробуйте Flash Player 10.3, который все еще поддерживается - вы можете получить его в архиве Adobe
Переключиться на другой графический процессор
Похоже, что очень мало графических процессоров Nvidia не затронуты, особенно Quadro 2000 и GeForce GT 430. Оба имеют набор функций VDPAU C , но в остальном это влияет и на большинство графических процессоров C с набором функций. Если у вас есть какой-либо из упомянутых графических процессоров, пожалуйста, сообщите нам на Launchpad , влияет ли эта ошибка на вас.