Firefox Video Playback Issues on Fedora 43 with NVIDIA RTX 4070 – Freezing and Endless Buffering

Hello, I need help with video playback in Firefox.

The issue I’m experiencing is that when I play a video and try to skip around, it starts buffering endlessly, and the only way to fix it temporarily is by clearing the cache. Additionally, when I skip backward, the video image freezes while the audio and subtitles continue to play. Reloading the page resolves the freeze.

My setup is:

  • OS: Fedora 43 KDE Edition (Fresh install)

  • GPU: NVIDIA RTX 4070 Super (iGPU disabled, Secure Boot disabled)

  • Browser: Firefox 147.0.4 (tested both Flatpak and Fedora repository versions)

Steps I’ve already taken:

  • Installed NVIDIA drivers via RPM Fusion

  • Installed RPM Fusion codecs:

    sudo dnf swap ffmpeg-free ffmpeg --allowerasing
    sudo dnf update @multimedia --setopt="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
    
    
  • Installed NVENC/NVDEC support:

    sudo dnf install xorg-x11-drv-nvidia-cuda-libs
    
    

Despite this, the issue persists. Interestingly, when I perform the same actions in Brave, the problem does not occur.

My current suspicion is that this may be either:

  1. A codec issue, which Brave handles internally, or

  2. A Firefox-specific problem.

Does anyone have recommendations or potential solutions for this issue in Firefox?

You installed xorg-x11-drv-nvidia-cuda-libs, but did you also install xorg-x11-drv-nvidia-cuda ? The command dnf list --installed \*nvidia\* should show all installed nvidia related packages.

I doubt it is a codec issue since you already installed ffmpeg, but it could be.
Have you installed the x264 and x265 packages from rpmfusion?

Having the issue clear by reloading the page, and the fact that this issue does not happen in brave tends to point to some issue with firefox.

Hi, thank you for your quick response.

Yes, I have already installed the CUDA libraries (xorg-x11-drv-nvidia-cuda-libs). Below is the complete list of installed NVIDIA packages:

sudo dnf list --installed *nvidia*

Installed packages
akmod-nvidia.x86_64                          3:580.119.02-1.fc43
kmod-nvidia-6.18.12-200.fc43.x86_64.x86_64   3:580.119.02-1.fc43 @commandline
nvidia-gpu-firmware.noarch                   20260110-1.fc43
nvidia-modprobe.x86_64                       3:580.119.02-1.fc43
nvidia-persistenced.x86_64                   3:580.119.02-1.fc43
nvidia-settings.x86_64                       3:580.119.02-1.fc43
xorg-x11-drv-nvidia.x86_64                   3:580.119.02-1.fc43
xorg-x11-drv-nvidia-cuda.x86_64              3:580.119.02-1.fc43
xorg-x11-drv-nvidia-cuda-libs.x86_64         3:580.119.02-1.fc43
xorg-x11-drv-nvidia-kmodsrc.x86_64           3:580.119.02-1.fc43
xorg-x11-drv-nvidia-libs.x86_64              3:580.119.02-1.fc43
xorg-x11-drv-nvidia-power.x86_64             3:580.119.02-1.fc43

These are the currently installed codecs:

rpm -qa | grep -E 'gstreamer|ffmpeg|libav|x264|x265|lame|vorbis|xvid'

libvorbis-1.3.7-13.fc43.x86_64
lame-libs-3.100-20.fc43.x86_64
twolame-libs-0.4.0-8.fc43.x86_64
libavif-1.3.0-2.fc43.x86_64
xvidcore-1.3.7-14.fc43.x86_64
lame-3.100-20.fc43.x86_64
libavutil-free-7.1.2-4.fc43.x86_64
libavcodec-free-7.1.2-4.fc43.x86_64
gstreamer1-1.26.10-1.fc43.x86_64
gstreamer1-plugins-base-1.26.10-1.fc43.x86_64
gstreamer1-plugins-bad-free-libs-1.26.10-1.fc43.x86_64
gstreamer1-plugins-good-1.26.10-1.fc43.x86_64
gstreamer1-plugins-good-gtk-1.26.10-1.fc43.x86_64
gstreamer1-plugins-bad-free-1.26.10-1.fc43.x86_64
libavformat-free-7.1.2-4.fc43.x86_64
libavfilter-free-7.1.2-4.fc43.x86_64
ffmpegthumbs-25.12.2-2.fc43.x86_64
gstreamer1-plugin-libav-1.26.10-1.fc43.x86_64
vlc-plugin-ffmpeg-3.0.23-1.fc43.x86_64
vlc-plugin-gstreamer-3.0.23-1.fc43.x86_64
gstreamer1-plugins-good-qt-1.26.10-1.fc43.x86_64
gstreamer1-plugins-good-qt6-1.26.10-1.fc43.x86_64
gstreamer1-plugin-dav1d-0.14.0-3.fc43.x86_64
gstreamer1-plugin-openh264-1.26.10-1.fc43.x86_64
gstreamer1-plugins-ugly-free-1.26.10-1.fc43.x86_64
pipewire-gstreamer-1.4.10-1.fc43.x86_64
PackageKit-gstreamer-plugin-1.3.3-14.fc43.x86_64
libavc1394-0.5.4-26.fc43.x86_64
libavdevice-free-7.1.2-4.fc43.x86_64
ffmpeg-free-7.1.2-4.fc43.x86_64

After following this discussion and installing the Flatpak version of Firefox, and then running:

flatpak install org.freedesktop.Platform.ffmpeg-full

the playback issue was resolved.

However, I am now curious why it does not work with the non-Flatpak (RPM) version.

For reference, here is the relevant output of:

ffmpeg -codecs | grep -E '264|265'

DEV.LS h264  H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: libopenh264) 
             (encoders: libopenh264 h264_amf h264_nvenc h264_qsv h264_v4l2m2m h264_vaapi)

.EV.L. hevc  H.265 / HEVC (High Efficiency Video Coding) 
             (encoders: hevc_amf hevc_nvenc hevc_qsv hevc_v4l2m2m hevc_vaapi)

I would suggest one additional step.
sudo dnf install libavcodec-freeworld --allowerasing
That will remove several related (*-free) packages that were installed by fedora and replace them with the freeworld codecs.

Some may say it is not required since you already have the rpmfusion version of ffmpeg, but I install this package anyway and so far have had no codec failures on media.

When you post screen output like this please post it all. Your post clipped off the right hand column that showed the repos from which those packages were installed. In certain situations and at times that information may become very important.

This shows you do not have the x264 or x265 packages installed.
A simple sudo dnf install x264 x265 will solve that issue.

Additionally, be aware that a dnf command provides much more readable and informative information in most cases than can be seen with the rpm command. Dnf uses rpm in the background but adds a lot more features.

Compare these 2 iterations.

$ rpm -qa | grep nvidia
nvidia-modprobe-580.119.02-1.fc43.x86_64
xorg-x11-drv-nvidia-cuda-libs-580.119.02-1.fc43.x86_64
xorg-x11-drv-nvidia-kmodsrc-580.119.02-1.fc43.x86_64
nvidia-persistenced-580.119.02-1.fc43.x86_64
xorg-x11-drv-nvidia-libs-580.119.02-1.fc43.i686
xorg-x11-drv-nvidia-libs-580.119.02-1.fc43.x86_64
xorg-x11-drv-nvidia-cuda-libs-580.119.02-1.fc43.i686
xorg-x11-drv-nvidia-cuda-580.119.02-1.fc43.x86_64
xorg-x11-drv-nvidia-580.119.02-1.fc43.x86_64
akmod-nvidia-580.119.02-1.fc43.x86_64
nvidia-settings-580.119.02-1.fc43.x86_64
xorg-x11-drv-nvidia-xorg-libs-580.119.02-1.fc43.x86_64
xorg-x11-drv-nvidia-power-580.119.02-1.fc43.x86_64
nvidia-gpu-firmware-20260110-1.fc43.noarch
kmod-nvidia-6.18.8-200.fc43.x86_64-580.119.02-1.fc43.x86_64
kmod-nvidia-6.18.9-200.fc43.x86_64-580.119.02-1.fc43.x86_64

and

dnf list --installed \*nvidia\*
Installed packages
akmod-nvidia.x86_64                       3:580.119.02-1.fc43 rpmfusion-nonfree-nvidia-driver
kmod-nvidia-6.18.8-200.fc43.x86_64.x86_64 3:580.119.02-1.fc43 @commandline
kmod-nvidia-6.18.9-200.fc43.x86_64.x86_64 3:580.119.02-1.fc43 @commandline
nvidia-gpu-firmware.noarch                20260110-1.fc43     updates
nvidia-modprobe.x86_64                    3:580.119.02-1.fc43 rpmfusion-nonfree-nvidia-driver
nvidia-persistenced.x86_64                3:580.119.02-1.fc43 rpmfusion-nonfree-nvidia-driver
nvidia-settings.x86_64                    3:580.119.02-1.fc43 rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia.x86_64                3:580.119.02-1.fc43 rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia-cuda.x86_64           3:580.119.02-1.fc43 rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia-cuda-libs.i686        3:580.119.02-1.fc43 rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia-cuda-libs.x86_64      3:580.119.02-1.fc43 rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia-kmodsrc.x86_64        3:580.119.02-1.fc43 rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia-libs.i686             3:580.119.02-1.fc43 rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia-libs.x86_64           3:580.119.02-1.fc43 rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia-power.x86_64          3:580.119.02-1.fc43 rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia-xorg-libs.x86_64      3:580.119.02-1.fc43 rpmfusion-nonfree-nvidia-driver

The second is much more readable, sorted, and shows the source.

Awesome, thank you! After running sudo dnf install libavcodec-freeworld --allowerasing, it also installed the x264 and x265 libraries, and now everything is working correctly.

However, I thought that when installing FFmpeg using sudo dnf swap ffmpeg-free ffmpeg --allowerasing, it would already include support for x264 and x265. Why weren’t those libraries installed as part of that process?

ffmpeg is more about manipulating media instead of playing media. There is a difference in the required codecs apparently. I always install both on a new OS install so was not 100% up on the differences. Your experience seems to indicate that libavcodec-freeworld is the required package for multimedia libs and codecs, though ffmpeg-free from fedora is still restricted in its installed codecs.

you did not swap ffmpeg-free with ffmpeg from rpmfusion, because in your 2nd post
under ‘These are the currently installed codecs:’ clearly lists ffmpeg-free and the libav*-free rpms still installed!

With ffmpeg-free installed, you need to install libavcodec-freeworld to enable x264 and x265 codecs.
With ffmpeg and ffmpeg-libs from rpmfusion installed, libavcodec-freeworld is not required.

In fact libavcodec-freeworld installs the same library as ffmpeg-libs but in another location as can be seen in the ffmpeg spec file ffmpeg/ffmpeg.spec at 3d0997d12c6a448cdcdfcb6b95bbf52dad3de43f · rpmfusion/ffmpeg · GitHub

# rpm -qa ffmpeg\*
ffmpeg-free-7.1.2-4.fc43.x86_64

# dnf install libavcodec-freeworld --assumeno 
Updating and loading repositories:
Repositories loaded.
Package                                 Arch       Version                                  Repository                  Size
Installing:
 libavcodec-freeworld                   x86_64     7.1.2-7.fc43                             rpmfusion-free          12.9 MiB
Installing dependencies:
 vvenc-libs                             x86_64     1.13.1-4.fc43                            rpmfusion-free           3.3 MiB
 x264-libs                              x86_64     0.165-2.20250608gitb35605ac.fc43         rpmfusion-free           2.8 MiB
 x265-libs                              x86_64     4.1-3.fc43                               rpmfusion-free          16.7 MiB

Transaction Summary:
 Installing:         4 packages

or:

# dnf swap ffmpeg-free ffmpeg --allowerasing  --assumeno 
Updating and loading repositories:
Repositories loaded.
Package                                 Arch       Version                                  Repository                  Size
Removing:
 ffmpeg-free                            x86_64     7.1.2-4.fc43                             updates                  2.5 MiB
Removing dependent packages:
 libavcodec-free                        x86_64     7.1.2-4.fc43                             updates                  9.8 MiB
 libavdevice-free                       x86_64     7.1.2-4.fc43                             updates                195.0 KiB
 libavfilter-free                       x86_64     7.1.2-4.fc43                             updates                  4.0 MiB
 libavformat-free                       x86_64     7.1.2-4.fc43                             updates                  2.6 MiB
 libavutil-free                         x86_64     7.1.2-4.fc43                             updates                942.5 KiB
 libpostproc-free                       x86_64     7.1.2-4.fc43                             updates                 85.6 KiB
 libswresample-free                     x86_64     7.1.2-4.fc43                             updates                147.3 KiB
 libswscale-free                        x86_64     7.1.2-4.fc43                             updates                619.4 KiB
Installing:
 ffmpeg                                 x86_64     7.1.2-7.fc43                             rpmfusion-free           2.5 MiB
Installing dependencies:
 OpenCL-ICD-Loader                      x86_64     3.0.6-4.20241023git5907ac1.fc43          fedora                  69.9 KiB
 ffmpeg-libs                            x86_64     7.1.2-7.fc43                             rpmfusion-free          21.2 MiB
 libavdevice                            x86_64     7.1.2-7.fc43                             rpmfusion-free         162.2 KiB
 vvenc-libs                             x86_64     1.13.1-4.fc43                            rpmfusion-free           3.3 MiB
 x264-libs                              x86_64     0.165-2.20250608gitb35605ac.fc43         rpmfusion-free           2.8 MiB
 x265-libs                              x86_64     4.1-3.fc43                               rpmfusion-free          16.7 MiB
Installing weak dependencies:
 vmaf-models                            noarch     3.0.0-4.fc43                             fedora                   4.9 MiB

Transaction Summary:
 Installing:         8 packages
 Removing:           9 packages

RPM firefox’ troubleshooting Information page about:support#media should show software decoding enabled for all video and audio codecs.

NVIDIA only:
Install and configure libva-nvidia-driver to enable HW decoding via va-api. see GitHub - elFarto/nvidia-vaapi-driver: A VA-API implemention using NVIDIA's NVDEC

1 Like