Question / Help Mixed Refresh Rate Woes

Gabriel Balaich

New Member
Hello all, made a post similar to this about 9 months ago but since have acquired more information and am hoping to find a solution.

Basically my problem is that my main display is 3440x1440 @ 100Hz while my other displays are 60Hz (4k & 1080p), this resulted in extremely choppy capture no matter what I did. Back when I originally posted about this I was trying to do everything on one PC, I had purchased a capture card thinking it may help in some way only to find that running a capture card in the same PC you are recording is basically pointless. After sharing log files, competent details, and talking with a few people on the forums it was determined that it may be G-Sync and or mixed refresh rates causing my issues. I started by disconnecting all displays from my PC except for my main one but still experienced really jumpy recordings, then I disabled G-Sync and disconnected all my displays and recordings worked perfectly. I tried reconnected the other displays and capture footage was back to being jumpy, so it was determined that both G-Sync and mixed refresh rates were the problem.

Eventually a user suggested that if I cared enough I should build a dedicated capture PC which would circumvent the issue, after continuous research and trouble shooting I decided that was really the only way. I already had a 4K capture card capable of capturing my native res and Hz, an extra GPU, and an extra PSU so it wasn't too hard to justify. Sadly, after getting everything setup and working out a lot of issues in terms of getting my screen output to my display and the capture card the problem persisted. I assume this is because the monitor hooked up to the capture PC is 1080p60 and my main monitor / capture card is 3440x1440 @ 100Hz, but I also strongly assumed this wouldn't be an issue while using a capture card in a separate PC. Long story short after realizing OBS wasn't going to work no matter what I tried I moved on to FFmpeg, and after pulling my hair out for months at a time I was able to capture my main display flawlessly using FFmpeg.

I eventually added an additional capture card and camera to my setup plus a few audio input devices, so at this point I have FFmpeg capturing 4 different sources and outputting them to 4 separate and synchronized groups of files. This is far beyond the capabilities of OBS and allows me to mix and edit the resulting output files individually in post, I really have no desire to record using OBS even if I could. However, streaming with FFmpeg is a mixed bag. Sure I could overlay each video and mix the audio using filters, but that's the extent of it's streaming capability. There is no ability to scene change and resize / move things around during recording like with OBS. I've had no need to stream anything but plan on getting into it soon so I was hoping I could get this working in OBS now.

I researched the topic extensively in the past and most people claimed that mixed refresh rates isn't a limitation of OBS but of Windows. If this is the case, how is it that I can record flawlessly on the same PC running Windows via FFmpeg? Something doesn't add up.

So at the end of the day I'm hoping to mix a 3440x1440 @ 100Hz stream, a 4K60 Stream, and two audio only streams using OBS to stream to Youtube or Twitch at 1080p60. Hoping someone has since solved this problem or the new information I can provide helps others understand the situation and find a solution.

ASUS XG35HQ > Magewell Pro Capture HDMI 4K Plus (3440x1440 @ 100Hz)
Blackmagic Pocket Cinema 4K > AVerMedia Live Gamer 4K (4K60)

Obviously don't have the Blackmagic Pocket Cinema 4K yet as it isn't out but should receive soon, currently using a Lumxi FZ1000 and an HD60 Pro.

Here is my working FFmpeg command, good luck making sense of it, thought I should share regardless for added context:
ffmpeg -loglevel error -stats -y -thread_queue_size 9999 -indexmem 9999 -guess_layout_max 0 -f dshow -rtbufsize 2147.48M ^
-i audio="Analog (3+4) (RME Fireface UC)" ^
-thread_queue_size 9999 -indexmem 9999 -guess_layout_max 0 -f dshow -rtbufsize 2147.48M ^
-i audio="ADAT (3+4) (RME Fireface UC)" ^
-thread_queue_size 9999 -indexmem 9999 -guess_layout_max 0 -f dshow -video_size 3440x1440 -rtbufsize 2147.48M ^
-framerate 200 -pixel_format nv12 -i video="Video (00 Pro Capture HDMI 4K+)":audio="SPDIF/ADAT (1+2) (RME Fireface UC)" ^
-thread_queue_size 9999 -indexmem 9999 -guess_layout_max 0 -f dshow -video_size 1920x1080 -rtbufsize 2147.48M ^
-framerate 60 -pixel_format yuyv422 -i video="Game Capture HD60 Pro (Video) (#01)":audio="ADAT (5+6) (RME Fireface UC)" ^
-thread_queue_size 9999 -indexmem 9999 -r 25 -f lavfi -rtbufsize 2147.48M -i color=c=black:s=50x50 ^
-map 4,0 -map 0 -c:v libx264 -r 25 -rc-lookahead 50 -forced-idr 1 -strict_gop 1 -sc_threshold 0 -flags +cgop ^
-force_key_frames expr:gte(t,n_forced*2) -preset ultrafast -pix_fmt nv12 -b:v 16K -minrate 16K -maxrate 16K -bufsize 16k ^
-c:a aac -ar 44100 -b:a 384k -ac 2 -vf "fps=25" -af "aresample=async=250" -vsync 1 -ss 00:00:02.456 ^
-max_muxing_queue_size 9999 -f segment -segment_time 600 -segment_wrap 9 -reset_timestamps 1 ^
-segment_format_options max_delay=0 C:\Users\djcim\Videos\PC\Theirs\TPC%02d.ts ^
-map 4,1 -map 1 -c:v libx264 -r 25 -rc-lookahead 50 -forced-idr 1 -strict_gop 1 -sc_threshold 0 -flags +cgop ^
-force_key_frames expr:gte(t,n_forced*2) -preset ultrafast -pix_fmt nv12 -b:v 16K -minrate 16K -maxrate 16K -bufsize 16k ^
-c:a aac -ar 44100 -b:a 384k -ac 2 -vf "fps=25" -af "aresample=async=250" -vsync 1 -ss 00:00:01.840 ^
-max_muxing_queue_size 9999 -f segment -segment_time 600 -segment_wrap 9 -reset_timestamps 1 ^
-segment_format_options max_delay=0 C:\Users\djcim\Videos\PC\Soundboard\SPC%02d.ts ^
-map 2:0,2:1 -map 2:1 -c:v h264_nvenc -r 100 -rc-lookahead 200 -forced-idr 1 -strict_gop 1 -sc_threshold 0 -flags +cgop ^
-force_key_frames expr:gte(t,n_forced*2) -preset: llhp -pix_fmt nv12 -b:v 250M -minrate 250M -maxrate 250M -bufsize 250M ^
-c:a aac -ar 44100 -b:a 384k -ac 2 -af "atrim=0.035, asetpts=PTS-STARTPTS, aresample=async=250" -vsync 1 -ss 00:00:01.096 ^
-max_muxing_queue_size 9999 -f segment -segment_time 600 -segment_wrap 9 -reset_timestamps 1 ^
-segment_format_options max_delay=0 C:\Users\djcim\Videos\PC\PC\PC%02d.ts ^
-map 3:0,3:1 -map 3:1 -c:v h264_nvenc -r 60 -rc-lookahead 120 -forced-idr 1 -strict_gop 1 -sc_threshold 0 -flags +cgop ^
-force_key_frames expr:gte(t,n_forced*2) -preset: llhp -pix_fmt yuv420p -b:v 40M -minrate 40M -maxrate 40M -bufsize 40M ^
-c:a aac -ar 44100 -b:a 384k -ac 2 -af "pan=mono|c0=c0, adelay=120|120, aresample=async=250" -vsync 1 ^
-max_muxing_queue_size 9999 -f segment -segment_time 600 -segment_wrap 9 -reset_timestamps 1 ^
-segment_format_options max_delay=0 C:\Users\djcim\Videos\PC\Camera\CPC%02d.ts
 
Last edited:

TheChill

New Member
Bump.

Created an account just to see this guy's issue get more coverage. I feel his pain having experienced the same issue since going dual screen. I've run similar experiments with ffmpeg and the results are flawless, yet stutter persists with OBS - and only OBS. Nothing untoward is showing up in the logs.
 
Top