New OBS feature lets you stream better video for less bandwidth
If you ever use OBS to record footage or stream to Twitch, odds are you’re using H.264, a video codec that’s been in use for most of the last two decades. H.264 is everywhere. If you’re streaming a show from Netflix or another service, it’s probably H.264, too. It’s basically the JPEG of video: there are now far more efficient and better quality compression methods available, but it’s hard to dislodge a format that’s so entrenched. Streaming video is starting to do just that, though, with an open source codec called AV1. Netflix has been dabbling with it for a couple years, and now OBS Studio version 29.0 has jumped in with native support for AV1 encoding on AMD and Intel GPUs.
It’s an exciting step, though not one that we’re all going to be able to take advantage of right away. There are two basic types of video encoding: software (which fully relies on your CPU, and is very CPU intensive) and hardware, which uses your GPU to accelerate the encoding process. Hardware encoding is way faster and more efficient and won’t spike your CPU to 100% usage, and is how most of us record footage or stream to platforms like Twitch today. But it’s also typically lower quality.
AV1 comes with the advantage of looking much better than H.264 at lower bitrates, which is especially helpful for streaming on Twitch where your bandwidth is limited. This new version of OBS adds AV1 encoding support for some specific GPUs: AMD’s RX7000 series and Intel’s Arc cards. Back in November OBS added support for Nvidia cards, but only the 4000 series GPUs which have a new encoder on board. Anyone with an older Nvidia card sadly can’t take advantage.
If you own a brand new AMD GPU, though, you can test out AV1 encoding now. This recent video from Linus Tech Tips offers an overview of AV1’s advantages and disadvantages and also makes the case for buying a cheap Intel Arc GPU like this one (opens in new tab) specifically for video encoding.
There are some other additions and improvements in the full patch notes, which you can read below on the OBS Github.
Features
- Added support for the AMD AV1 Encoder for the RX7000 series GPUs on Windows [AMD/Jim]
- Added support for the Intel AV1 Encoder for Arc GPUs on Windows [Intel/Jim]
- Note: CQP is available but not fully supported
- Added support for the Intel HEVC Encoder on Windows [yuriy-chumak/rcdrone/Jim]
- Added an upward compressor filter [pkv]
- Added a 3-band equalizer filter [Jim]
- Added support for native HEVC and ProRes encoders on macOS, including P010 and HDR [Developer-Ecosystem-Engineering/PatTheMav/gxalpha]
- Added support for macOS Desk View [Developer-Ecosystem-Engineering]
- Added update channels for opting into receiving beta/release-candidate builds to Windows [Rodney]
- Work is still underway to get everything ready on the server side, updating via the built-in updater may not be available until later in the OBS 30.0 beta-testing period
- Websockets updated to 5.1.0, which has a number of bug fixes, UI improvements, and new stream reconnect events. [tt2468]
Tweaks and Improvements
- The Replay Buffer’s memory limit is now set to 75% of installed system RAM rather than fixed to 8GB [Rodney]
- Added media key support in Linux [kkartaltepe]
- Various improvements to NVIDIA Video and Audio filters, including a Mask Refresh slider and support for temporal processing, which provides better quality masking [pkv]
- Improved Display Capture screen naming & saving on Windows; indexes should now match regardless of Mode, and reconnected displays should show the correct monitor [jpark37]
- Note: This does mean existing Display Capture sources will be blank until manually configured, to avoid showing the wrong display
- Added support for encryption and authentication for SRT and RIST outputs [pkv]
- Disabled ScreenCaptureKit Display & App capture on macOS 12 due to various issues; users should either update to macOS 13 or use the existing Screen Capture source [PatTheMav]
- Removed the automatic numbering on Multiview labels [Warchamp7]
- Added the ability to mute individual browser docks [WizardCM]
- Added the ability to right click and ‘Inspect’ individual browser docks [WizardCM]
- Changed the default Simple Output NVENC preset to P5 for better compatibility & performance [RytoEX]
- Added support for higher refresh rates in the Video Capture Device source on Windows [WizardCM/EposVox]
- Added the Apple VT Hardware encoder to the Auto Configuration Wizard [gxalpha]
- Improved FFmpeg VA-API enablement by directly using Libva to check device capabilities [tytan652]
- Various minor UX/accessibility tweaks in the UI [Warchamp7/cg2121]
- Raised the speed at which dynamic bitrate recovers after a drop [Jim]
- Audio should now be automatically captured for most capture card brands using the Video Capture Device source on Windows [WizardCM/EposVox]
- Added a slide counter to the Source Toolbar when an Image Slide Show is selected [cg2121]
Bug Fixes
- Fixed issues with async filters (such as Delay) not rendering correctly [jpark37]
- Various performance improvements to Decklink preview output [jpark37]
- Fixed an issue where source Projector windows wouldn’t close when a source was deleted [cg2121]
- Fixed an issue where cursors would disappear or display incorrectly on screen captures on Windows [caesay]
- Fixed issues with CQP rate control for SVT and AOM AV1 encoders [flaeri]
- Fixed an issue with CQP rate control for AMD HEVC and H264 [flaeri]
- Fixed Virtual Camera not working with Webex and GoToMeeting [Jim]
- Fixed capturing UHD/4K YUV on the AJA Kona HDMI [paulh-aja]
- Fixed a bug where slideshow sources wouldn’t remove cleared files when removing missing files [gxalpha]
- Fixed slideshow counter on the source context toolbar showing “1/0” when empty, now shows “-/-” instead [cg2121]
- Fixed chroma location for VAAPI [jpark37]
- Fixed a case where macOS’ VideoToolBox HEVC encoder would be parsed as AVC [jpark37]
- Allow SRT streams to disconnect after timeout [pkv]
- Fixed color space being incorrect for some video devices running in MJPEG video format on Windows [jpark37]
- Fixed monitor names in the Fullscreen Projector & Multiview menus on Windows [WizardCM]