From ArchWiki
Revision as of 22:55, 11 November 2013 by Anish (talk | contribs) (Silverlight initialization)
Jump to: navigation, search

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary text Template:Article summary text Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary end Pipelight is a special browser plugin which allows one to use windows only plugins inside Linux browsers. We are currently focusing on Silverlight and its features like watching DRM protected videos. The project needs a patched version of Wine to execute the Silverlight DLL. From here.

Pipelight allows [you] to run your favorite Silverlight application directly inside your Linux browser. The project combines the effort by Erich E. Hoover with a new browser plugin that embeds Silverlight directly in any Linux browser supporting the Netscape Plugin API. He worked on a set of Wine patches to get Playready DRM protected content working inside Wine and afterwards created an Ubuntu package called Netflix DesktopAUR. This package allows one to use Silverlight inside a Windows version of Firefox, which works as a temporary solution but is not really user-friendly and moreover requires Wine to translate all API calls of the browser. To solve this problem we created Pipelight.

Pipelight consists out of two parts: A Linux library which is loaded into the browser and a Windows program started in Wine. The Windows program, called pluginloader.exe, simply simulates a browser and loads the Silverlight DLLs. When you open a page with a Silverlight application the library will send all commands from the browser through a pipe to the Windows process and act like a bridge between your browser and Silverlight. The used pipes do not have any big impact on the speed of the rendered video since all the video and audio data is not send through the pipe. Only the initialization parameters and (sometimes) the network traffic is send through them. As a user you will not notice anything from that "magic" and you can simply use Silverlight the same way as on Windows... From here.


Install pipelightAUR from the AUR. Consider using an AUR helper that resolves dependencies from the AUR and the Official Repositories as Pipelight requires wine-silverlightAUR (a patched version of wine with silverlight support) which is also in AUR.

Install location

The location of wine-silverlight and wineprefix are all customizable in the PKGBUILD. Please refer to the Variables section below for details

Warning: Firefox should be closed during the installation of Pipelight. Failure to do so may result in this issue

Silverlight initialization

Once Pipelight has completed installing, there is one more step that you need to do:

  1. Change the user agent string of your browser as described here.
    Note: This is required because even though you are now capable of running Netflix, Netflix will not stream if it detects that the browser is on GNU/Linux.

Checking your work

You can verify that the Silverlight plugin was installed correctly even before changing the user agent by visiting this page. Alternatively, you can check Firefox/Chrome plugins with about:plugins.

Enable GPU Acceleration

Note: You need wine-silverlightAUR 1.7.0-6 and pipelightAUR 1-12 or higher to use gpu acceleration correctly

As for pipelight 1-12, GPU acceleration is automatically enabled on supported cards. Refer note below for debugging instructions

Note: Instructions for enabling GPU have been simplified a lot, please refer to https://answers.launchpad.net/pipelight/+faq/2364

You can use this page (or even just netflix) to test out 1080p streaming : http://www.iis.net/media/experiencesmoothstreaming1080p (Needs ForceGPUAcceleration set)

Blank video window after enabling gpu acceleration

If you see this issue, try setting embed = false in the pipelight config file.


Note: If you adjusted the the values of _prefix in the PKGBUILD, then the location of the installer will vary accordingly. If your wine-silverlightAUR is not installed in the default location, then you need to modify the value _wine in the PKGBUILD to the actual prefix. Similarly, the package installs and looks for the actual silverlight plugin in ~/.wine-pipelight by default. However, you can change this by modifying the value of _wineprefix in the PKGBUILD.

If you change the value of _wine in the PKGBUILD to, for example, /opt/wine-silverlight, then this will be automatically propogated to the plugin installer script as well as the Pipelight configuration.

Note: You only have to give the path to where bin/wine is.
Warning: If you do not do this in the PKGBUILD, you need to edit the installer as well as the config file manually later on.

For example, to use wine-silverlight installed in /opt/wine-silverlight/ you need to follow the following steps :

  1. When compiling wine-silverlight uncomment the line 'customprefix=1'
  2. When compiling pipelight set the _wine variable to /opt/wine-silverlight


The selection of variables involved in configuring Wine-Silverlight and Pipelight are explained below

  • Wine-Silverlight
  1. customprefix
    • This is commented out by default. Uncommenting this in will install wine to /opt/wine-silverlight instead of /bin.
    • This must be set to 1 for a custom install prefix. The default is /usr.
  2. _prefix
    • This controls the default custom prefix path.
    • If you do not want to use /opt/wine-silverlight, then customprefix must be set as explained in the previous section for your changes to work.
      Warning: Do not give the full path to the Wine binary here. Only use where /bin should go. For example /opt/wine-silverlight will result in the Wine executable being located at /opt/wine-silverlight/bin/wine.
  • Pipelight
  1. _prefix
    • Similar to Wine-Silverlight, this controls where Pipelight is installed. The default is /usr/share/pipelight.
  2. _wine
    • This is the location of the Wine-Silverlight executable.
    • It must be same as what was used while compiling wine-silverlight.
  3. _wineprefix
    • This is the location of where the Silverlight plugin used by Pipelight gets installed. The default is ~/.wine-pipelight.


Known issues with Pipelight and solutions are often listed here.

See also