OBS Studio

From LinuxReviews
Jump to navigationJump to search
Playvideo.png

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 Studio 24.0.6 capturing browser showing OBS website.jpg
OBS Studio v24.0.6.

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 Start Recording.

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 File ▸ Settings ▸ Stream. There is also a Custom... 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 File, Settings.

Select Video and choose either the Downscale filter Bilinear or 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).

Select 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 tab.

Recording using GPU encoding

For 1080p30fps choose

  • Set Recording Format to mkv.
  • Set Encoder to FFMPEG VAAPI
  • Leave Level at Compatibility mode (4.0 default)
  • Set Bitrate to 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.

Kemonomimi rabbit.svg
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:

  • Set Encoder to x264
  • Set Rate control to CRF
  • Set CRF to 23 for recording. Set it as high as 27 or 30 for streaming.
    • Higher CRF numbers produce lower bitrates (and therefore lower video quality)
  • Set CPU Usage Preset to veryfast if 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 View then 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".

The 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.

Links

OBS Studio has a homepage at obsproject.com. There is a very helpful forum at obsproject.com/forum/ with sub-sections for Windows, macoS and Linux as well as guides.


Add your comment
LinuxReviews welcomes all comments. If you do not want to be anonymous, register or log in. It is free.