Set up OBS Studio

Install OBS Studio by downloading the official installer and following the auto-configure wizard to set up your first scene.

You boot Fedora, launch OBS Studio, and hit record

The CPU spikes to one hundred percent. The preview stutters. When you play back the file, the audio is either silent or completely out of sync with the video. You expected a polished streaming tool. Instead you got a resource hog that refuses to capture your desktop. This happens because Fedora ships with a minimal multimedia stack by default. OBS relies on external codecs and hardware acceleration drivers that you must install and route correctly. A botched configuration can leave you with unplayable files or a thermally throttled laptop. Run a test capture before committing to a long recording session.

What's actually happening

OBS Studio is a compositor and a recording engine. It does not ship with proprietary video codecs or hardware encoder drivers. On Fedora, the obs-studio package pulls in the core application and basic FFmpeg bindings. If you do not install the multimedia codecs repository, OBS falls back to software encoding using the x264 library. Software encoding on a CPU is slow and generates heat.

Screen and audio capture on modern Fedora also depends on PipeWire. Older tutorials still reference PulseAudio or X11 screen sharing. Fedora Workstation uses PipeWire as the default audio and video server. OBS needs the obs-pipewire-audio-capture and obs-vkcapture or obs-vaapi plugins to talk to the compositor and grab your desktop stream without permission errors. The package manager handles most of this, but you must enable the right repositories first. Fedora's release cadence is six months. The N-2 release goes end-of-life when N+1 ships. Plan your OBS and codec updates on that cycle to avoid broken dependencies during major upgrades.

Run journalctl -xe first. Read the actual error before guessing. The x flag adds explanatory text and the e flag jumps to the end. Most sysadmins type journalctl -xeu pipewire muscle-memory style to isolate session manager issues.

The fix and configuration

Start by enabling the RPM Fusion free repository. Fedora does not distribute proprietary codecs or certain hardware encoder libraries due to licensing restrictions. RPM Fusion fills that gap. Run the setup command from the terminal.

sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm --refresh
# --refresh forces dnf to pull fresh repository metadata before installing
# This prevents stale cache errors when adding a new repo
# The rpm -E %fedora substitution ensures the package matches your current release

Install OBS Studio and the essential multimedia dependencies. The obs-studio package pulls in the core application. The ffmpeg-libs and gstreamer1-plugins-good packages provide the codec backend. The pipewire and wireplumber packages ensure your audio and video routing works correctly.

sudo dnf install obs-studio ffmpeg-libs gstreamer1-plugins-good pipewire wireplumber
# obs-studio provides the main application and Qt interface
# ffmpeg-libs supplies the x264, x265, and AAC encoders
# gstreamer1-plugins-good adds hardware decoder support for playback
# pipewire and wireplumber handle modern audio/video session management

If you are using an NVIDIA GPU, you need the proprietary driver and the NVENC encoder library. The open-source nouveau driver does not support hardware encoding. Install the driver stack first, then reboot. After the reboot, install the OBS NVIDIA plugin.

sudo dnf install akmod-nvidia xorg-x11-drv-nvidia-cuda
sudo dnf install obs-nvidia
# akmod-nvidia compiles the kernel module for your current kernel version
# obs-nvidia provides the NVENC hardware encoder plugin for OBS
# Reboot is required because GPU drivers cannot hotload cleanly

Configure OBS to use hardware acceleration. Open OBS Studio. Navigate to Settings, then Video. Set the Base Canvas Resolution to your monitor resolution. Set the Output Scaled Resolution to match or drop to 1080p. Go to the Output tab. Change the Output Mode to Advanced. Under the Video Encoder dropdown, select NVENC H.264 (new) for NVIDIA or QuickSync H.264 for Intel. Set the Rate Control to CBR or VBR. Set the Bitrate to 6000 for 1080p streaming or 15000 for local recording.

Set up audio routing through PipeWire. OBS captures audio from the default sink and source. Open Settings, then Audio. Set the Desktop Audio to Default. Set the Mic/Aux to your physical microphone device. PipeWire automatically routes application audio to the desktop sink. You do not need to configure PulseAudio modules anymore. Config files in /etc/ are user-modified. Files in /usr/lib/ ship with the package. Edit /etc/. Never edit /usr/lib/. OBS stores its user configuration in ~/.config/obs-studio/. Back up that directory before applying major settings changes.

Add your first scene and source. Click the plus button in the Sources panel. Select Screen Capture (PipeWire) for desktop recording. Select Window Capture (PipeWire) for specific application recording. Avoid the legacy X11 or XSHM capture methods. They cause black screens on Wayland sessions and consume extra CPU cycles.

Apply audio filters to clean up your microphone. Right-click your microphone source in the Audio Mixer. Select Filters. Add a Noise Suppression filter. Select RNNoise for low CPU usage or Speex for higher quality. Add a Compressor filter to even out volume spikes. Set the Threshold to -20 dB and the Ratio to 4:1. These filters run in the OBS audio pipeline before encoding. They prevent clipping and reduce listener fatigue.

Reboot before you debug. Half the time the symptom is gone after a clean PipeWire restart.

Verify it worked

Start a test recording. Keep it under thirty seconds. Open the Output panel in OBS. Watch the FPS counter and the dropped frames percentage. The dropped frames should stay below five percent. The encoder should show hardware utilization, not a CPU spike. Play the file in VLC. Check the audio sync. If the lips match the words and the video plays smoothly, the pipeline is correct.

Run journalctl -xeu pipewire to verify the session manager is routing streams correctly. Look for Stream connected messages. If you see permission denied errors, your user account is missing the video or audio group membership. Add it with sudo usermod -aG video,audio $USER and log out completely. Group changes do not apply to active sessions.

Check the OBS log file for encoder initialization. The log lives in ~/.config/obs-studio/logs/. Open the latest file. Search for encoder created. You should see NVENC or VA-API listed. If you see x264 instead, your hardware encoder plugin failed to load. Trust the package manager. Manual file edits drift, snapshots stay.

Common pitfalls and error patterns

OBS will refuse to start recording and print Error: Failed to create encoder: No such device when the hardware encoder plugin is missing or the GPU driver is not loaded. Install the correct obs-nvidia or obs-vaapi package. Reboot after driver installation. Kernel modules do not reload cleanly for GPU stacks.

You will see a black screen with Failed to initialize screen capture when using X11 capture on a Wayland session. Fedora Workstation defaults to Wayland. Switch the source type to PipeWire capture. The compositor handles the screen sharing prompt automatically.

Audio desync appears when the sample rate mismatch between your microphone and the desktop audio stream exceeds forty-eight kilohertz. OBS forces a resample, but cheap USB microphones sometimes report incorrect rates. Open Settings, Audio, and force the Sample Rate to 48 kHz for all devices. Match the project sample rate in the Audio tab to the same value.

SELinux denials rarely block OBS, but they appear if you store recordings on an external drive with restrictive mount options. Check journalctl -t setroubleshoot for avc: denied messages. Run restorecon -Rv /path/to/recordings to fix context labels. Do not disable SELinux to fix a recording path. Fix the mount options or use a standard home directory path.

If the boot menu is gone, GRUB rescue is your friend, not your enemy. The same applies to OBS: if the UI freezes, check the log file before reinstalling. The error is almost always a missing codec or a Wayland permission prompt you missed.

When to use this vs alternatives

Use OBS Studio when you need scene switching, overlay graphics, and hardware-accelerated recording for streaming or tutorials. Use SimpleScreenRecorder when you only need a raw desktop capture with minimal CPU overhead and zero configuration. Use Kdenlive when you need to edit the footage immediately after recording without leaving the desktop environment. Use FFmpeg from the terminal when you are scripting automated captures or need precise codec control without a graphical interface. Stay on the default Workstation stack if you only record occasionally and do not need real-time streaming features.

Where to go next