Builds the latest stable FFmpeg for the latest Fedora Linux release with complete Nvidia support. The primary reason why this repo exists is RPM Fusion doesn't provide the latest FFmpeg as soon as it's released. Also, there is no COPR repo which provides FFmpeg with proprietary codecs.
1. Hardware Accelerated Video Codecs (NVIDIA/Vulkan)
| Codec | Encoder: NVIDIA | Encoder: Vulkan | Decoder: NVIDIA | Decoder: Vulkan |
|---|---|---|---|---|
| AV1 | av1_nvenc |
av1_vulkan |
av1_nvdec |
-hwaccel vulkan |
| HEVC | hevc_nvenc |
hevc_vulkan |
hevc_nvdec |
-hwaccel vulkan |
| H.264 | h264_nvenc |
h264_vulkan |
h264_nvdec |
-hwaccel vulkan |
| VP9 | ❌ | ❌ | vp9_cuvid |
-hwaccel vulkan |
| VP8 | ❌ | ❌ | vp8_cuvid |
❌ |
2. Software Video Codecs (CPU)
- AV1:
libsvtav1(Optimized),libaom-av1(Reference),libdav1d(Decoder) - HEVC / H.264:
libx265andlibx264(including RGB/10-bit support) - VP9 / VP8:
libvpx-vp9andlibvpx-vp8
3. High-Fidelity Audio Codecs
- AAC:
libfdk_aac(Industry-leading quality) - MP3:
libmp3lame - Opus:
libopus(Web and low-latency standard)
4. Advanced Processing & Graphics
- Vulkan & Placebo: GPU-based scaling and HDR tone mapping
- Subtitles:
libass(Advanced SSA/ASS) - Networking:
gnutlsfor HTTPS streaming support - Runtime:
runtime-cpudetectfor cross-CPU optimization
1. Add this repo
sudo dnf config-manager addrepo --from-repofile=https://infiniti151.github.io/ffmpeg/infiniti151-ffmpeg.repo
2. Exclude ffmpeg from rpmfusion-free (if you have it enabled)
sudo dnf config-manager setopt \
rpmfusion-free.excludepkgs="$(grep -Po '^excludepkgs=\K.*' /etc/yum.repos.d/rpmfusion-free.repo | sed 's/$/ ffmpeg*/' || echo "ffmpeg*")" \
rpmfusion-free-updates.excludepkgs="$(grep -Po '^excludepkgs=\K.*' /etc/yum.repos.d/rpmfusion-free-updates.repo | sed 's/$/ ffmpeg*/' || echo "ffmpeg*")"
3. Add rpmfusion-free-rawhide repo
cat <<EOF | sudo tee /etc/yum.repos.d/rpmfusion-free-rawhide.repo > /dev/null
[rpmfusion-free-rawhide]
name=RPM Fusion for Fedora Rawhide - Free
mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-rawhide&arch=x86_64
enabled=0
gpgcheck=1
metadata_expire=7d
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-rawhide
priority=90
excludepkgs=ffmpeg*
EOF
4. Install ffmpeg
| Current System State | Command |
|---|---|
Fedora Default (ffmpeg-free) |
sudo rpm -e --nodeps ffmpeg-free $(rpm -qa 'libav*-free' 'libsw*-free') sudo dnf in ffmpeg --enablerepo=rpmfusion-free-rawhide |
Standard RPM Fusion (ffmpeg) |
sudo dnf swap ffmpeg ffmpeg --allowerasing --enablerepo=rpmfusion-free-rawhide |
| No FFmpeg installed | sudo dnf in ffmpeg --enablerepo=rpmfusion-free-rawhide |
sudo dnf up --refresh
If the update fails due to
Problem: conflicting requests
- nothing provides xxx(64bit) needed by ffmpeg-xxx.fcxx.x86_64 from infiniti151-ffmpeg
update ffmpeg with
sudo dnf up ffmpeg --enablerepo=rpmfusion-free-rawhide
and then do sudo dnf up --refresh to update other packages.