Hardware-accelerated video decoding offloads playback from CPU to GPU, improving performance, reducing heat, and extending battery life—especially for high-resolution videos. On Linux, this works in Chromium-based browsers like Brave, but often requires flags. No more relying on h264ify extensions or downloading videos for MPV!
Benefits
- Smoother high-res (1080p+) playback
- Lower CPU usage
- Better battery life on laptops
Prerequisites (Ubuntu-Based Distros, e.g., Mint)
For Intel GPUs (common on laptops):
sudo apt update
sudo apt install intel-media-va-driver-non-free vainfoVerify with vainfo (should list supported profiles like VP9/H.264).
AMD/NVIDIA: Ensure Mesa/proprietary drivers are installed.
Enabling Flags Support on Ubuntu-Based Distros
Brave's Debian package doesn't read brave-flags.conf by default (unlike Arch's AUR package). Create a wrapper:
Fix permissions:
sudo chown --reference=/usr/bin/brave-browser-stable.original /usr/bin/brave-browser-stable
sudo chmod --reference=/usr/bin/brave-browser-stable.original /usr/bin/brave-browser-stableCreate new launcher:Bash
sudo nano /usr/bin/brave-browser-stablePaste:
#!/bin/sh
: $$ {XDG_CONFIG_HOME=" $${HOME}/.config"}
unset -v flags_conf
flags_conf="${XDG_CONFIG_HOME}/brave-flags.conf"
if [ -f "${flags_conf}" ]
then
unset -v flags
flags="$$ (sed 's/#.*//' < " $${flags_conf}" | tr '\n' ' ')"
set -- $$ {flags} " $$@"
fi
exec /usr/bin/brave-browser-stable.original "$@"Divert the original launcher:
sudo dpkg-divert --add --rename --divert /usr/bin/brave-browser-stable.original /usr/bin/brave-browser-stableNow create/edit ~/.config/brave-flags.conf for flags.
Recommended Flags
Add to ~/.config/brave-flags.conf (one line, restart Brave):
Wayland (often default/best):
--enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoderXorg/X11 (or fallback):
--enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLEVerification
- Play a video (e.g., YouTube 1080p+).
- Ctrl + Shift + I → Three dots → More tools → Media.
- Check Decoder name: VaapiVideoDecoder = GPU accelerated (avoid FFmpegVideoDecoder).
Credits
This amazing commentary on github: https://github.com/brave/brave-browser/issues/2300#issuecomment-2718755680
As always, the Arch Wiki is an invaluable resource for all things Linux. If hardware video acceleration still doesn't work, check the wiki directly for the latest flags and troubleshooting tips. https://wiki.archlinux.org/title/Chromium#Hardware_video_acceleration