16 октября 2013

Pipelight Plugin. MS Silverlight в Ubuntu 12.04, 12.10, 13.04, 13.10

Многие пользователи Линукс, которые смотрят телевизионные трансляции онлайн, наверняка сталкивались с проблемой - некоторые каналы используют технологию Microsoft Silverlight, нативная поддержка которой в Линукс системах, по понятным причинам, отсутствует, а имеющиеся "костыли" вроде Moonlight давно устарели и не работают.
Единственным способом решения этой проблемы до недавнего времени было использование Netflix Desktop, что предполагает установку специально "пропатченных" библиотек Wine и Windows-версии Firefox. Сравнительно новая разработка - Pipelight plugin,  позволяет использовать Windows-библиотеки Silverlight непосредственно в браузерах для Линукс. При этом, сам Silverlight работает через Wine, а Pipelight plugin служит "переходником", обеспечивающим совместимость с любым Линукс-браузером, поддерживающим Netscape Plugin API (Firefox, Chrome, Midori и др.). Причем, по уверениям разработчиков, потери производительности при этом минимальны. Новая версия плагина работает также с Windows-версией Adobe Flash, но эта функция пока экспериментальная и на ней мы останавливаться не будем.


Установка Pipelight

1) Для начала, нам потребуется установить расширение для браузера, которое позволит ему выдать себя за Windows-версию. Это важный шаг, и чтобы его ненароком не пропустить, проделаем это сразу.
 - Для Firefox: установите расширение UAControl или User Agent Overrider и выберите в настройках расширения одну из следующих строк user agent:
     Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120427 Firefox/15.0a1
     Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0
     Mozilla/5.0 (Windows NT 6.1; rv:23.0) Gecko/20131011 Firefox/23.0
- Для Chrome: установите расширение User Agent Switcher  и выберите Windows Firefox 15 в настройках расширения.

2)  Разработчики рекомендуют производить саму установку при закрытых окнах браузера, иначе возможны ошибки и конфликты. Поэтому скопируйте дальнейшие инструкции в текстовый редактор и закройте все браузеры.

Если вы уже используете старую версию Pipelight, удалите её командой в терминале:
sudo apt-get remove pipelight

затем скопируйте и выполните следующие команды:

sudo apt-add-repository ppa:ehoover/compholio
sudo apt-add-repository ppa:mqchael/pipelight
sudo apt-get update
sudo apt-get install pipelight-multi

Как видим, приходится использовать два репозитория - один для специальной версии Wine, другой для самого Pipelight. Теперь необходимо активизировать плагин командой:

pipelight-plugin --enable silverlight (для текущего пользователя)

или

sudo pipelight-plugin --enable silverlight (для всей системы, но это обычно не требуется. Я устанавливал без sudo).

Установка практически завершена. Первый запуск браузера после установки плагина потребует больше времени, чем обычно - система автоматически создаст специальный префикс Wine, скачает и установит туда библиотеки Silverlight, о чем будет свидетельствовать информационное окошко. По умолчанию, устанавливается версия Silverlight 5.1, но если вы хотите использовать другую, например, 5.0, воспользуйтесь командой

pipelight-plugin --disable silverlight --enable silverlight5.0  (с sudo - для всей системы).

Работу плагина можно для начала проверить на этом тестовом Silverlight-апплете.

Если вы забыли закрыть браузер перед установкой и случился сбой, можно попробовать удалить соответствующий wineprefix, чтобы он создался заново:

rm -rf ~/.wine-pipelight/

и перезапустить браузер.

Примечание: если плагин не работает, проверьте, виден ли он в списке установленных (например, введите about:plugins в строке адреса). Кроме того, в крайнем случае, можно воспользоваться более свежими тестовыми версиями Pipelight, подключив daily PPA. У меня плагин завелся сразу, без особых проблем, разве что первый запуск воспроизведения на этой странице произошел после длинной паузы, но затем всё нормализовалось.
Использовался Firefox 24, Xubuntu 13.10 beta2, драйвер Nvidia 325.15. Расширение User Agent Overrider, строка User agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0 (Firefox 22/Windows). Нагрузка на процессор при воспроизведении онлайн-видео наблюдалась примерно такая же, как у обычного Flash.

И еще. Если воспроизведение сильно тормозит, можно попробовать настроить аппаратное ускорение как написано здесь. Надеюсь, это не понадобится.

Удачи в экспериментах.

UPD: посмотрите новую статью о Pipelight от 08.04.2014