Linux Tutorials

Install FFmpeg on Fedora 45 / 44: RPM Fusion vs ffmpeg-free

Fedora already ships FFmpeg. It ships the build with the patent-encumbered encoders cut out, so ffmpeg -c:v libx264 fails on a stock install with “Unknown encoder”. The full build lives in RPM Fusion, and on Workstation it collides with the Fedora package that GNOME already pulled in.

Original content from computingforgeeks.com - post 7770

This guide covers both builds: what ffmpeg-free can and cannot encode, how to install FFmpeg on Fedora from RPM Fusion on a server, how to swap it in on Workstation without breaking Nautilus, and the commands you will actually use once it is in place. It closes with an encoder benchmark on real film footage, with VMAF scores. If you want the whole desktop codec stack (GStreamer plugins, VA-API, OpenH264 for the browser), the RPM Fusion multimedia codecs guide handles that side. It was tested across Fedora 45 and Fedora 44 Workstation and minimal VMs in October 2026.

Which FFmpeg build does Fedora ship?

Fedora ships ffmpeg-free in its own repositories. It is the same FFmpeg source with H.264 and HEVC software encoders, and a handful of other non-free codecs, removed. RPM Fusion ships the unrestricted build as ffmpeg. Both normally track the same upstream release, so the version numbers match when the two repositories are in step, as they were during testing. The encoder list is the real difference:

Itemffmpeg-free (Fedora repos)ffmpeg (RPM Fusion)
FFmpeg on Fedora 459.0.29.0.2
FFmpeg on Fedora 448.1.38.1.3
Encoders listed (F45 / F44)207 / 212238 / 238
libx264 (H.264)NoYes
libx265 (HEVC)NoYes
libvvenc (H.266/VVC)NoYes
libopenh264 (Cisco H.264)YesYes
libsvtav1, libaom, libvpx, libopus, libmp3lameYesYes
libfdk_aacYes (fdk-aac-free)Yes
VA-API, NVENC, QSV encodersYesYes
Preinstalled on WorkstationYesNo

So the free build is not useless. It encodes AV1, VP9, Opus and MP3, and it can produce H.264 through Cisco’s OpenH264. What it cannot do is x264 or x265, which is what most scripts, tutorials and media servers ask for by name. That is the reason to switch.

Install ffmpeg-free from the Fedora repositories

On a minimal or server install nothing is there yet. The free build needs no extra repository:

sudo dnf -y install ffmpeg-free

Expect a large transaction on a headless box. On the Fedora 45 minimal VM it pulled 283 packages and 812 MiB, mostly codec and font libraries:

Transaction Summary:
 Installing:       283 packages

Total size of inbound packages is 216 MiB. Need to download 216 MiB.
After this operation, 812 MiB extra will be used (install 812 MiB, remove 0 B).

H.264 through OpenH264 works, because current Fedora enables the fedora-cisco-openh264 repository by default and pulls the codec in as a dependency. If you disabled it at some point, sudo dnf config-manager setopt fedora-cisco-openh264.enabled=1 turns it back on. Ask for x264 instead and the free build refuses:

ffmpeg -hide_banner -y -v error -f lavfi -i testsrc2=size=1280x720:rate=30 -t 5 -c:v libx264 test-x264.mp4

This is the error people hit when a script hardcodes libx264 on stock Fedora:

[vost#0:0 @ 0x558061aa3f00] Unknown encoder 'libx264'
[vost#0:0 @ 0x558061aa3f00] Error selecting an encoder
Error opening output file test-x264.mp4.
Error opening output files: Encoder not found

If your workload is AV1, VP9 or Opus, stop here. For x264 and x265, enable RPM Fusion. On a fresh desktop it is usually the first repository people add, right after the system update in the Fedora 45 post-install checklist.

Enable RPM Fusion

Install both release packages in one command. The free repository carries ffmpeg, x264 and x265. Nonfree carries fdk-aac, which the full build pulled in on the clean Fedora 44 server:

sudo dnf -y 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

dnf warns that it skipped OpenPGP checks for the two local packages. That is normal for a dnf install of an RPM URL. The repository keys themselves are imported and checked on the first real install. Confirm the new repositories:

dnf repolist

Four RPM Fusion entries appear next to the Fedora ones:

repo id                   repo name
fedora                    Fedora 44 - x86_64
fedora-cisco-openh264     Fedora 44 openh264 (From Cisco) - x86_64
rpmfusion-free            RPM Fusion for Fedora 44 - Free
rpmfusion-free-updates    RPM Fusion for Fedora 44 - Free - Updates
rpmfusion-nonfree         RPM Fusion for Fedora 44 - Nonfree
rpmfusion-nonfree-updates RPM Fusion for Fedora 44 - Nonfree - Updates
updates                   Fedora 44 - x86_64 - Updates

Install the full FFmpeg on a server or minimal install

Where ffmpeg-free is not installed, the full build installs directly with no conflict. The Fedora 44 test server had the free build removed and its orphans cleared first:

sudo dnf -y install ffmpeg

On the clean Fedora 44 VM the transaction came from rpmfusion-free-updates and pulled 273 packages:

Transaction Summary:
 Installing:       273 packages

Total size of inbound packages is 207 MiB. Need to download 207 MiB.
After this operation, 824 MiB extra will be used (install 824 MiB, remove 0 B).

Already installed the free build on that server? Then you are in the Workstation situation below, and the same swap command applies.

Swap ffmpeg-free for ffmpeg on Workstation

Fedora Workstation ships ffmpeg-free and its *-free libraries by default. They are not there for the CLI. gstreamer1-plugin-libav and libheif-ffmpeg link against them, which is how GStreamer apps such as GNOME Videos, and the HEIF image loader, decode media:

dnf repoquery --installed --whatrequires libavcodec-free

Those are the packages that depend on the free libraries on a fresh Fedora 45 Workstation:

ffmpeg-free-0:9.0.2-2.fc45.x86_64
gstreamer1-plugin-libav-0:1.28.8-1.fc45.x86_64
libavdevice-free-0:9.0.2-2.fc45.x86_64
libavfilter-free-0:9.0.2-2.fc45.x86_64
libavformat-free-0:9.0.2-2.fc45.x86_64
libheif-ffmpeg-0:1.23.5-3.fc45.x86_64

A plain sudo dnf install ffmpeg on a Workstation fails, because both packages provide ffmpeg-free and conflict on it. This is the Fedora 44 Workstation run:

Failed to resolve the transaction:
Problem: problem with installed package
  - installed package ffmpeg-free-8.1.3-1.fc44.x86_64 conflicts with ffmpeg-free provided by ffmpeg-8.0.1-6.fc44.x86_64 from rpmfusion-free
  - package ffmpeg-8.0.1-6.fc44.x86_64 from rpmfusion-free conflicts with ffmpeg-free provided by ffmpeg-free-8.0.1-6.fc44.x86_64 from fedora
  - package ffmpeg-8.0.1-6.fc44.x86_64 from rpmfusion-free conflicts with ffmpeg-free provided by ffmpeg-free-8.1.3-1.fc44.x86_64 from updates
  - conflicting requests
  - installed package ffmpeg-free-8.1.3-1.fc44.x86_64 conflicts with ffmpeg-free provided by ffmpeg-8.1.3-1.fc44.x86_64 from rpmfusion-free-updates
  - package ffmpeg-8.1.3-1.fc44.x86_64 from rpmfusion-free-updates conflicts with ffmpeg-free provided by ffmpeg-free-8.0.1-6.fc44.x86_64 from fedora
  - package ffmpeg-8.1.3-1.fc44.x86_64 from rpmfusion-free-updates conflicts with ffmpeg-free provided by ffmpeg-free-8.1.3-1.fc44.x86_64 from updates
You can try to add to command line:
  --allowerasing to allow removing of installed packages to resolve problems
  --skip-broken to skip uninstallable packages

The fix is one transaction that removes the free build and installs the full one, so nothing that depends on the libraries is ever left without them:

sudo dnf -y swap ffmpeg-free ffmpeg --allowerasing

Eight packages out, eight in. ffmpeg-libs provides the same sonames as the free libraries, so gstreamer1-plugin-libav stays installed and now decodes through the full build:

dnf swap ffmpeg-free ffmpeg --allowerasing transaction on Fedora 44 Workstation

Check the result on Fedora 45. The GStreamer plugin is still there, and every -free library is gone:

rpm -qa | grep -E "^(ffmpeg|libav|libsw|gstreamer1-plugin-libav)" | sort

The RPM Fusion packages and the Fedora GStreamer plugin remain, plus two unrelated libraries the pattern happens to match:

ffmpeg-9.0.2-1.fc45.x86_64
ffmpeg-libs-9.0.2-1.fc45.x86_64
gstreamer1-plugin-libav-1.28.8-1.fc45.x86_64
libavc1394-0.5.4-28.fc45.x86_64
libavdevice-9.0.2-1.fc45.x86_64
libavif-1.3.0-7.fc45.x86_64

Do not try to get there by removing packages by hand. ffmpeg-libs sits under the file manager. A dry run of removing it on the swapped Fedora 44 Workstation wanted to take Nautilus and the GNOME Classic session with it:

sudo dnf remove --assumeno ffmpeg-libs

The dependent-package list is the part to read before you ever answer yes:

Removing:
 ffmpeg-libs                               x86_64 0:8.1.3-1.fc44                     rpmfusion-free-updates  23.3 MiB
Removing dependent packages:
 ffmpeg                                    x86_64 0:8.1.3-1.fc44                     rpmfusion-free-updates   2.6 MiB
 gnome-classic-session                     noarch 0:50.4-1.fc44                      updates                  8.9 KiB
 gstreamer1-plugin-libav                   x86_64 0:1.28.8-1.fc44                    updates                339.3 KiB
 libheif-ffmpeg                            x86_64 0:1.23.5-3.fc44                    updates                 32.1 KiB
 localsearch                               x86_64 0:3.11.2-1.fc44                    updates                  3.5 MiB
 nautilus                                  x86_64 0:50.3.1-1.fc44                    updates                 13.9 MiB
 papers-nautilus                           x86_64 0:49.8-1.fc44                      updates                 19.4 KiB

Always use dnf swap to move between the two builds, in either direction.

Verify the encoders

The version line confirms which build answers on the PATH:

ffmpeg -hide_banner -version | head -1

Fedora 45 reports FFmpeg 9; Fedora 44 reports the 8.1 series:

ffmpeg version 9.0.2 Copyright (c) 2000-2026 the FFmpeg developers

The version string is the same for both builds, so it proves nothing on its own. The encoder list is the real test. Filter it down to the ones that matter:

ffmpeg -hide_banner -encoders | grep -E "libx264 |libx265|libopenh264|libsvtav1|libvvenc|libfdk|libmp3lame|libopus"

With the RPM Fusion build, libx264, libx265 and libvvenc appear. The free build lists none of the three:

ffmpeg -encoders on Fedora 45 listing libx264, libx265, libvvenc and libsvtav1 from RPM Fusion

Install ffmpeg-devel for building against libav*

Building software that links to FFmpeg, such as a custom OBS plugin or a Python wheel with native bindings, needs the headers and pkg-config files:

sudo dnf -y install ffmpeg-devel

Then check the library versions pkg-config hands to your build system:

pkg-config --modversion libavcodec libavformat libavutil

Fedora 45 reports libavcodec 63, the FFmpeg 9 ABI:

63.1.102
63.1.102
61.1.102

Fedora 44 reports libavcodec 62. That major bump matters after an upgrade from 44 to 45: anything you compiled yourself against the old libraries, or a third-party RPM built for Fedora 44, links to libavcodec.so.62 and stops loading once the system moves to 63. Rebuild it after the Fedora 44 to 45 upgrade.

Everyday FFmpeg commands

Synthetic test patterns make poor sample media, so the examples below use 30 seconds of the open movie Sintel (Blender Foundation, CC BY 3.0). FFmpeg can seek inside a remote file and copy just the part you ask for, which saves downloading the full 1.1 GB file:

ffmpeg -hide_banner -v error -ss 600 -i https://download.blender.org/demo/movies/Sintel.2010.1080p.mkv -t 30 -map 0:v:0 -map 0:a:0 -c copy sintel-30s.mkv

Inspect what you got with ffprobe, which ships with both builds:

ffprobe -hide_banner sintel-30s.mkv

H.264 video at 1920×818 and 24 fps, plus 5.1 AC-3 audio. Keep that audio layout in mind for the AV1 example:

Input #0, matroska,webm, from 'sintel-30s.mkv':
  Metadata:
    ENCODER         : Lavf63.1.102
  Duration: 00:00:31.17, start: 0.000000, bitrate: 10487 kb/s
  Chapters:
    Chapter #0:0: start 0.000000, end 30.000000
      Metadata:
        title           : Chapter 06
  Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709/unknown/unknown, progressive), 1920x818, SAR 1:1 DAR 960:409, 24 fps, 24 tbr, 1k tbn
    Metadata:
      DURATION        : 00:00:31.166000000
  Stream #0:1(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s, start 0.050000
    Metadata:
      title           : AC3 5.1 @ 640 Kbps
      DURATION        : 00:00:31.058000000

Transcode to H.264 with AAC audio in an MP4 container. This plays on practically every device:

ffmpeg -hide_banner -v error -i sintel-30s.mkv -c:v libx264 -preset medium -crf 23 -c:a aac -b:a 160k sintel.mp4

HEVC came out at less than half the H.264 size here, at a modest quality cost (see the benchmark below). The -tag:v hvc1 flag is what makes the file play on Apple devices, which reject the default hev1 tag:

ffmpeg -hide_banner -v error -i sintel-30s.mkv -c:v libx265 -preset medium -crf 28 -tag:v hvc1 -c:a aac -b:a 160k -x265-params log-level=error sintel-hevc.mp4

AV1 with Opus in WebM is the royalty-free option, and it works with ffmpeg-free too. Point it at a 5.1 source and libopus refuses the channel layout. The fix is in the troubleshooting section further down, so the working command already carries -ac 2 to downmix to stereo. SVT_LOG=1 keeps the SVT-AV1 banner quiet:

SVT_LOG=1 ffmpeg -hide_banner -v error -i sintel-30s.mkv -c:v libsvtav1 -preset 8 -crf 35 -c:a libopus -b:a 128k -ac 2 sintel-av1.webm

Pull the soundtrack out as MP3. The video to MP3 conversion guide covers bitrate choices and batch conversion in more depth:

ffmpeg -hide_banner -v error -i sintel-30s.mkv -vn -c:a libmp3lame -q:a 2 sintel.mp3

Cut a clip without re-encoding. Stream copy is instant, but it can only cut on keyframes:

ffmpeg -hide_banner -v error -ss 10 -i sintel.mp4 -t 8 -c copy clip.mp4

We asked for 8 seconds and got slightly more, because the cut snapped to the nearest keyframe. Re-encode instead of copying when you need frame-accurate edges:

8.166667

Scale to 720p. The -2 keeps the aspect ratio and rounds the width to an even number, which H.264 requires:

ffmpeg -hide_banner -v error -i sintel.mp4 -vf scale=-2:720 -c:v libx264 -preset fast -crf 23 -c:a copy sintel-720p.mp4

Grab a single frame as a thumbnail:

ffmpeg -hide_banner -v error -ss 12 -i sintel.mp4 -frames:v 1 -q:v 2 thumb.jpg

Make a short GIF. Generating a palette from the clip first is what keeps it from looking dithered and muddy:

ffmpeg -hide_banner -v error -ss 14 -t 3 -i sintel.mp4 -vf "fps=12,scale=480:-1:flags=lanczos,split[a][b];[a]palettegen[p];[b][p]paletteuse" preview.gif

Sizes of everything those commands produced from the 39 MB source:

3.7M clip.mp4
1.8M preview.gif
39M sintel-30s.mkv
8.1M sintel-720p.mp4
5.5M sintel-av1.webm
4.7M sintel-hevc.mp4
618K sintel.mp3
11M sintel.mp4
200K thumb.jpg

To watch any of these without leaving the terminal, ffplay opens a window straight from the command line. Here it plays the HEVC file on the Fedora 45 GNOME desktop:

ffplay playing an HEVC encode of Sintel next to ffprobe output on Fedora 45 GNOME

For a full media player with a library and subtitles, VLC on Fedora uses the same libraries once the swap is done.

Encoder speed and quality on Fedora 45

Which encoder should you use? We encoded the same 30 seconds with each software encoder the RPM Fusion build offers, then scored every result against the source with VMAF. The scoring uses libvmaf, which both builds include. The source is first decoded to a lossless FFV1 reference cropped to 1920×816, so every encoder starts from the same frames. The VM had 4 vCPUs on an Intel Core i7-1165G7. Open the script:

vim bench.sh

This is the exact script that produced the numbers below:

#!/bin/bash
# encode a lossless 1920x816 reference with each encoder; report wall time, fps, size, VMAF vs reference
[ -f ref.mkv ] || ffmpeg -hide_banner -v error -i sintel-30s.mkv -an -vf crop=1920:816 -c:v ffv1 ref.mkv
src=ref.mkv
frames=$(ffprobe -v error -select_streams v:0 -count_packets -show_entries stream=nb_read_packets -of csv=p=0 $src)
printf '%-12s %-26s %8s %7s %8s %6s\n' encoder settings wall_s fps size_MB vmaf
run() {
  name=$1; out=$2; shift 2
  s=$(date +%s.%N)
  SVT_LOG=1 ffmpeg -hide_banner -v error -y -i $src "$@" $out
  e=$(date +%s.%N)
  w=$(echo "$e - $s" | bc)
  fps=$(echo "scale=1; $frames / $w" | bc)
  mb=$(echo "scale=1; $(stat -c %s $out) / 1048576" | bc)
  vmaf=$(ffmpeg -hide_banner -i $out -i $src -lavfi "[0:v]settb=AVTB,setpts=N/24/TB[d];[1:v]settb=AVTB,setpts=N/24/TB[r];[d][r]libvmaf=n_threads=4:model=version=vmaf_v0.6.1" -f null - 2>&1 | grep -oP 'VMAF score: \K[0-9.]+')
  printf '%-12s %-26s %8.1f %7s %8s %6s\n' "$name" "$SET" "$w" "$fps" "$mb" "$vmaf"
}
SET="medium crf 23"; run libx264 b-x264.mp4 -c:v libx264 -preset medium -crf 23
SET="4 Mb/s"; run libopenh264 b-openh264.mp4 -c:v libopenh264 -b:v 4M
SET="medium crf 28"; run libx265 b-x265.mp4 -c:v libx265 -preset medium -crf 28 -x265-params log-level=error
SET="preset 8 crf 35"; run libsvtav1 b-svtav1.mkv -c:v libsvtav1 -preset 8 -crf 35 
SET="faster qp 32"; run libvvenc b-vvenc.mp4 -c:v libvvenc -preset faster -qp 32

Make it executable with chmod +x bench.sh, keep sintel-30s.mkv in the same directory, and run ./bench.sh. It needs bc, which minimal installs lack (sudo dnf -y install bc). Wall time includes muxing, and VMAF is the mean over all 747 frames:

FFmpeg encoder benchmark on Fedora 45 comparing libx264, libopenh264, libx265, libsvtav1 and libvvenc speed, size and VMAF

Read the table by goal, not by row:

  • SVT-AV1 at preset 8 is the standout. It encoded as fast as x264 medium, scored 92.6 VMAF, and produced half the file size. It is also available in ffmpeg-free.
  • x264 medium, CRF 23 scored highest at 95.1, but it is the second largest file. Use it when the output must play everywhere.
  • OpenH264 was the fastest at 83 fps. That speed costs bitrate: at a fixed 4 Mb/s it is the largest file, and it still scored below x264. It is the H.264 fallback when RPM Fusion is not an option.
  • x265 CRF 28 made the smallest file among the codecs that play on most hardware, 3.9 MB, at 89.7 VMAF. It ran slower than SVT-AV1 and scored lower.
  • VVenC made the smallest file of all, 1.9 MB, but ran at 11.9 fps and scored lowest at this QP. Little plays H.266 yet, so treat it as an experiment.

These are single runs on a shared hypervisor, so treat the fps as relative. An earlier run under heavier host load took 34.2 seconds for x264 instead of 20.6, while SVT-AV1 and VVenC barely moved. For GPU encoding through VA-API, NVENC or Quick Sync, which both builds support, the driver setup is in the Fedora codecs and hardware decoding guide.

Troubleshooting

Error: “Unknown encoder ‘libx264′”

You are running ffmpeg-free. Enable RPM Fusion and run the swap from the Workstation section, or switch the command to -c:v libopenh264 -b:v 4M if you want to stay on Fedora packages only.

Error: “installed package ffmpeg-free conflicts with ffmpeg-free provided by ffmpeg”

dnf install ffmpeg on a machine that already has the free build. Use sudo dnf -y swap ffmpeg-free ffmpeg --allowerasing, which replaces the free build in one transaction and leaves the dependent GNOME packages in place.

Error: “Invalid channel layout 5.1(side) for specified mapping family -1”

libopus does not accept the 5.1(side) layout that AC-3 and many MKV files use, and the whole encode aborts:

[libopus @ 0x560c1e682940] Invalid channel layout 5.1(side) for specified mapping family -1.
[aost#0:1/libopus @ 0x560c1e682300] [enc:libopus @ 0x560c1e661580] Error while opening encoder - maybe incorrect parameters such as bit_rate, rate, width or height.

Downmix to stereo with -ac 2, as in the AV1 example above. To keep six channels, remap the layout to plain 5.1 before the encoder:

SVT_LOG=1 ffmpeg -hide_banner -v error -i sintel-30s.mkv -c:v libsvtav1 -preset 8 -crf 35 -c:a libopus -b:a 192k -af "channelmap=channel_layout=5.1" sintel-av1-51.webm

ffprobe confirms stereo Opus in the first file and six-channel Opus in the second:

stream|av1
stream|opus|2|stereo
stream|av1
stream|opus|6|5.1

VMAF reports around 40 to 70 for a good encode

The frames are misaligned, not the encode bad. MP4 outputs from a seeked source start at a different timestamp than the reference, and libvmaf pairs frames by timestamp. An earlier run of ours scored x264 at 68.6. Renumbering both inputs by frame index with settb=AVTB,setpts=N/24/TB, as bench.sh does, gave 95.1 with the same encode settings. Use your source frame rate in place of 24.

Go back to ffmpeg-free

Leaving RPM Fusion, or chasing a bug you suspect is in the full build? Swap in the other direction:

sudo dnf -y swap ffmpeg ffmpeg-free --allowerasing

The swap removes three RPM Fusion packages and reinstalls the eight free ones:

Package             Arch   Version        Repository                  Size
Removing:
 ffmpeg             x86_64 0:8.1.3-1.fc44 rpmfusion-free-updates   2.6 MiB
Removing dependent packages:
 ffmpeg-libs        x86_64 0:8.1.3-1.fc44 rpmfusion-free-updates  23.3 MiB
 libavdevice        x86_64 0:8.1.3-1.fc44 rpmfusion-free-updates 133.8 KiB
Installing:
 ffmpeg-free        x86_64 0:8.1.3-1.fc44 updates                  2.6 MiB
Installing dependencies:
 libavcodec-free    x86_64 0:8.1.3-1.fc44 updates                 10.3 MiB
 libavdevice-free   x86_64 0:8.1.3-1.fc44 updates                244.2 KiB
 libavfilter-free   x86_64 0:8.1.3-1.fc44 updates                  4.3 MiB
 libavformat-free   x86_64 0:8.1.3-1.fc44 updates                  2.8 MiB
 libavutil-free     x86_64 0:8.1.3-1.fc44 updates                975.2 KiB
 libswresample-free x86_64 0:8.1.3-1.fc44 updates                155.2 KiB
 libswscale-free    x86_64 0:8.1.3-1.fc44 updates                  1.0 MiB

Transaction Summary:
 Installing:         8 packages
 Removing:           3 packages

x264, x265 and VVenC libraries stay behind as orphans. autoremove clears every unused dependency on the machine, not only these, so run it without -y on a long-lived system and read the list before you confirm. On the lab VM it found exactly the FFmpeg leftovers:

sudo dnf autoremove

Five packages, 27 MiB in total:

Package            Arch   Version                            Repository          Size
Removing:
 OpenCL-ICD-Loader x86_64 0:3.0.6-7.20250722gitad770a1.fc44  fedora          90.6 KiB
 vmaf-models       noarch 0:3.0.0-5.fc44                     fedora           4.1 MiB
 vvenc-libs        x86_64 0:1.13.1-5.fc44                    rpmfusion-free   3.3 MiB
 x264-libs         x86_64 0:0.165-5.20250608gitb35605ac.fc44 rpmfusion-free   2.8 MiB
 x265-libs         x86_64 0:4.1-4.fc44                       rpmfusion-free  16.7 MiB

Transaction Summary:
 Removing:           5 packages

After this operation, 27 MiB will be freed (install 0 B, remove 27 MiB).

The machine is back to the stock Fedora package set. The RPM Fusion repositories stay enabled until you remove rpmfusion-free-release and rpmfusion-nonfree-release. dnf never switches builds on its own, because ffmpeg conflicts with ffmpeg-free rather than replacing it, so leaving the repositories enabled is harmless. Day-to-day dnf commands for this kind of package juggling are in the DNF5 cheatsheet for Fedora.

Keep reading

Enable RPM Fusion and Install Multimedia Codecs on Fedora 45 / 44 / 43 Fedora Enable RPM Fusion and Install Multimedia Codecs on Fedora 45 / 44 / 43 Harden Fedora 45 / 44 for Desktop and Server: Complete Guide Fedora Harden Fedora 45 / 44 for Desktop and Server: Complete Guide Things to Do After Installing Fedora 44 Workstation Fedora Things to Do After Installing Fedora 44 Workstation dnf versionlock on Fedora: Lock Packages and Kernels (dnf5) Fedora dnf versionlock on Fedora: Lock Packages and Kernels (dnf5) Fix ptrace Operation not permitted for gdb and strace on Fedora Fedora Fix ptrace Operation not permitted for gdb and strace on Fedora Fedora 45 kmscon Console: Fonts, Keymaps and Reverting to fbcon Fedora Fedora 45 kmscon Console: Fonts, Keymaps and Reverting to fbcon

4 thoughts on “Install FFmpeg on Fedora 45 / 44: RPM Fusion vs ffmpeg-free”

Leave a Comment

Press ESC to close