Ciscobinary.openh264.org is unreachable in some countries (RU, UA, IR)

Unfortunately it is difficult to ditch h264 completely, they are not 100% replaceable:
openh264 is used by browsers, video conferencing, webrtc/streaming/online video, is specially optimized for streams because of low latency. ffmpeg is not optimized for it and can result in 1-2 seconds delay, for ex in youtube streams, and video calls may lag.

so this script only removes the dependencies, it masks it, says “i don’t need openh264 for basic operations, use ffmpeg as a fallback”

also research shows that when decoding streaming video:

  • OpenH264: 15% CPU
  • ffmpeg: 25-30% CPU

This matters for weak devices and mobile browsers.

so ideal solution (in the modern world) would be disabling it in in repos, but installing the binary manually and having it in the system with manual updates when needed… In situations like this one, I feel like the world is slowly but surely going back to the stone age (((

I must say I’m not an expert on this; it’s my personal understanding after being forced to study the subject after facing this cisco geoblock myself.

Guys… No offense, but have you actually been following this topic? It’s been explained time and again (on GitHub as well) why OpenH264 is a thing: it’s the only legal “libre” way in The Land of the Free* (and a couple other countries) to decode H.264 video; Cisco took it upon themselves to pay all the required royalties to the patent trolls holders, while providing OpenH264 binaries for free – on the condition that the said binaries be hosted on their servers.

* Exceptions may apply.

I’ve never heard of the latency/optimization issues, so can’t comment on that. As for WebRTC, all the major browsers should support royalty-free free alternatives nowadays.

This sounds great, as no one wants lags or delays, especially during calls/streams.
I can’t thoroughly test if there’s any difference myself as i’m mostly working with non audio-video information at the moment and using fairly recent hardware, fortunately did not notice any changes after the block removal.

Here’s how the script worked on Thinkpad x270 running a pretty much stock Fedora 43 Gnome.

CISCO OPENH264 'ERROR 403' GEOBLOCK REMOVAL and 
multimedia codecs installation script for FEDORA LINUX 
by Andrei Manzhov, v.1.00 (07.11.2025)
═══════════════════════════════════════════════════════════


🟪🟪  01 / 11  🟪🟪  Cisco repository disabled (geoblock issue resolved)...🔧


🟪🟪  02 / 11  🟪🟪  openh264 replaced with noopenh264...🔧

Updating and loading repositories:
Repositories loaded.
Package "noopenh264-2.6.0-2.fc43.x86_64" is already installed.
No packages to remove for argument: '*openh264*'

Nothing to do.

🟪🟪  03 / 11  🟪🟪  System updates installed...🔧

Updating and loading repositories:
Repositories loaded.
Nothing to do.

🟪🟪  04 / 11  🟪🟪  RPM Fusion repository enabled...🔧

Updating and loading repositories:
Repositories loaded.
 https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-43.noarch.rpm                               100% |   9.1 KiB/s |  11.3 KiB |  00m01s
 https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-43.noarch.rpm                         100% |   7.2 KiB/s |  11.3 KiB |  00m02s
Package "rpmfusion-free-release-43-1.noarch" is already installed.
Package "rpmfusion-nonfree-release-43-1.noarch" is already installed.

Nothing to do.

🟪🟪  05 / 11  🟪🟪  Limited ffmpeg-free replaced with full ffmpeg from RPM Fusion...🔧

Updating and loading repositories:
Repositories loaded.
Package "ffmpeg-7.1.2-7.fc43.x86_64" is already installed.
No packages to remove for argument: ffmpeg-free

Nothing to do.

🟪🟪  06 / 11  🟪🟪  All GStreamer codecs installed...🔧

Updating and loading repositories:
Repositories loaded.
Package "pipewire-pulseaudio-1.4.9-1.fc43.x86_64" is already installed.
Package "wireplumber-0.5.12-1.fc43.x86_64" is already installed.
Package "pipewire-alsa-1.4.9-1.fc43.x86_64" is already installed.
Package "alsa-utils-1.2.14-2.fc43.x86_64" is already installed.
Package "gstreamer1-plugins-ugly-free-1.26.7-1.fc43.x86_64" is already installed.
Package "gstreamer1-plugins-good-1.26.7-4.fc43.x86_64" is already installed.
Package "gstreamer1-plugins-good-1.26.7-4.fc43.i686" is already installed.
Package "pipewire-utils-1.4.9-1.fc43.x86_64" is already installed.
Package "gstreamer1-plugin-openh264-1.26.7-1.fc43.x86_64" is already installed.
Argument 'PackageKit-gstreamer-plugin' matches only excluded packages.
Package "alsa-ucm-1.2.14-4.fc43.noarch" is already installed.
Package "gstreamer1-plugin-dav1d-0.14.0-1.fc43.x86_64" is already installed.
Package "gstreamer1-plugin-libav-1.26.7-1.fc43.x86_64" is already installed.
Package "libva-intel-media-driver-25.3.4-1.fc43.x86_64" is already installed.
Package "pipewire-config-raop-1.4.9-1.fc43.x86_64" is already installed.
Package "pipewire-gstreamer-1.4.9-1.fc43.x86_64" is already installed.
Package "gstreamer1-plugins-bad-freeworld-1:1.26.7-1.fc43.x86_64" is already installed.
Package "gstreamer1-plugins-ugly-1:1.26.7-1.fc43.x86_64" is already installed.

Package                                          Arch       Version                                          Repository                           Size
Installing group/module packages:
 gstreamer1-plugins-bad-free                     x86_64     1.26.7-1.fc43                                    updates                           9.9 MiB
 vlc-plugins-freeworld                           x86_64     3.0.21-7.fc43                                    rpmfusion-free                  384.9 KiB
Installing dependencies:
 libfreeaptx                                     x86_64     0.2.2-2.fc43                                     rpmfusion-free                   53.2 KiB
 libsrtp                                         x86_64     2.6.0-3.fc43                                     fedora                          125.3 KiB
 pipewire-codec-aptx                             x86_64     1.4.9-1.fc43                                     rpmfusion-free-updates           45.1 KiB
Installing groups:
 Multimedia                                                                                                                                           

Transaction Summary:
 Installing:         5 packages

Total size of inbound packages is 3 MiB. Need to download 3 MiB.
After this operation, 10 MiB extra will be used (install 10 MiB, remove 0 B).
[1/5] pipewire-codec-aptx-0:1.4.9-1.fc43.x86_64                                                               100% |  61.9 KiB/s |  28.3 KiB |  00m00s
[2/5] libfreeaptx-0:0.2.2-2.fc43.x86_64                                                                       100% |  55.9 KiB/s |  30.6 KiB |  00m01s
[3/5] libsrtp-0:2.6.0-3.fc43.x86_64                                                                           100% | 104.8 KiB/s |  59.4 KiB |  00m01s
[4/5] vlc-plugins-freeworld-0:3.0.21-7.fc43.x86_64                                                            100% | 154.3 KiB/s | 118.5 KiB |  00m01s
[5/5] gstreamer1-plugins-bad-free-0:1.26.7-1.fc43.x86_64                                                      100% | 510.7 KiB/s |   3.2 MiB |  00m06s
------------------------------------------------------------------------------------------------------------------------------------------------------
[5/5] Total                                                                                                   100% | 378.4 KiB/s |   3.4 MiB |  00m09s
Running transaction
[1/7] Verify package files                                                                                    100% |  49.0   B/s |   5.0   B |  00m00s
[2/7] Prepare transaction                                                                                     100% |   6.0   B/s |   5.0   B |  00m01s
[3/7] Installing libfreeaptx-0:0.2.2-2.fc43.x86_64                                                            100% |   4.4 MiB/s |  54.4 KiB |  00m00s
[4/7] Installing libsrtp-0:2.6.0-3.fc43.x86_64                                                                100% |  17.7 MiB/s | 126.7 KiB |  00m00s
[5/7] Installing gstreamer1-plugins-bad-free-0:1.26.7-1.fc43.x86_64                                           100% |  60.6 MiB/s |   9.9 MiB |  00m00s
[6/7] Installing pipewire-codec-aptx-0:1.4.9-1.fc43.x86_64                                                    100% |   7.5 MiB/s |  46.1 KiB |  00m00s
[7/7] Installing vlc-plugins-freeworld-0:3.0.21-7.fc43.x86_64                                                 100% | 328.9 KiB/s | 387.8 KiB |  00m01s
Complete!

🟪🟪  07 / 11  🟪🟪  Global openh264 exclusion added (drop-in)...🔧


🟪🟪  08 / 11  🟪🟪  Cisco openh264 disabled, which was blocking Flatpak updates...🔧


🟪🟪  09 / 11  🟪🟪  Drivers for hardware video acceleration installed...🔧

Updating and loading repositories:
Repositories loaded.
Failed to resolve the transaction:
Package "intel-media-driver-25.3.4-1.fc43.x86_64" is already installed.
No match for argument: libva-vdpau-driver
You can try to add to command line:
  --skip-unavailable to skip unavailable packages

🟪🟪  10 / 11  🟪🟪  Multimedia player VLC installed (plays everything)...🔧

Updating and loading repositories:
Repositories loaded.
Package "vlc-1:3.0.21-26.fc43.x86_64" is already installed.

Nothing to do.

🟪🟪  11 / 11  🟪🟪  VLC set as default video player...🔧


INSTALLATION RESULTS: (GPU Intel)
══════════════════════════════════════════════

❌ Failed Steps:
  ❌ Drivers for hardware video acceleration installed
  Check system logs or rerun the script for details.

   What was done:
   ✔ Cisco repository disabled (geoblock issue resolved)
   ✔ openh264 replaced with noopenh264
   ✔ System updates installed
   ✔ RPM Fusion repository enabled
   ✔ Limited ffmpeg-free replaced with full ffmpeg from RPM Fusion
   ✔ All GStreamer codecs installed
   ✔ Global openh264 exclusion added (drop-in)
   ✔ Cisco openh264 disabled, which was blocking Flatpak updates
   ✔ Multimedia player VLC installed (plays everything)
   ✔ VLC set as default video player

SUGGESTION: ENABLE HARDWARE ACCELERATION IN APPLICATIONS:
════════════════════════════════════════════════════════

🌐 Firefox:
   1. about:config
   2. media.ffmpeg.enabled = true
   3. media.navigator.mediadatadecoder_h264_enabled = true

🌐 Chromium:
   1. chrome://flags
   2. --> 'hardware video'
   3. Hardware-accelerated video decode = Enabled

All finished! For further updates on cisco geoblock issue check the thread at: 
 - https://discussion.fedoraproject.org/t/ciscobinary-openh264-org-is-unreachable-in-some-countries-ru-ua-ir/.

thanks for sharing! I’m on F43 KDE and the script did a lot every stage, tested it in the VM.

seems like it could not install libva-vdpau-driver, can’t see it for F43:

Releases Overview

Release Stable Testing
Fedora Rawhide 0.7.4-208.20211013.fc42 -
Fedora 42 0.7.4-208.20211013.fc42 -
Fedora 41 0.7.4-206.20211013.fc41 -
Fedora EPEL 8 0.7.4-106.el8

if anyone could comment on this.

There is no F43 release yet, so the easiest thing to do would be to wait.
Strange that it is is rawhide though (F44).
You will probably have to reach out to the maintainer to get any more info.

No, <packages.fedoraproject.org> just has wrong and outdated information. I filed a ticket for that: https://pagure.io/fedora-infrastructure/issue/12897

dead package upstream.

Another question for video acceleration experts:

i’ve studied the hardware acceleration page mentioned in some other comments: Hardware Video Acceleration - Fedora Project Wiki (didn’t know about it until now), and discovered that there’s one more driver that my script does not install yet:
Vulkan Video.

If i get it right, it is still experimental but beneficial for 4K+ resolutions and newer laptops (mine included), better than the current standard (VA-API).

Should i include it to the script and set ANV_DEBUG=video-decode,video-encode environment variable so it can be used? does anybody use it?

I think the less your script does, the better.
Solve the geoblock issue. That is of global importance.

Let users decide and learn about the rest in their own time.

You certainly could provide two scripts.

I have never installed any Vulkan acceleration etc, might save a few watts? Would make a good new thread.

i have created this script from a common user perspective:

as a user, i want all videos playable and possibly w/ hardware acceleration.
i have installed fedora some 10 times throughout my linux journey and video codecs has always been the issue.
so i thought if we disable the cisco repo and codec, i’d rather make sure all alternatives are available so video playback functions and we can forget about the codecs.
perhaps should divide the codec installation into a separate part.

i will start a new thread about vulcan

FWIW, I have the Cisco repo disabled out of principle, and I have yet to encounter a video that FFmpeg and mpv couldn’t play.

I started this topic that Fedora is not 100% free. Because of this Cisco thing it is at most 99% free. So it should not pretend, but nobody is taking it seriously. I am devastated.

Although useful, the cisco binary is not required for everyone. Fedora does not install that software by default and it is up to the user if they choose to do so. Fedora does not even enable that repo by default, and instead leaves it up to the user to select that.

The discussion above shows several alternatives without needing the cisco repo.

Thus your premise that that fedora is not 100% free is false.

Are you sure about that? How to check it is true? Where does this happen?

Why it doesn’t propose to enable real H.264 codecs in countries where the patent doesn’t apply?

Not correct, I’m afraid. /etc/yum.repos.d/fcisco-openh264.repo is provided by the package fedora-repos and the file comes with the repository enabled. So the user needs to actively disable fedora-cisco-openh264 if the repository is not wanted.

But as to be free: Everything Fedora distributes are free, but Fedora doesn’t distribute the open264 packages, and also don’t distribute anything you get from rpmfusion.

Fedora says “you get your operating system updated if you go fetch candy from the daddy”. And apparently the candy is not free. Do you feel comfortable saying that Fedora does not play any role here? Saying that Fedora is free for users? Even when it explicitly forces the condition..

BTW, thanks or the digging up the defaults.

It is free, but it doesn’t include no-free codecs.

Conditional free is not free.

I suggest you to try cleaning your package cache, forcing a cache refresh, and then disabling the problematic Cisco openh264 repository :

  1. Clear your package manager’s cache:

sudo dnf clean all

  1. Force a refresh of your package metadata:

sudo dnf makecache

  1. Disable the Cisco OpenH264 repository:

sudo dnf config-manager setopt fedora-cisco-openh264.enabled=0

  1. Run a system update to see if the error is resolved:

sudo dnf update

Once, update successful just re-enable the Cisco OpenH264 repository:

sudo dnf config-manager setopt fedora-cisco-openh264.enabled=1