Audio desync on stream only with ElGato HD60S+, I'm desperate

tHe giafra sHoW

New Member
Good morning everyone.

I recently purchased a ElGato HD60S+ to stream on Twitch my gameplay.I'm using a Xbox Series X console, paired with a Astro Mixamp TR 4th gen and Astro A40 4th gen. Due to the lack of optical out on series X, I was forced to buy a HDMI audio extractor to get optical to send to the mixamp. My setup is a little complex, but I'm attaching a quick draw I made.

For all you need to know though, is that the ElGato is connected to a USB 3.0 SS to my laptop, and I'm using OBS broadcaster. Astro Mixamp has a stream port that is connected via a 3.5 mm jack to the Line in of the ElGato card, basically because I want the stream to hear exactly what I hear on the headset, and this is successful. The problem I'm having is that on stream ONLY I'm getting a noticeable audio desync (1 second or so) since the very beginning of the stream, that seems to mildly worsen overtime as the stream goes on. I'm streaming at 1080p@30fps, and on stream the video is perfect: the image is very good and there are no lag or stutters at all, just a delay in audio that is not synced with the video. I don't have this problem in the OBS preview that is perfectly synced and not even in the recordings, albeit I just took short clips (20-30s), but the stream is desynced from the start, so it's weird that recordings are not suffering the desync.

ElGato's software 4k Capture Utility is installed, but I don't want to use that to stream because it doesn't let me add overlays and stuff like OBS does.

Both Xbox and laptop are connected through Wi-Fi, but I have a quite powerful router and a very good Internet plan (1000Mbps) so that shouldn't be a issue, also since there are no lag / bufferings/ stutters on the stream at all.

My laptop is not very good regarding specs, but many people already told me that it should be enough for my purpose.
Specs are:
CPU: Intel Core i5 8265 U @1.60GHz (4 cores, 8 threads)
GPU: Radeon (TM) 520 2GB VRAM
Memory: 8GB RAM DDR4

I will then provide a log of the last stream, which clearly indicates that "adding XX milliseconds of audio buffering, total audio buffering is now XX milliseconds". I was told that this could be caused by many different things, but since my specs aren't so good I was thinking of a CPU overload/underperforming. I was told it shouldn't be the case since I'm NEVER getting "Reached Max audio buffering!" in the logs, even though my streams were never longer than 2.5 hours.
I would exclude USB overload since I only have the ElGato connected and a wireless MnK dongle to my laptop.

The stream the log refers could be found at this URL:


Desync can be noticed in particuar when the rifle shoots, audio comes like 1 second or so after.


Things I tried:

- Unchecking "use device timestamps" in OBS.
- Checking/Unchecking "use a custom audio device" in the properties of the elgato on obs.
- Tried both 48Khz and 44Khz in the OBS audio settings. ElGato should be initialized at 48Khz, in the log I provided I was trying with 44Khz but it doesn't work either way;
- Fixing the initial delay by manually anticipating the audio by a negative offset (-430ms): the stream gets synced but it loses its sync again shortly after.


I'm really going crazy over this, and I'm sincerely hoping that anyone could help me fix this issue that is so impacting my stream's quality. :(
 

Attachments

  • 2021-03-02 21-47-29.txt
    11.3 KB · Views: 29
  • Screenshot_20210228-234558_WhatsApp.jpg
    Screenshot_20210228-234558_WhatsApp.jpg
    270.8 KB · Views: 82

tHe giafra sHoW

New Member
Is the capture card on a USB bus by itself? Anything else that takes up bandwidth can lead to audio desync

Thanks for the comment.
My laptop has 3 USB ports, 2 of them are SS 3.0 .
The Elgato card is connected to a SS 3.0.
There's a dongle for wireless MnK connected to the third port (usb 2.0), the other port is free.

I doubt the dongle is using so much usb bandwidth though..
 

tHe giafra sHoW

New Member
Is the capture card on a USB bus by itself? Anything else that takes up bandwidth can lead to audio desync

Uhm, looking at power saving options, I have "USB selective suspended setting" set ti Enable... Not sure if it is impacting the USB in some ways. I disabled it just now just to be sure..
 

fatmatrow

Member
Thanks for the comment.
My laptop has 3 USB ports, 2 of them are SS 3.0 .
The Elgato card is connected to a SS 3.0.
There's a dongle for wireless MnK connected to the third port (usb 2.0), the other port is free.

I doubt the dongle is using so much usb bandwidth though..
Even if its something thats not soaking the bandwidth, just interrupts can be enough to mess up sync. Do you have buffering enabled in the obs settings for the card? I've had luck with that helping out with random sync issues. Once you can get a consistent amount of latency, you should be able to set an offset for the audio once and be done with it.

To see where the latency issues could be, try running latencymon and see what pops up
 

tHe giafra sHoW

New Member
Ok everyone, I just did some tests:
I tried to record a long gameplay clip: the audio never got desynced.
I tried to stream for 30 minutes: I started a offline custom lobby, and everything was synced even on stream. Then I tried to go into matchmaking. As soon as I found a game and the online lobby started, audio got immediately delayed. This is evident from my last stream:


at 09:45 , the online lobby starts, I try shooting the rifle and the sound is delayed. Until 09:45, when I was running a offline private lbby, all sounds wer synced.
This is quite strange, but it might point me to the direction that it's indeed a network issue. I'm afraid I have to run a Ethernet cable from my laptop to the router (15 metres), since laptop and xbox are on wifi. I'm now super afraid Xbox would get a hit if laptop with Ethernet takes a lager portion of the bandwidth.
Also how in hell the audi ogets delayed but video keeps going on flawlessly? If there was a network congestion, I would expect to have bufferings on stream, and I didn't...

I'm also attaching the log of this last stream, I hope someone could help me analyze it in order to notice any problem. At 09:45 minute of the stream the delay starts, but I don't see nothing in that timeframe in this log file.
 

Attachments

  • 2021-03-03 13-19-22.txt
    9.4 KB · Views: 23

fatmatrow

Member
Ok everyone, I just did some tests:
I tried to record a long gameplay clip: the audio never got desynced.
I tried to stream for 30 minutes: I started a offline custom lobby, and everything was synced even on stream. Then I tried to go into matchmaking. As soon as I found a game and the online lobby started, audio got immediately delayed. This is evident from my last stream:


at 09:45 , the online lobby starts, I try shooting the rifle and the sound is delayed. Until 09:45, when I was running a offline private lbby, all sounds wer synced.
This is quite strange, but it might point me to the direction that it's indeed a network issue. I'm afraid I have to run a Ethernet cable from my laptop to the router (15 metres), since laptop and xbox are on wifi. I'm now super afraid Xbox would get a hit if laptop with Ethernet takes a lager portion of the bandwidth.
Also how in hell the audi ogets delayed but video keeps going on flawlessly? If there was a network congestion, I would expect to have bufferings on stream, and I didn't...

I'm also attaching the log of this last stream, I hope someone could help me analyze it in order to notice any problem. At 09:45 minute of the stream the delay starts, but I don't see nothing in that timeframe in this log file.
If you're not dropping frames, it is unlikely it is a network issue
go thru all your sound devices on your pc and make sure they're all set to the same sample rate in their device properties, and that obs is set the same, doesn't hurt to double check.
 

tHe giafra sHoW

New Member
If you're not dropping frames, it is unlikely it is a network issue
go thru all your sound devices on your pc and make sure they're all set to the same sample rate in their device properties, and that obs is set the same, doesn't hurt to double check.

But isn't it weird that it desynced right when the online match started?
In the log file there's nothing interesting, and also CPU usage never went above 45%, usually 19-20%. I doubt it's CPU usage now

Anyways yes, they're all set to the same sample rate...
 

fatmatrow

Member
Run your stream with an offline match open and run the download part of a speed test on your pc (just stop it before the upload part) and see if the desync happens then. Have you tried using the other usb port?
 

tHe giafra sHoW

New Member
Run your stream with an offline match open and run the download part of a speed test on your pc (just stop it before the upload part) and see if the desync happens then. Have you tried using the other usb port?


Thanks for the input. I did this test while connected on wifi.

- I booted up everything, launched the game and launched a offline custom lobby.
- I started the stream, 1080@30.
- Audio and video were synced.
- I then proceeded to launch a speedtest via sppedtest.net. I let it do also the upload part. Audio and video did not desync. DL speed something like 130 Mbps, UL 150 Mbps.
- Then I closed the lobby and started a offline campaign. Audio and video continued to be synced.
- I launched another custom offline game. Audio and video still synced.
- Then, at something like 7-10 minutes of stream, I relaunched a speedtest. Audio and video desynced and the stream buffered shortly on the upload part and then reassested. Audio and video were out of sync.

I then stopped the stream.
I waited 3-4 minutes, and, without closing OBS, I restarted the stream.
Audio and video were badly desynced (from the start, even worse than just before).

I closed the stream.
I restarted the computer.
I reopened OBS.
I launched another offline custom game.
I started the stream. Audio and video were synced.
I immediately launched a speedtest. Nothing went buffering, audio and video were still synced.


I don't know what to think. It seems like a heavy use of the network after 10 minutes of stream triggers a delay...
 

tHe giafra sHoW

New Member
I tried again and I was convinced to have solved the problem, but I didn't.

I ran another stream tonight, this time rendering 720@60 with Ethernet cable connected, and the audio desynced at 20-30 ms. The audio even went out at 1.30 hours in, I don't know why.

I sincerely don't know what to try next.

I really hope someone could go through these logs and help me out.


Otherwise I think I'll return the card to Amazon.
 

tHe giafra sHoW

New Member
Anyone got something to suggest?

Ifound now a ElGato guide to setup the device in OBS and they suggest to set "Buffering" to "Disabled". I've yet to try it, but shouldn't it increase the workload on the CPU ?
 

tHe giafra sHoW

New Member
it would be a negligible amount if at all.

Thanks for your answer.

So I tried again 2 times:

The first one, I tried 720@60 with Disabled Buffering. At minute 23:00 the stream stuttered for a second and audio desynced, in the middle of a online multiplayer match.

The second try, I did 720@60 but running OBS as admin (somebody told me that it solved the problem for them). But at minute 18:00 or something, in the menus, the stream again stuttered for an istant and audio desynced.

In the first try, analyzing the logs I found a "adding 412 milliseconds of delay, total delay is now.." message in the log exactly when the stream stuttered and desynced.
In the second try, there wasn't this line in the log but the stream desynced either way.

I completely ran out of options/settings to try... I'll include the 2 logs of these tries, hoping someone could still help me someway.


What I noticed, though, is that the problem gets fixed if I click on "Deactivate" and then "Activate" immediately after the Capture Device, even while stream is up and running. That seems like a soft reset but it's very quick, video goes out just for an istant and then it comes back perfectly synced again (just to desync after 20 minutes again though).
 

Attachments

  • 2021-03-04 13-06-28.txt
    13.8 KB · Views: 18
  • 2021-03-04 13-16-10.txt
    17 KB · Views: 16

tHe giafra sHoW

New Member
Hi everyone,

If anyone will ever read this thread (and I'm sure someone will), I returned the ElGato capture card to Amazon. After someone reached me on Reddit saying many are having this specific issue even with a more powerful setup, I decided to ask for a refund and buy a Razer Ripsaw HD. I gotta say it's working like a charm, even though I had to use a secondary High-Speed USB cable I had to make it work because the USB cable in their package was causing freezing of the input after 2-3 minutes of recording.

Shame on ElGato for this expensive PVR..
 

Blazikuno

New Member
Hi everyone,

If anyone will ever read this thread (and I'm sure someone will), I returned the ElGato capture card to Amazon. After someone reached me on Reddit saying many are having this specific issue even with a more powerful setup, I decided to ask for a refund and buy a Razer Ripsaw HD. I gotta say it's working like a charm, even though I had to use a secondary High-Speed USB cable I had to make it work because the USB cable in their package was causing freezing of the input after 2-3 minutes of recording.

Shame on ElGato for this expensive PVR..
Having the same issue here. Would hate to think that my only solution is to return the card. Has anyone been able to resolve this?

I tried everything mentioned in this thread and my only guess right now is to Uninstall all drivers and elgato related programs and reinstall to see if it makes a difference.

Right now my workaround is Activating/Deactivating the graphics card source every 30 minutes but that's a terrible solution.
 

konsolenritter

Active Member
I didn't stream game playing, but can supply additional information regarding the elgato hd60s+ and OBS audio:

- OBS audio can be a mess if OBS has to accomodate for different sound sources at the same time. Sound sources with their own crystals or timing sources, e.g. two soundcards. Just remember: If you have an onboard sound, and an usb based one --> makes two with their own timing. If you have onboard sound and sound coming over the elgato --> makes two! Why? Whatever sound comes over the elgato, is either sampled at the analog input of the elgato self, or it comes over hdmi from a source which is independent, too. Because HDMI clocking is bound to the clocking of the sending source.

What is the problem with two or more timing sources? Even if they are in perfect sync (if any) at start of a connection, they WILL runaway from each other over time. They just drift. Take two clocks on earth and they will drift over time. Even if you take two atomic clocks: they will drift... - well... in that case just by microseconds over weeks or months. Of two clocks one will be a slightly bit faster (or slower) of the other.

(Background/Own experience: I had a digital recording from another computer (with its own soundcard that clocked the hdmi input of the elgato) into OBS. OBS was playing locally over a speaker by its own soundcard. Over a recorded session lasting one or two hours it was clearly heard that the difference/delay between the two audio clocks summed up to 30 and more _seconds_. Ouch!)

Back to topic:
Beware: If the hdmi source is your local computer itself, it _seems_ to be okay at first hand. But a single sample chunk dropped on the usb link or by wrong buffering will bring a delay into the audio stream. Another drop brings additional delay to the existing one, and so on. That kind of involved delay can only be healed by restarting OBS or the whole computer at all. The sound stream has to be closed or the sounddriver released...

Stuttering audio or sync issues went away in most cases _for me_ if (being in doubt) all other sound sources within obs are disabled. DISABLED. Because in almost any muxing technology sound is more important than video. A jitter between video frames can't be detected visually easily. But a single drop of samples (or even being a couple of samples late, so the sound drivers fills in just silence) will be heard instantly! Therefore most muxing engines will bind video timing onto audio, not vice versa. And OBS seems to run into trouble if it has more than clearly _one_ timed audio source to handle.
 

Lawrence_SoCal

Active Member
In the log file there's nothing interesting, and also CPU usage never went above 45%, usually 19-20%. I doubt it's CPU usage now
Is that from the OBS stats window, or from Task Manager/Windows Resource Monitor? If from OBS Stats window, that is telling you only the OBS (main) process, not the entire computer CPU (all processes, which is what actually counts)

Also, side note - a poorly written USB driver can cause havoc. And a computer (laptop or desktop ) can have one or more USB Root Hubs, with a laptop more likely to have fewer. Beware ANY assumptions you make about how such traffic is routed internally unless you actually have an in depth understanding of motherboard and CPU/chipset design. There are tools to make understanding USB data paths more understandable to the non-technical

And, using Ethernet won't hurt, it might actually help (unless you are the latest MU-MIMO WiFi standards for both access point and all clients). Otherwise, each additional WiFi client adds 'noise' and at some point causes throughput issues. You can control upstream bandwidth in OBS in your bitrate, and you have to decide
1. how much sustained bandwidth you have to work with
2. whether stream video quality, or game play, is more important, and then adjust accordingly.
 

Lawrence_SoCal

Active Member
You can also try a different USB port. Logitech cameras tend to have issues with some USB host controller brands, and can throw errors when plugged into USB 3.0+ ports (for their USB 2.0 devices), and sometimes vice-versa. I'd recommend snagging USBView which will show you the internal connection hierarchies and let you arrange your devices more efficiently so bandwidth-hungry stuff (like webcams and capture cards) won't be on the same host controller, if possible.
 

Hippieland

New Member
This is old but I was actually just reading to see if there was ever a fix for the capture card directly to OBS sound desync yet. If you use the 4K Capture Utility and NDI source to OBS there is no desync of sound. You need OBS NDI plug-in and to enable something in the 4K Capture Utility settings, I can’t remember what its called off the top of my head but it’s on the first settings tab. I’d still like to know if there was ever a fix to capture devise in OBS sound desync tho.
 
Top