Skip to content

Instantly share code, notes, and snippets.

@mcarletti
Last active June 3, 2025 09:01
Show Gist options
  • Save mcarletti/7989d1c04199dba60a01adf8ac54fe31 to your computer and use it in GitHub Desktop.
Save mcarletti/7989d1c04199dba60a01adf8ac54fe31 to your computer and use it in GitHub Desktop.
Enable H.264 codec support for Opera browser
#!/bin/bash
# Source:
# https://forums.opera.com/topic/34659/opera-linux-browser-h-264-support-through-x264-open-source-codec
# Tested on:
# Ubuntu 18.04.3 LTS (x86_64; ubuntu:GNOME)
# Opera 62.0.3331.116
mkdir /tmp/opera_x264
cd /tmp/opera_x264
curl -L -O https://github.com/iteufel/nwjs-ffmpeg-prebuilt/releases/download/0.39.2/0.39.2-linux-x64.zip
unzip 0.39.2-linux-x64.zip
sudo mv libffmpeg.so /usr/lib/x86_64-linux-gnu/libffmpeg_h264.so
sudo mv /usr/lib/x86_64-linux-gnu/opera/libffmpeg.so /usr/lib/x86_64-linux-gnu/opera/libffmpeg.so.orig
sudo ln -s /usr/lib/x86_64-linux-gnu/libffmpeg_h264.so /usr/lib/x86_64-linux-gnu/opera/libffmpeg.so
@mcarletti
Copy link
Author

mcarletti commented Sep 11, 2019

Need to run the script after updating Opera to ver. 63.0.3368.66

@SebastianGiro
Copy link

Still working fine with ubuntu 20.04 and opera 70.0.3728.95

@DrReD
Copy link

DrReD commented Aug 31, 2020

Hi! There's an even simpler way that survives updates:

curl -L -O https://github.com/iteufel/nwjs-ffmpeg-prebuilt/releases/download/${FFMPEGVER}/${FFMPEGZIP}
unzip ${FFMPEGZIP}
rm ${FFMPEGZIP}
sudo mkdir /usr/lib/x86_64-linux-gnu/opera/lib_extra
sudo mv libffmpeg.so /usr/lib/x86_64-linux-gnu/opera/lib_extra

Opera will automatically use the version in lib_extra and the mod will survive updates. So you'll only need to do it once.

@tiborepcek
Copy link

Thanks a lot! This script works also on Ubuntu 20.04.1 LTS (Focal Fossa) 64-bit + Opera 73.0.3856.284.

@lpaoliespin
Copy link

Thanks!! It worked perfectly for me on Ubuntu 20.04.2 LTS (Focal Fossa) 64-bit + Opera 74.0.3911.107.

@ondrejkopicka
Copy link

Thanks :) Still works on Ubuntu 20.04.3 LTS, Opera 74.0.3911.232

@dotarr
Copy link

dotarr commented May 17, 2022

I found that the extraction of variables from URL into FFMPEGVER and FFMPEGZIP had started failing pointing to the redirection between /latest and the permalink to the numbered version no longer being output by curl, adding some switches appeared to fix:

URL=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/nwjs-ffmpeg-prebuilt/nwjs-ffmpeg-prebuilt/releases/latest)
FFMPEGVER=${URL%\"*}
FFMPEGVER=${FFMPEGVER##*/}
FFMPEGZIP=${FFMPEGVER}-linux-x64.zip
curl -L -O https://github.com/iteufel/nwjs-ffmpeg-prebuilt/releases/download/${FFMPEGVER}/${FFMPEGZIP}
unzip ${FFMPEGZIP}

sudo mv libffmpeg.so /usr/lib/x86_64-linux-gnu/opera/lib_extra

@mcarletti
Copy link
Author

Thanks everyone! I've updated the script with your notes and fixes. I've also tested the script with the latest Opera version (currently, it is 87.0.4390.25).

@gidici
Copy link

gidici commented Sep 11, 2022

Works with Opera 90.0.4480.80 on Debian 11.4. Thanks. I only changed sudo with su -c "...."

@thibault-duhem
Copy link

Works with Opera version :99.0.4788.13 and System:Ubuntu 22.04.2 LTS (x86_64; ubuntu:GNOME)
Chromium version:113.0.5672.127
Thank you !!

@JPDucky
Copy link

JPDucky commented Jul 14, 2023

Opera One(version: 100.0.4815.54)
fedora 37: had to change the bottom 3 lines to make it work, opera would not launch with the symlink

sudo mv libffmpeg.so /usr/lib64/opera/libffmpeg_h264.so
sudo mv /usr/lib64/opera/libffmpeg.so /usr/lib64/opera/libffmpeg.so.orig
sudo cp /usr/lib64/libffmpeg_h264.so /usr/lib64/opera/libffmpeg.so

also had to change ownership of libffmpeg.so to root

@iRedds
Copy link

iRedds commented Sep 5, 2023

Система:Ubuntu 22.04.3 LTS (x86_64; ubuntu:GNOME)
Версия Chromium:116.0.5845.141
Thank you

@butter-fly04
Copy link

Will this work with flatpak package?
I'm using Opera's flatpack package form flathub on Fedora.

@mcarletti
Copy link
Author

@butter-fly04 I don't know how Fedora+flatpak+flathub works since I use Ubuntu+apt, however OperaOne was tested under Fedora by @JPDucky. Check it here!

@jameskentTX
Copy link

jameskentTX commented Feb 17, 2024

It is working on Debian 11, Opera One(version: 107.0.5045.21).
I downloaded codec from https://github.com/nwjs-ffmpeg-prebuilt/nwjs-ffmpeg-prebuilt/releases
Thank you. Great advice.

Unfortunately after Opera upgrade support for H.264 disappeared again :(

I created file opera_libffmpeg.sh and run this file after each opera upgrade. It takes several seconds only and I have support for H264 again.
Change folders name.

#!/bin/bash

# download compressed libffmpeg.so from below, copy to /home/adam/software and unzip it
# https://github.com/nwjs-ffmpeg-prebuilt/nwjs-ffmpeg-prebuilt/releases
sudo cp /home/adam/software/0.85.0-linux-x64/libffmpeg.so /usr/lib/x86_64-linux-gnu/opera/libffmpeg_h264.so
sudo mv /usr/lib/x86_64-linux-gnu/opera/libffmpeg.so /usr/lib/x86_64-linux-gnu/opera/libffmpeg.so.orig
sudo cp /usr/lib/x86_64-linux-gnu/opera/libffmpeg_h264.so /usr/lib/x86_64-linux-gnu/opera/libffmpeg.so

@shopeandodev
Copy link

Works perfect on LMDE 6

Thanks @mcarletti

@shopeandodev
Copy link

Works perfect on LMDE 6

Thanks @mcarletti

Every time opera get updated you will need to run this script!

@wzagal
Copy link

wzagal commented Apr 15, 2025

2025 and still working, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment