OBS Studio is a free software screen recording and live streaming application for Linux, Windows and macOS. It can record web camera streams, single windows, single monitors or entire desktops. It supports hardware accelerated video encoding using VAAPI on Linux. It is the single best and most feature-complete application for both screen recording and live screaming.
Open Broadcaster Software Studio is free software under the GNU GPL v2. It is written in C and C++.
Features And Usability
OBS has a window which shows what is being recorded (or will be recorded if you start recording or streaming) on the right side and a window showing other sources (or the same sources) on the left side. Pressing the
Transition window will make the preview window on the left side become the recorded content on the right side.
The bottom part of the OBS window lets you setup and configure screen and audio sources for one or more Scenes. Each scene can include multiple sources like a web camera, a single window or an entire window. Multiple audio sources can also be configured for each scene.
The bottom right side has easy to use buttons which can be used to
Start Streaming or
OBS supports multiple Profiles which can be setup to use different input and output resolutions, audio options and hardware encoding options. You can setup a profile which outputs 1080p at 30 fps using VAAPI for hardware encoding and another which outputs 1080p at 60 fps using CPU encoding at low quality if your graphics card is limited to 1080p at 30 fps using VAAPI.
OBS is generally really easy and strait-forward to use yet it is highly configurable.
Presets for a really huge list of live streaming services are available in its settings under▸ ▸ . There is also a option for unsupported services.
Verdict And Conclusion
OBS Studio is the absolutely best and most complete screen recording and live streaming solution. Period. It is the best free software solution and it is also better than most commercial solutions. If you want to live stream or make videos which include screen or application recordings on Linux, Windows or macOS then OBS is absolutely worth a look.
Do note that OBS is not a linear video editor, it has zero functionality for editing your screen and/or web camera recordings.
Generally Fine Settings For Linux
OBS Studio can be configured selecting the menu item
Video and choose either the
Bicubic if you will be recording games or application rendered at 4K to a 1080p canvas. The default
Lanczos filter has better quality but it is quite demanding. Your hardware can likely handle it if you want to downscale 1080p to 720p; 4k to 1080p may be too demanding (depending on your hardware).
Audio and set
Sample rate to
48khz. The default,
44.1khz, was a common sound card limit 20 years ago. There is no reason to use 44.1 khz today. Using
48khz is required if you want to save recordings in the WEBM file format with VP9 video and Opus audio.
You will want to configure one or more audio and video recording profiles before you use OBS Studio. Select
Output and set
Output mode to
Advanced. Then choose the
Recording using GPU encoding
For 1080p30fps choose
Encoderto FFMPEG VAAPI
Compatibility mode (4.0 default)
Bitrateto 20000 (or 30000)
Bitrate appears to be more of a guide-line with VAAPI, a setting of 20000 kbps does not mean you won't get longer periods of 30000-35000. Setting this too low will cause massive encoder lag for some reason.
|Note: VAAPI is limited to 30 fps at 1080p H.264 output on low and mid-range AMD cards like the RX580. These cards should in theory be able to do higher resolutions and frame-rates but that simply does not work. They can do 1080p 60fps HEVC encoding but OBS is limited to H.264 as. Vega and newer AMD GPUs can do 1080p at 60 fps.|
Recording using CPU encoding
For 1080p60fps you need to use CPU encoding on mid-range AMD cards. The Vega's can do 1080p60fps. For CPU encoding choose:
Rate controlto CRF
CRFto 23 for recording. Set it as high as 27 or 30 for streaming.
- Higher CRF numbers produce lower bitrates (and therefore lower video quality)
CPU Usage Presetto
veryfastif you are recording, try higher settings if your CPU can handle it for streaming.
Quick note on CPU Usage Preset: It does not affect quality, using less CPU for compression results in larger file-sizes. Visual quality's the same.
Checking Statistics and Keeping An Eye On Them
Select the menu item
Stats to get a statistic window. You will want to keep an eye on this when you try out your settings for the first few times.
You do absolutely not want to see "Frames missed due to rendering lag". These are frames dropped between the application rendering and OBS. You also don't want "Skipped frames due to encoding lag". This happens either your GPUs when hardware encoding or your CPU can't keep up. The causes are different.
Scene Management Tips
Use Xcomposite when you can. When adding
Sources to your
Scenes you will want to use
Window capture (Xcomposite) and not
Screen Capture (XSHM) if it is possible. Xcomposite works much better for games and is the better option if you are only capturing one window. This is specially true if you are capturing a full screen window.
You have to use
XSHM screen capture if you want to show a video of your entire desktop or a single monitor with several applications open side-by-side and it is fine for simple 2D applications and those kind of things. It is not fine for games and similar; you will get the rendering lag and dropped frames. You do not want the rendering lag which is why you should use
Window capture (Xcomposite) when recording full-screen applications or single windows.
You will want to set in-game options to
vertical sync enabled in all games that have such an option. Variable refresh tends to cause 10+% dropped "Frames missed due to rendering lag".
Xcomposite window capture feature has an option at the bottom called
Use alpha-less texture format (Mesa workaround). Using this option will give you a black screen instead of recorded footage.