{"id":167681,"date":"2026-05-19T14:23:11","date_gmt":"2026-05-19T11:23:11","guid":{"rendered":"https:\/\/computingforgeeks.com\/?p=167681"},"modified":"2026-05-19T19:32:46","modified_gmt":"2026-05-19T16:32:46","slug":"rpm-fusion-fedora-44-codecs","status":"publish","type":"post","link":"https:\/\/computingforgeeks.com\/rpm-fusion-fedora-44-codecs\/","title":{"rendered":"Enable RPM Fusion and Install Multimedia Codecs on Fedora 44"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Fresh Fedora 44 installs are deliberately codec-light. The base repos do not ship H.264, H.265, AAC, or proprietary firmware blobs because of patent and licensing terms that Fedora cannot honor. Play a stock <code>.mp4<\/code> in Videos or open an MKV in mpv on a clean install and you get audio with no picture, or a &#8220;missing decoder&#8221; dialog. Fix it by enabling RPM Fusion and swapping in the full <code>ffmpeg<\/code> build that ships with all codecs compiled in.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is also the prerequisite for the upcoming NVIDIA driver and Steam gaming guides in this series, both of which pull packages from RPM Fusion nonfree. Get this step right once and the rest of the Fedora ecosystem opens up.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Tested <strong>May 2026<\/strong> on Fedora 44 Workstation (kernel 7.0.8-200.fc44, dnf5 5.4.2.0), repositories from rpmfusion.org as of May 19, 2026<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What RPM Fusion is and why it exists<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">RPM Fusion is the long-running community repository that fills the gap between what Fedora ships and what most desktop users actually need. It has two halves:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>rpmfusion-free<\/strong>: software that is open source but is excluded from Fedora&#8217;s main repos because of patent or licensing concerns (full <code>ffmpeg<\/code>, <code>libdvdcss<\/code>, <code>x264<\/code>, <code>HandBrake<\/code>, mpv with codec support, etc.). Note that VLC and the LAME MP3 encoder now ship in the main Fedora repos, so they are not pulled from RPM Fusion on Fedora 44.<\/li>\n<li><strong>rpmfusion-nonfree<\/strong>: redistributable closed-source software (NVIDIA drivers via akmod, Steam, Discord, the proprietary firmware Fedora cannot ship, hardware-accelerated codec drivers like <code>intel-media-driver<\/code>). Microsoft Edge is not in RPM Fusion; install it from the Microsoft RPM repo separately.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The repository is maintained by the same set of packagers who work on Fedora itself, and packages follow Fedora&#8217;s quality standards. On Fedora 44 the RPM Fusion release packages enable the right repos for Fedora 44 automatically by reading <code>%fedora<\/code> from <code>\/etc\/os-release<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Make sure the system is fully updated<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before touching the repo layer, pull all pending updates so you do not race against a partial transaction:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo dnf upgrade --refresh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Reboot if the kernel changed:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo systemctl reboot<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Enable RPM Fusion free and nonfree<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The recommended approach is to install the two release packages directly from rpmfusion.org. The <code>$(rpm -E %fedora)<\/code> expansion makes the URL detect your Fedora release automatically, so the same one-liner works on Fedora 44, 45, and later:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo dnf install \\\n  https:\/\/mirrors.rpmfusion.org\/free\/fedora\/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \\\n  https:\/\/mirrors.rpmfusion.org\/nonfree\/fedora\/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">You should see real output similar to this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"920\" height=\"800\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-fedora-44-rpm-fusion-enable.png\" alt=\"Fedora 44 dnf5 install RPM Fusion free nonfree release packages\" class=\"wp-image-167679\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-fedora-44-rpm-fusion-enable.png 920w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-fedora-44-rpm-fusion-enable-300x261.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-fedora-44-rpm-fusion-enable-768x668.png 768w\" sizes=\"auto, (max-width: 920px) 100vw, 920px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Accept the GPG keys when prompted. Each is signed by the RPM Fusion maintainers and is the same key set used for the previous several Fedora releases.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Confirm both repositories landed:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>dnf repo list | grep -i rpmfusion<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">You want four entries (the main repo and an updates repo for each of free and nonfree).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Install AppStream metadata<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">GNOME Software and KDE Discover render the RPM Fusion packages they can see, but only if AppStream metadata is installed. Pull both metadata bundles:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo dnf install rpmfusion-free-appstream-data rpmfusion-nonfree-appstream-data<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">After this, packages like VLC, OBS Studio, and Steam show up in GNOME Software with screenshots and full descriptions, instead of being CLI-only.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Enable Cisco OpenH264 for Firefox and WebRTC<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Fedora ships a Cisco-funded OpenH264 build separately from RPM Fusion because Cisco pays the H.264 royalty per-distribution. The package itself is in a Fedora-managed repo that is disabled by default. Turn it on with the dnf5 config-manager:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo dnf config-manager setopt fedora-cisco-openh264.enabled=1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then install the OpenH264 codec plus the GStreamer and Mozilla plugins that load it:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo dnf install openh264 gstreamer1-plugin-openh264 mozilla-openh264<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Firefox will now play H.264 WebRTC calls (Jitsi, Google Meet fallback path). If you also want full <code>ffmpeg<\/code> support for everything else, continue to Step 5.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Swap ffmpeg-free for full ffmpeg<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the single most important swap on the system. <code>ffmpeg-free<\/code> is the codec-light build Fedora ships by default. <code>ffmpeg<\/code> (from RPM Fusion free) is compiled with H.264, H.265, AAC, and the full encoder set. The <code>--allowerasing<\/code> flag tells dnf5 to remove conflicting packages:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo dnf swap ffmpeg-free ffmpeg --allowerasing<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Real output:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"920\" height=\"800\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-fedora-44-ffmpeg-swap.png\" alt=\"Fedora 44 ffmpeg swap libx264 libx265 AAC encoders verified\" class=\"wp-image-167680\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-fedora-44-ffmpeg-swap.png 920w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-fedora-44-ffmpeg-swap-300x261.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-fedora-44-ffmpeg-swap-768x668.png 768w\" sizes=\"auto, (max-width: 920px) 100vw, 920px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">After the swap, <code>ffmpeg -encoders<\/code> should list <code>libx264<\/code>, <code>libx265<\/code>, and the AAC encoders. Verify:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>ffmpeg -encoders 2>\/dev\/null | grep -E 'x264|x265|aac'<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: Install the multimedia group<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">RPM Fusion ships a curated &#8220;multimedia&#8221; group that pulls in every GStreamer plugin the desktop needs to decode anything you can throw at it (matroska, AV1, dolby, dts, etc.). The <code>--setopt<\/code> flag avoids the weak-deps avalanche that would otherwise pull in unrelated apps, and the exclude prevents PackageKit from quietly downgrading after the transaction:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo dnf update @multimedia \\\n  --setopt=\"install_weak_deps=False\" \\\n  --exclude=PackageKit-gstreamer-plugin<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This is also the recommended RPM Fusion command for upgrading the multimedia stack on subsequent runs, so you can re-run it after major version bumps.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 7: Install the sound-and-video group plus lame<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The base Fedora &#8220;sound-and-video&#8221; group brings in a sensible default set of player and editor apps (Audacity, Sound Recorder, Cheese, Rhythmbox-friendly plugins). LAME is now in the main Fedora repos, so a single install pulls everything needed for MP3 encoding alongside the desktop media tools:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo dnf group install sound-and-video\nsudo dnf install lame\\* --exclude=lame-devel<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">After this, MP3 encoding works in Audacity, in Rhythmbox, and in any GStreamer-based recording app.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 8: Hardware video acceleration (VA-API)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Modern Intel and AMD GPUs decode H.264, H.265, and AV1 in hardware via VA-API. Enabling it offloads playback CPU to near zero and meaningfully improves battery life on laptops. The packages differ by GPU vendor.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Intel integrated graphics (8th-gen and newer)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Install the VA-API user-space libraries and swap to the modern Intel media driver:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo dnf install ffmpeg-libs libva libva-utils\nsudo dnf swap libva-intel-media-driver intel-media-driver --allowerasing<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Verify with <code>vainfo<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>vainfo | head -20<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">AMD Radeon (RX 400 series and newer)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The freeworld variant pulls codec-licensed VA-API entry points that are stripped from Fedora&#8217;s base mesa build. On Fedora 44, RPM Fusion ships this as a direct install (the legacy <code>mesa-va-drivers<\/code> source package is gone; only the freeworld variant exists):<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo dnf install -y mesa-va-drivers-freeworld<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">VDPAU is effectively legacy on modern AMD; Mesa drives accelerated playback through VA-API on Radeon, so a separate VDPAU swap is not needed on Fedora 44.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">NVIDIA discrete<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">NVIDIA needs the proprietary driver and the NVIDIA VAAPI bridge. That is a separate guide because of Secure Boot signing and the akmod kernel-module workflow. For now, the multimedia codecs from Steps 5 and 6 work via CPU; GPU offload is the optimization layered on top. NVIDIA driver and CUDA setup are covered in the next article in this series.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 9: Verify a real playback<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Quickest end-to-end verification: pull a Big Buck Bunny sample and play it with the default video player:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>cd ~\/Videos 2>\/dev\/null || cd \/tmp\ncurl -L -o sample.mp4 \\\n  <div style=\"width: 640px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-167681-1\" width=\"640\" height=\"360\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/download.blender.org\/peach\/bigbuckbunny_movies\/BigBuckBunny_320x180.mp4?_=1\" \/><a href=\"https:\/\/download.blender.org\/peach\/bigbuckbunny_movies\/BigBuckBunny_320x180.mp4\" rel=\"noopener\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/download.blender.org\/peach\/bigbuckbunny_movies\/BigBuckBunny_320x180.mp4<\/a><\/video><\/div>\nffprobe sample.mp4 2>&1 | grep -E 'Video|Audio'\nffplay sample.mp4   # or: vlc sample.mp4<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">You should see H.264 video and AAC audio detected in <code>ffprobe<\/code>, and the playback should run without any &#8220;missing decoder&#8221; prompts.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Error: &#8220;GPG check FAILED&#8221; during RPM Fusion install<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This usually means dnf imported the GPG key but did not yet trust it. Confirm the key fingerprint matches the one published on the <a href=\"https:\/\/rpmfusion.org\/keys\" target=\"_blank\" rel=\"noreferrer noopener\">RPM Fusion keys page<\/a> and accept it. As a sanity check, list installed RPM Fusion keys:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>rpm -qa gpg-pubkey* | xargs -I{} rpm -qi {} | grep -B 4 -i rpmfusion<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Error: &#8220;Failed component dependency check&#8221; after ffmpeg swap<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Some apps installed pre-swap link against <code>libavcodec-free<\/code>. After the swap, run a generic <code>dnf upgrade<\/code> to let dnf5 reconcile linkages. If a particular app still complains, reinstall it after the swap:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo dnf reinstall obs-studio mpv vlc 2>\/dev\/null<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">&#8220;libavcodec-freeworld&#8221; mentioned in old guides<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You no longer need it on Fedora 44 when you use the full <code>ffmpeg<\/code> swap from Step 5. <code>libavcodec-freeworld<\/code> only complements <code>ffmpeg-free<\/code>; once you replace <code>ffmpeg-free<\/code> with <code>ffmpeg<\/code>, freeworld is redundant. Older guides that recommend it predate the upstream RPM Fusion docs change.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What this enables<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">After these eight steps the typical desktop pain points go away. Browser HTML5 video plays without prompts. Discord and Slack screen-sharing works. mpv, VLC, and the GNOME Videos app play every codec they encounter. OBS Studio records H.264 \/ H.265 directly. Steam, Lutris, and other RPM Fusion nonfree packages are now one <code>dnf install<\/code> away.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Next in the series: NVIDIA driver setup on Fedora 44 with Secure Boot, and full-stack gaming on Fedora 44 (Steam, Lutris, Heroic, with NTSYNC kernel-module verification). For the bigger picture of what changed in this release, see <a href=\"https:\/\/computingforgeeks.com\/what-is-new-in-fedora-44\/\">what is new in Fedora 44<\/a>. If you are coming from a previous release, the <a href=\"https:\/\/computingforgeeks.com\/upgrade-fedora-43-to-44\/\">Fedora 43 to 44 upgrade guide<\/a> and the <a href=\"https:\/\/computingforgeeks.com\/install-fedora-44-step-by-step-screenshots\/\">step-by-step Fedora 44 install<\/a> walk through getting to this point.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Enable RPM Fusion free and nonfree on Fedora 44, swap ffmpeg-free for full ffmpeg, install the multimedia and sound-and-video groups, and enable Cisco OpenH264 &#8211; real tested commands and dnf5 output.<\/p>\n","protected":false},"author":7,"featured_media":167677,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29,299,47,50],"tags":[781,681,124,282,14516],"cfg_series":[39847],"class_list":["post-167681","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fedora","category-how-to","category-linux","category-linux-tutorials","tag-desktop","tag-fedora","tag-gaming","tag-linux","tag-multimedia","cfg_series-fedora-44-workstation"],"_links":{"self":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/167681","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/comments?post=167681"}],"version-history":[{"count":2,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/167681\/revisions"}],"predecessor-version":[{"id":167715,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/167681\/revisions\/167715"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media\/167677"}],"wp:attachment":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media?parent=167681"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/categories?post=167681"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/tags?post=167681"},{"taxonomy":"cfg_series","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/cfg_series?post=167681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}