D
Deleted member 27089
Let me start by saying that I've been using OBS with NVENC for a couple of months now and I never noticed any major problem. Total time of recording might be over 70 hours. But every recording in the past was in 30fps, though. Last week with the Youtube switch to 60fps I also started to record 60fps videos and ran into severe quality issues. In the meantime I found that least one reason for it is the use of a inferior codec by Youtube. But they are changing the codec for more popular videos and these look a lot better.
Still I noticed something in the OBS captures that degrade quality. Frankly the problem is that the recording by OBS doesn't capture motion fluidly.
I made a test case with the Unigine Heaven Benchmark. I set everything on low, but kept 1080p@60fps. Vsync is on, which doesn't make a big difference. If anything, it makes the capture smoother. Without vsync the benchmark ran at about 200fps. I wanted to have a test case where the GPU isn't taxed at all, so that that isn't the cause. The constant movement of the wind mill in that benchmark makes it easy to judge the smoothness of the capture.
I captured the screen once with OBS (settings below) and once with Bandicam. For Bandicam I used the x264VFW codec. Settings aren't optimized at all, but more or less out of the box it yielded one of the smoothest captures to date on my setup. A test with Dxtory/x264VFW before in a different game was also very good. Also relatively smooth is the Bandicam capture with MJPEG.
I then loaded the captures into Sony Movie Studio and put them side-by-side. Playback was slowed down to 1/4th and resampling was off. So, what see in the first video is every frame 4 times replicated.
Left is obviously Bandicam, right OBS. The movement left is very smooth, not totally perfect, but usable. On the right the movement is awfully jerky.
If I step through the original OBS capture frame by frame, I noticed every couple of frames a frame is repeated, sometimes more than once, then there are several different frames and then again a duplicate. I counted them once. So, e.g. it looks like this. It starts with different frames and then the sequence alternates with duplicates: 7(diff) 1(same) 7 1 7 1 1 1 1 3 1 1.
In the Bandicam capture you get consistent frames with changes.
So, maybe I'm having the wrong settings?
These are setting I found by googling at they were recommended for good local recording. For my 30fps videos I used 50mbps and a default buffer size. But I did try a lot of settings and testing in the last days and nothing seemed to fix the jerky capture in OBS. x264 capture in OBS was even worse or equally worse compared to using NVENC IIRC.
Really the only change that did improve it, was changing the recording program.
Here is my OBS log:
https://gist.github.com/anonymous/804e5f876cfa49e377a9
Another test video:
https://www.youtube.com/watch?v=G_Tb0OipdNQ
Top is OBS with x264 capture IIRC (might also be NVENC). It shows very bad jittery movement, especially towards the end. Middle: Bandicam/MJPEG. Most fluid motion. Bottom: Bandicam/NVENC. Some jitter.
Ingame video Van Helsing with OBS/NVENC:
https://www.youtube.com/watch?v=2-mi8osI2VU#t=952
Go to 16:00. You can see the jittery movement of the whole screen when I start walking. It's of course not so easy to see at 60fps and with that compression. That's why I made the slowed down test case.
Overall this is a big issue for me and prevents me from using OBS for 60fps captures, since the jerky motion is very distracting. With the 60fps on Youtube it simply feels bad and is not pleasing to the eye. I also suspect that it makes the YouTube quality worse, since motion prediction of the codec probably doesn't work that well if there is no fluid motion.
So, any ideas? Questions? Should I do more test? Solutions?
Still I noticed something in the OBS captures that degrade quality. Frankly the problem is that the recording by OBS doesn't capture motion fluidly.
I made a test case with the Unigine Heaven Benchmark. I set everything on low, but kept 1080p@60fps. Vsync is on, which doesn't make a big difference. If anything, it makes the capture smoother. Without vsync the benchmark ran at about 200fps. I wanted to have a test case where the GPU isn't taxed at all, so that that isn't the cause. The constant movement of the wind mill in that benchmark makes it easy to judge the smoothness of the capture.
I captured the screen once with OBS (settings below) and once with Bandicam. For Bandicam I used the x264VFW codec. Settings aren't optimized at all, but more or less out of the box it yielded one of the smoothest captures to date on my setup. A test with Dxtory/x264VFW before in a different game was also very good. Also relatively smooth is the Bandicam capture with MJPEG.
I then loaded the captures into Sony Movie Studio and put them side-by-side. Playback was slowed down to 1/4th and resampling was off. So, what see in the first video is every frame 4 times replicated.
Left is obviously Bandicam, right OBS. The movement left is very smooth, not totally perfect, but usable. On the right the movement is awfully jerky.
If I step through the original OBS capture frame by frame, I noticed every couple of frames a frame is repeated, sometimes more than once, then there are several different frames and then again a duplicate. I counted them once. So, e.g. it looks like this. It starts with different frames and then the sequence alternates with duplicates: 7(diff) 1(same) 7 1 7 1 1 1 1 3 1 1.
In the Bandicam capture you get consistent frames with changes.
So, maybe I'm having the wrong settings?
Code:
00:14:25: Video Encoding: NVENC
00:14:25: fps: 60
00:14:25: width: 1920, height: 1080
00:14:25: preset: hq
00:14:25: profile: high
00:14:25: level: autoselect
00:14:25: keyint: 30
00:14:25: CBR: no
00:14:25: CFR: yes
00:14:25: max bitrate: 80000
00:14:25: avg bitrate: 80000
00:14:25: buffer size: 0
00:14:25: quality: 10
Really the only change that did improve it, was changing the recording program.
Here is my OBS log:
https://gist.github.com/anonymous/804e5f876cfa49e377a9
Another test video:
https://www.youtube.com/watch?v=G_Tb0OipdNQ
Top is OBS with x264 capture IIRC (might also be NVENC). It shows very bad jittery movement, especially towards the end. Middle: Bandicam/MJPEG. Most fluid motion. Bottom: Bandicam/NVENC. Some jitter.
Ingame video Van Helsing with OBS/NVENC:
https://www.youtube.com/watch?v=2-mi8osI2VU#t=952
Go to 16:00. You can see the jittery movement of the whole screen when I start walking. It's of course not so easy to see at 60fps and with that compression. That's why I made the slowed down test case.
Overall this is a big issue for me and prevents me from using OBS for 60fps captures, since the jerky motion is very distracting. With the 60fps on Youtube it simply feels bad and is not pleasing to the eye. I also suspect that it makes the YouTube quality worse, since motion prediction of the codec probably doesn't work that well if there is no fluid motion.
So, any ideas? Questions? Should I do more test? Solutions?