Do more on the web, with a fast and secure browser!

Download Opera browser with:

  • built-in ad blocker
  • battery saver
  • free VPN
Download Opera

Widevine + H.264 Support on Ubuntu 19.10

  • There are new changes with the release of Ubuntu 19.10 that interrupt Opera's support for Widevine and H.264 videos. Note that this solution assumes you have Google Chrome installed. I've only had time to test this on Ubuntu.

    With previous iterations of Ubuntu (e.g. 18.04 and 19.04) I was had widevine (Netflix, Amazon Prime) and H.264 (YouTube) support with a simple adjustments. You need to copy over Google Chrome's libffmpeg.so file over to Opera's directory

    sudo cp /usr/lib/chromium-browser/libffmpeg.so /usr/lib/x86_64-linux-gnu/opera/libffmpeg.so 
    

    However, in Ubuntu 19.10 things changed a bit. The libffmpeg.so file moved to /usr/share/code/libffmpeg.so. The fix was fairly easy

    sudo cp /usr/share/code/libffmpeg.so /usr/lib/x86_64-linux-gnu/opera/libffmpeg.so
    

    This returned support for H.264 videos (YouTube). But widefine was still missing. Again, files moved with Ubuntu 19.10's release. Here is where I found the necessary libwidevinecdm.so file.

    sudo cp /opt/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so /opt/google/chrome/libwidevinecdm.so
    

    Looking at Opera's files we can see that it utilizes Google's files once again.

    (base) jonathan@asus:~$ cat /usr/lib/x86_64-linux-gnu/opera/resources/widevine_config.json 
    [
    {
        "preload" : "/opt/google/chrome/libwidevinecdm.so"
    },
    {
        "preload" : "/opt/google/chrome-beta/libwidevinecdm.so"
    },
    {
        "preload" : "/opt/google/chrome-unstable/libwidevinecdm.so"
    }
    ]
    

    So the fix is to copy that livwidevinecdm.so to one of those directories. The above command does so.

    I hope this helps anyone out there encountering this problem. Comments and suggestions are welcome (especially for non-Ubuntu distributions).

  • I've had some issues with the chromium bundled ffmpeg library but iteufel/nwjs-ffmpeg-prebuilt works just fine.

    Just in case someone stumbles across ffmpeg issues. https://github.com/iteufel/nwjs-ffmpeg-prebuilt/releases

  • @romanzipp are you using Google Chrome from https://www.google.com/chrome/ ? You should download the .deb file from that source to install Google Chrome. Don't use Chromium or snap to install Google Chrome. This applies to Opera as well. Download Opera from https://www.opera.com/download .

  • Hi guys,

    have u got any news on netflix and Widevine? I'm not able to play videos on my ubuntu 19.10 and Opera 66.0.3515.72.

    Regards.

  • @johnnyboycurtis :

    Newbie here to the forum, though not to Linux OR to Chromium-based browsers; I've been building browser packages for the Puppy Linux community for some years. These often have to be modified from 'standard' layout to accommodate Puppy's 'run-as-root' model.

    Many of my community compatriots used to be enamoured of the old Opera 12, based on the 'Presto' engine. Me, I could never get the hang of its 'quirky' way of doing things....

    I regularly produce packages for Chrome itself, Iron & SlimJet, in addition to Opera, which I've only turned my attention to this last few months. I have to confess, I DO like it!

    Now then; to echo nesar77 above....what is it with the current Opera 66 releases? It's the same story for any of the Chromium-based browsers since they moved to v78 onwards, and this darned WidevineCDM sub-directory, with all its associated extra crap....although I'm pleased to see that Opera hasn't bothered with it. I especially like the .json files in /opera/resources; the 'preloads' make it easy to locate stuff & configure it.

    'Portable' applications are very popular with Puppy users in general, given that many of us still use hardware that a lot of you would have probably consigned to the 'tech' scrap-heap years ago.. With low system resources, being able to run things external to the system is a god-send, since in many cases we can run 'em from a flash drive.


    So; in addition to others, I've recently been building Opera as a 'portable', self-contained item, with its profile and everything else internal to the portable's directory.....along with a user-triggered auto-updater for PepperFlash. It all works very well. With assistance from one or two other community members, we've been using the 'tee' command in the portable's 'launch' script, which then points to a wrapper I put together to fire Opera up. (We tried starting Opera directly as in the .deb package, but with Pup's odd way of doing things, all these Chromium-based browsers need wrappers to start 'em..!)

    The 'tee' command has been used to re-write the paths in the 'resources' directory's .json files, so that Opera always has absolute paths for libwidevine, PepperFlash and libffmpeg. Remember, this is a 'portable', so can be run from anywhere. Literally. That being the case, of course, the absolute paths are going to keep changing as you move it from one location to another....

    But from v66 onwards, no matter what I do, I cannot make Opera 'see' libwidevine at all. Creating /opt/google/chrome/libwidevinecdm.so was one of the first things I tried; NetFlix turned its nose up, and insisted that libwidevine simply didn't exist. Using the 'tee' command makes it virtually impossible for the browser NOT to find the item in question, because those paths are re-evaluated/re-written every time you fire Opera up.....


    Curiously, examining the 'components' lists in both Chrome and Opera reveals one telling difference. In Chrome, every item in that list has a version number; if things update, the number changes. In Opera's list - which is rather shorter - everything has a version number, except WideVine. It only has 0.0.0.0 showing, no matter how many times you try to update. This is the one thing NetFlix insists you try to 'update', when WideVine doesn't function as it should.....except it ain't doing what it's supposed to do!

    Sorry for the length of this missive, but NetFlix is kind of a 'prerequisite' for me. Anybody have any other ideas on this one? I'm always open to suggestions, 'cos when I get these browser builds to behave themselves, it benefits the whole community, y'see.

    Mike. 😉 👍

  • Hi @nesar77, @miqwalsh, the issue with Widevine looks to be fixed in the latest Opera stable 66.0.3515.103 (DEB/RPM versions) - here you can find two examples by @burnout426 on how to make it works.

  • @l33t4opera Also, I'm slowly gathering/editing https://www.reddit.com/r/operabrowser/wiki/opera/linux_widevine_config to help with this.

  • @burnout426 Yep, it seems quite "smoothly" written, nice job ;-)

Log in to reply