How to Install RPM Fusion on Fedora Linux

Last updated Wednesday, February 11, 2026 10:33 am Joshua James 10 min read

RPM Fusion is a third-party repository that extends Fedora with software the official repositories cannot include due to licensing, patents, or legal restrictions. It provides multimedia codecs for playing MP3s and DVDs, proprietary NVIDIA graphics drivers for gaming and CUDA workloads, popular applications like Discord, VLC, Steam, and OBS Studio, and firmware packages that many hardware devices require for full functionality.

This guide walks you through how to install RPM Fusion on Fedora, set up the Free and Nonfree repositories, configure multimedia codecs and hardware acceleration drivers, enable optional tainted branches for region-restricted software like libdvdcss, and manage testing repositories for early access to package updates. By the end, you will be able to play commercial DVDs, encode video with full codec support in applications like HandBrake, stream with OBS Studio, and run media servers like Plex without codec restrictions.

Update Fedora Before RPM Fusion Installation

Update your Fedora system before installing RPM Fusion to prevent package conflicts. For tips on improving update performance, see our guide on increasing DNF speed on Fedora.

sudo dnf upgrade --refresh

This refreshes the repository metadata and upgrades all installed packages to the latest versions.

This guide uses sudo for commands that need root privileges. If your user account is not in the sudoers file yet, see our guide on how to add and manage sudo users on Fedora.

Check for Existing RPM Fusion Repositories

Fedora’s initial setup may have already enabled third-party repositories. Check whether RPM Fusion is already active before proceeding:

dnf repo list | grep -i rpmfusion

If RPM Fusion is not installed, this command produces no output and you can proceed to the next section. If repositories are already enabled, you will see output similar to:

rpmfusion-free                RPM Fusion for Fedora - Free
rpmfusion-free-updates        RPM Fusion for Fedora - Free - Updates

Install RPM Fusion Repositories on Fedora

RPM Fusion offers two repository branches: Free and Nonfree. Most users install both to access the full range of available software.

Install RPM Fusion Free Repository

The Free repository contains open-source software that Fedora cannot ship due to patent or policy restrictions:

sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

The $(rpm -E %fedora) expression automatically expands to your current Fedora release number (such as 42 or 43), so the command always fetches the correct package for your version.

Install RPM Fusion Nonfree Repository

The Nonfree repository provides redistributable software with restrictive licenses, including proprietary codecs, NVIDIA drivers, and applications like Steam:

sudo dnf install https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

Install Both RPM Fusion Repositories at Once

Install both Free and Nonfree repositories in a single command:

sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

After installing RPM Fusion, enable the Cisco OpenH264 repository. This provides the Cisco-maintained OpenH264 library used by Firefox and other browsers for H.264 video decoding in WebRTC calls and web media playback:

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

RPM Fusion Free vs Nonfree Comparison

The following table summarizes the differences between the Free and Nonfree RPM Fusion branches:

FeatureRPM Fusion FreeRPM Fusion Nonfree
License typeOpen-source (Fedora Licensing Guidelines)Redistributable proprietary or patent-encumbered
Example packagesFFmpeg, libdvdcss (tainted), GStreamer pluginsNVIDIA drivers, Steam, Discord, Spotify
Tainted branchAvailable (libdvdcss for DVD playback)Available (firmware with unclear redistribution status)
Common use caseMultimedia codecs and open-source media appsProprietary drivers, gaming, and commercial apps

Verify RPM Fusion Installation

Confirm the RPM Fusion repositories were added correctly:

dnf repo list | grep -i rpmfusion

Expected output with both repositories installed:

rpmfusion-free                RPM Fusion for Fedora - Free
rpmfusion-free-updates        RPM Fusion for Fedora - Free - Updates
rpmfusion-nonfree             RPM Fusion for Fedora - Nonfree
rpmfusion-nonfree-updates     RPM Fusion for Fedora - Nonfree - Updates

Enable RPM Fusion AppStream Metadata

RPM Fusion provides AppStream metadata so packages appear in GNOME Software and KDE Discover. This enables GUI-based package browsing and installation through your desktop’s software center. Install the metadata packages with:

sudo dnf install rpmfusion-free-appstream-data rpmfusion-nonfree-appstream-data

Install RPM Fusion Multimedia Codecs on Fedora

Fedora ships a limited ffmpeg-free package by default. RPM Fusion provides the full FFmpeg build and additional GStreamer codecs for complete multimedia support in applications like VLC, Kodi, Totem, and Firefox.

Switch to Full FFmpeg from RPM Fusion

Fedora’s ffmpeg-free can cause version mismatches with RPM Fusion packages. Replacing it with the full FFmpeg build from RPM Fusion provides better compatibility and adds support for codecs like H.264, H.265, and AAC. The dnf swap command removes one package and installs its replacement in a single transaction, preventing conflicts:

sudo dnf swap ffmpeg-free ffmpeg --allowerasing

After switching, you do not need to install libavcodec-freeworld separately since it only complements ffmpeg-free.

Install GStreamer Multimedia Codecs

GStreamer-based applications like VLC, Totem, and Firefox use additional codec plugins from RPM Fusion. Install the multimedia complements with:

sudo dnf update @multimedia --setopt="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin

This installs the full GStreamer codec set while skipping optional weak dependencies that most desktop users do not need.

Install Hardware Accelerated Video Codecs on Fedora

Hardware video acceleration offloads decode and encode operations to your GPU, reducing CPU usage during video playback and encoding. Install the driver package matching your GPU manufacturer.

GPUDriver PackageInstall Command
Intel (Broadwell and newer)intel-media-driversudo dnf install intel-media-driver
Intel (Haswell and older)libva-intel-driversudo dnf install libva-intel-driver
AMD (Mesa freeworld)mesa-va-drivers-freeworldsudo dnf swap mesa-va-drivers mesa-va-drivers-freeworld
NVIDIA (VAAPI wrapper)libva-nvidia-driversudo dnf install libva-nvidia-driver

AMD users also need the VDPAU freeworld driver for applications that use the VDPAU API:

sudo dnf swap mesa-vdpau-drivers mesa-vdpau-drivers-freeworld

Verify Hardware Acceleration

Confirm your hardware acceleration drivers are working. For VAAPI support (Intel, AMD, NVIDIA), install vainfo and check available profiles:

sudo dnf install libva-utils
vainfo

Successful output shows your GPU and supported decode/encode profiles:

libva info: VA-API version 1.20.0
libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva info: va_openDriver() returns 0
VAProfileH264Main               : VAEntrypointVLD
VAProfileH264Main               : VAEntrypointEncSlice
VAProfileHEVCMain               : VAEntrypointVLD

For VDPAU support (AMD and NVIDIA), install vdpauinfo:

sudo dnf install vdpauinfo
vdpauinfo

Expected output shows supported decoder capabilities:

display: :0   screen: 0
API version: 1
Information string: Mesa Gallium driver 23.3.1 for AMD Radeon RX 6800

Video surface:
name   width height types
-------------------------------------------
420     16384  16384  NV12 YV12
Decoder capabilities:
name                        level macbs width height
------------------------------------------------------------
MPEG1                          NA  9216  2048  1152
H264_MAIN                      51  9216  2048  1152

Enable RPM Fusion Testing Repositories (Optional)

The RPM Fusion Testing repositories provide early access to package updates before they reach the stable branch. This is useful for getting newer NVIDIA driver releases or codec updates. Packages in Testing may be unstable, so enable these only if you need a specific update. If you plan to install NVIDIA drivers, ensure you have kernel headers installed first.

Enable Free Testing Updates

sudo dnf config-manager setopt rpmfusion-free-updates-testing.enabled=1

Enable Nonfree Testing Updates

sudo dnf config-manager setopt rpmfusion-nonfree-updates-testing.enabled=1

Verify Testing Repositories

Confirm the testing repositories appear in your repository list:

dnf repo list | grep -i rpmfusion

With testing enabled, the output includes the additional testing entries:

rpmfusion-free                       RPM Fusion for Fedora - Free
rpmfusion-free-updates               RPM Fusion for Fedora - Free - Updates
rpmfusion-free-updates-testing       RPM Fusion for Fedora - Free - Test Updates
rpmfusion-nonfree                    RPM Fusion for Fedora - Nonfree
rpmfusion-nonfree-updates            RPM Fusion for Fedora - Nonfree - Updates
rpmfusion-nonfree-updates-testing    RPM Fusion for Fedora - Nonfree - Test Updates

Install Tainted RPM Fusion Repositories

RPM Fusion provides “tainted” branches for software that may have legal restrictions in some jurisdictions. The Free tainted branch primarily provides libdvdcss for DVD playback, while the Nonfree tainted branch includes firmware packages with unclear redistribution status.

Install Tainted Free Repository

sudo dnf install rpmfusion-free-release-tainted

With the tainted Free repository enabled, install libdvdcss for commercial DVD playback:

sudo dnf install libdvdcss

Install Tainted Nonfree Repository

sudo dnf install rpmfusion-nonfree-release-tainted

The tainted Nonfree repository contains firmware packages without clear redistribution status but allowed for hardware interoperability. Install all available firmware with:

sudo dnf --repo=rpmfusion-nonfree-tainted install "*-firmware"

Verify All RPM Fusion Repositories

Confirm all installed RPM Fusion repositories are active:

dnf repo list | grep -i rpmfusion

Search and Query RPM Fusion Packages

After enabling RPM Fusion, you can search for and install packages that are unavailable in Fedora’s default repositories. Popular applications such as Discord, Slack, and Google Chrome become accessible.

Search for a package across all enabled repositories:

dnf search discord

Install a package from RPM Fusion:

sudo dnf install discord

Retrieve detailed package metadata including the source repository:

dnf repoquery --info discord

Expected output:

Name         : discord
Version      : 0.0.37
Release      : 1.fc43
Architecture : x86_64
Size         : 91 M
Source       : discord-0.0.37-1.fc43.src.rpm
Repository   : rpmfusion-nonfree
Summary      : Discord Client

Manage RPM Fusion Repositories

Disable RPM Fusion Testing Updates

If testing repositories are no longer needed, disable them:

sudo dnf config-manager setopt rpmfusion-free-updates-testing.enabled=0
sudo dnf config-manager setopt rpmfusion-nonfree-updates-testing.enabled=0

Remove RPM Fusion Repositories

Remove RPM Fusion repositories entirely from your system. Remove only the branches you no longer need:

## Remove Free repository
sudo dnf remove rpmfusion-free-release

## Remove Nonfree repository
sudo dnf remove rpmfusion-nonfree-release

## Remove tainted branches (if installed)
sudo dnf remove rpmfusion-free-release-tainted
sudo dnf remove rpmfusion-nonfree-release-tainted

Removing these repositories prevents your system from receiving updates or installing packages from RPM Fusion sources. Packages already installed from RPM Fusion remain on the system but will no longer receive updates.

Troubleshoot RPM Fusion Issues

Broken Dependencies During Updates

If dnf shows broken dependencies between Fedora and RPM Fusion packages during updates, you will see errors like:

Error:
 Problem: package vlc-1:3.0.20-1.fc43.x86_64 requires libavcodec.so.60, but none of the providers can be installed
  - conflicting requests
  - nothing provides ffmpeg-libs = 6.1 needed by ffmpeg-free-6.1-1.fc43.x86_64

This typically occurs when a package update is in the testing repository while its dependency remains in stable. Check which repositories provide the conflicting package:

dnf list --showduplicates ffmpeg-libs

Enable the testing repositories temporarily to resolve the conflict:

sudo dnf --setopt=rpmfusion-free-updates-testing.enabled=1 --setopt=rpmfusion-nonfree-updates-testing.enabled=1 upgrade

After the upgrade completes, verify all packages installed successfully:

dnf list installed | grep -i rpmfusion

Repository Metadata Errors

If you encounter metadata download failures, you will see errors like:

Error: Failed to download metadata for repo 'rpmfusion-free-updates': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried

This indicates the RPM Fusion mirrors may be temporarily unavailable. Check mirror connectivity:

curl -I https://mirrors.rpmfusion.org/free/fedora/

If mirrors are down, temporarily switch from mirrorlist to direct baseurl:

sudo sed -i 's|^#baseurl|baseurl| ; s|^mirrorlist|#mirrorlist|' /etc/yum.repos.d/rpmfusion*free*repo

Verify the repository is now accessible:

sudo dnf clean metadata && dnf repo list | grep -i rpmfusion

Once mirrors recover, revert to mirrorlist:

sudo sed -i 's|^baseurl|#baseurl| ; s|^#mirrorlist|mirrorlist|' /etc/yum.repos.d/rpmfusion*free*repo

Steam and Gaming Dependencies

Many gaming applications like Steam require 32-bit libraries from RPM Fusion. If Steam fails to launch, you will see errors like:

libGL error: failed to load driver: radeonsi
failed to initialize GL

Check which 32-bit graphics drivers are installed:

rpm -qa | grep mesa.*i686

Install the 32-bit mesa freeworld drivers for full codec and graphics support:

sudo dnf swap mesa-va-drivers.i686 mesa-va-drivers-freeworld.i686
sudo dnf swap mesa-vdpau-drivers.i686 mesa-vdpau-drivers-freeworld.i686

Verify the freeworld drivers are installed:

rpm -qa | grep mesa.*freeworld.*i686

Expected output confirming both packages:

mesa-va-drivers-freeworld-23.3.1-1.fc43.i686
mesa-vdpau-drivers-freeworld-23.3.1-1.fc43.i686
Is RPM Fusion safe to use?

Yes. RPM Fusion is the most widely used third-party repository for Fedora and has been maintained since 2007. Packages are built from source using Fedora’s infrastructure, signed with GPG keys, and reviewed by maintainers. The Fedora project recommends RPM Fusion during its initial setup process, and packages are built to integrate cleanly with each Fedora release.

Can RPM Fusion break my Fedora system during major version upgrades?

RPM Fusion packages occasionally cause dependency conflicts during Fedora version upgrades (for example, Fedora 42 to 43). This happens when RPM Fusion builds lag behind the new Fedora release. To avoid issues, run sudo dnf distro-sync --allowerasing after upgrading Fedora to realign all packages. If specific RPM Fusion packages block the upgrade, temporarily disable RPM Fusion repositories, complete the upgrade, then re-enable them.

Does RPM Fusion work with Fedora Silverblue or Kinoite?

Yes, but the setup differs from Fedora Workstation. On Silverblue and Kinoite, enable RPM Fusion through rpm-ostree instead of dnf. Run rpm-ostree install rpmfusion-free-release rpmfusion-nonfree-release and reboot to apply the changes. After that, RPM Fusion packages are available through rpm-ostree install and GNOME Software.

How do I update only RPM Fusion packages without updating the rest of my system?

Run sudo dnf upgrade --repo=rpmfusion-free-updates --repo=rpmfusion-nonfree-updates to update only packages from RPM Fusion repositories. This is useful when you want a specific RPM Fusion package update without pulling in other system updates. To update a single package, use sudo dnf upgrade package-name instead.

Conclusion

You now have RPM Fusion configured with the Free, Nonfree, and optional tainted repositories on Fedora. With multimedia codecs and hardware acceleration drivers installed, Fedora can play commercial DVDs, encode video with full codec support in HandBrake, and run Windows games through Steam or Wine with proper graphics acceleration. Browse RPM Fusion packages in GNOME Software using the AppStream metadata, set up OBS Studio for streaming, or configure NVIDIA drivers for CUDA workloads. Run sudo dnf upgrade --refresh periodically to keep both Fedora and RPM Fusion packages current.

Found this guide useful?

Support LinuxCapable to keep tutorials free and up to date.

Buy me a coffee Buy me a coffee

Before commenting, please review our Comments Policy.
Formatting tips for your comment

You can use basic HTML to format your comment. Useful tags currently allowed:

You type Result
<code>command</code> command
<strong>bold</strong> bold
<em>italic</em> italic
<a href="URL">link</a> link
<blockquote>quote</blockquote> quote block

Leave a Comment

We read and reply to every comment - let us know how we can help or improve this guide.

Let us know you are human: