Question / Help OBS Settings into HDD Write Speeds

jmoney

New Member
Is it possible for OBS to show the required write speeds needed for your HDD for the settings you choose? Would help a lot if this becomes a future add on. As of right now its a guess and check game for me whether my recording settings are to strong for my HDD.
 

R1CH

Forum Admin
Developer
Drive write speeds are irrelevant unless you're recording to a lossless format (in which case you should consult the format documentation for requirements).
 

sam686

Member
A short answer is, it is not needed for x264 video encoder, due to CPU not being fast enough.

Many recent HDD can go above 100 MB/s (MegaBytes per second). OBS bitrate settings is in Kbps (Kilobits per second).

With conversion ( https://www.google.com/search?q=megabytes+to+kilobits ), HDD speed limitation for 100 MB/s is 800000 Kbps. When using x264, will probably hit a slow CPU limitation well before the speed limit of HDD.

Uncompressed 1920x1080 x 30fps x 12bits (4:2:0, NV12 or i420 colorspace) is 746496000 bits per second, or 93 MB/s, which fit just below the speed limit of HDD. I have successfully recorded uncompressed video using FFMPEG custom output, AVI container, show all codecs, rawvideo, with audio pcm16le, with advanced settings set to NV12, for over 10 minutes. The only problem with uncompressed video is it uses up about 5 GB every minute.

Be careful, too much video data can overload HDD and freeze computer within minutes from RAM overload (obs64) or drop frames with a possible crash (obs32), which can happen with uncompressed data, but not x264 encoder due to CPU speed limits.

There is a few possible problems that can slow down HDD.
1. a program might use too much HDD it slows down everything that use this HDD. A separate HDD for recording may help.
2. a failing HDD might cause HDD to go extremely slow and maybe randomly corrupt data. Check your HDD health with a S.M.A.R.T. HDD utility like a windows CrystalDiskinfo.
 

Kisai

New Member
Be careful, too much video data can overload HDD and freeze computer within minutes from RAM overload (obs64) or drop frames with a possible crash (obs32), which can happen with uncompressed data, but not x264 encoder due to CPU speed limits.

That's not how it works. What happens when you write faster than the drive can write is that you use up your disk cache. So if you have more RAM, it takes a few more minutes if you have 32GB instead of 16GB. This is especially problematic with SSD's because they are often tuned to have read speeds that max out the SATA connection (eg 1.5 (187MB/sec), 3(325MB/sec) or 6gbps (750MB/sec)) but the write speeds are not tuned for video purposes, and have asymmetric write speeds half or a third the speed of the read speed. The fastest drives actually do rather poorly on 4K sector read/writes available http://ssd.userbenchmark.com/Explore/Fastest-SSD/8 with most losing 80% of their performance.

At any rate, unless you are dealing with lossless or 4K/8K footage, the drive speed is less important than the CPU speed.

Since OBS is designed for streaming, there's very little support for streaming 4Kp60 to anything. People who have IPTV systems with 4K, or use netflix at 4K require 25Mbits/sec connections at the minimum, and they are limited to a single stream by doing so. So if you're blowing past 25Mbits (3.25MB/sec) in your OBS setup, you're doing something wrong. OBS will not produce "master quality" footage, it is not a NLE like Adobe Premiere or Apple Final Cut. OBS is a type of linear editor today for digital sources what the Newtek Video Toaster was in 1990 for Analog sources.

OBS can be used for video acquisition, but it does not produce master-quality video because it goes through a filter and scaling step that introduces latency that will desync it from the audio and reduce the video color depth. This is especially true of RGB sources that include PC games. If you want to capture "master quality" you quite literately need to capture the HDMI output of the device, losslessly, and that creates a few problems:

An Analog NTSC signal is 720x480 lines, a PAL signal is 720x576 lines , a RGB input of such a device is going to be 59.97 NTSC or 50.00 PAL. So you're looking at 62208000bytes per second for NTSC (720x480x3x60) or 62208000 for PAL (720x576x3x50) So you need a 62.3MB/sec minimum write speed for lossless RGB capture of an analog source (eg an 8-bit or 16-bit game console all the way up to a DVD output.)

For HD sources, things get worse:
1280x720x3x60 = 165888000 Bytes per second, so 166MB/sec this blows away all Mechanical drives, and various SSD's.
1920x1080x3x60 = 373248000 Bytes per second , so 374MB/sec , you have to use fresh SSD's with no wear on them to do this.

With UHD things get even crazier with Rec 2020 and Rec 2100.
Rec 2020 allows for 10 bits and 12 bits per sample, so lets go with 12 bits for the next calculation, also let's up the frame rate to maximum (120p) and use 2160p

3840x2160x6x120 = 5971968000 , Close enough to 6GB/sec. Not only are there no drives in existence that can do this, there is no capture hardware either. This is important when you consider how much RAM is in your system and the type of SSD's that can be made in the first place. a SATA connected SSD would never work. So how do professional systems get around that?

Lossless compression. Even h.264/h.265 can be put in a lossless mode by turning off the quantization step. (
-c:v libx264 -pix_fmt yuv444p -profile:v high444 -crf 0 ), but this still does entropy compression.


TL;DNR version:
There is no point because you will not be doing lossless recordings with OBS.
 
Top