Question / Help Skype sync - I've tried all the advice on the Internet!

Hi, I've been working with tech and media since I was 8 years old. I'm a grownup now... with no idea how to solve this.

Trying to stream Skype callers over NDI using Meet Now. At first, it is in sync with very little lag. Over the first minute or two, the video begins to drift late. My impression is that there has been a bit of stalling, but normally you would expect something to catch up and resync. Nope, it just gets worse. Then if I edit the properties of the source (it doesn't really matter what I change) it will sync back up for a little while.

I'm not certain I've tried every combination, but I have tried many setting variations, including the different Sync settings and going from Highest to Lowest bandwidth, and using vs not using hardware acceleration. It is always the same pattern. My CPU usage and resources appear low and healthy. I'm only trying to stream 720p and I have a good healthy Windows 7 computer on a gigabit connection which I believe has power to spare.

It happens the same way with or without filters and transformations, regardless of whether the project is full of sources or just has the one source. And more fascinatingly, when I connected directly once (not using Meet Now) it didn't seem to happen!

This would therefore seem to be a Skype problem. I need to try more tests, but I've already spent so long (and frustrated my show's kindhearted participants!) I'd like to know what workarounds anyone has found.

Also this may be relevant: I'm using a ui24r for sound and it forces all its devices to be 48k. But in preparing to stream to facebook I have it set to 44.1k. Is it possible this is a conflict? The quality has been excellent, aside from this problem.

I had the most recent OBS and NDI, but I followed some advice on the youtubes and installed the recommended older versions of the NDI files. I can't tell whether it helped; it seems to have made no real difference.

Again, I don't mind if some frames are dropped; I just don't understand why it won't sync back up afterward. The actual Skype window is still lag-free and if I use Window Capture it works fine. But, I need separate NDI sources for multiple users.

I wish Zoom would allow me to use it; it seems so much better than Skype. Better audio and video, less lag. But I can't figure out how to keep a steady window on each participant for Window Capture, and I know they aren't doing NDI (yet!)

Thank you :)

Here, have some logs:

Code:
01:33:22.354: Output 'VirtualOutput': Total frames output: 7709
01:33:22.354: Output 'VirtualOutput': Total drawn frames: 7592 (7710 attempted)
01:33:22.354: Output 'VirtualOutput': Number of lagged frames due to rendering lag/stalls: 118 (1.5%)
01:33:22.357: virtual-output stop
01:33:22.442: Freeing OBS context data
01:33:22.455: [obs-ndi] goodbye !
01:33:22.458: [Scripting] Total detached callbacks: 0
01:33:22.468: == Profiler Results =============================
01:33:22.468: run_program_init: 1709.63 ms
01:33:22.468:  ┣OBSApp::AppInit: 25.607 ms
01:33:22.468:  ┃ ┗OBSApp::InitLocale: 1.752 ms
01:33:22.468:  ┗OBSApp::OBSInit: 1550.44 ms
01:33:22.468:    ┣obs_startup: 0.814 ms
01:33:22.468:    ┗OBSBasic::OBSInit: 1017.36 ms
01:33:22.468:      ┣OBSBasic::InitBasicConfig: 0.47 ms
01:33:22.468:      ┣OBSBasic::ResetAudio: 0.2 ms
01:33:22.468:      ┣OBSBasic::ResetVideo: 574.18 ms
01:33:22.468:      ┣OBSBasic::InitOBSCallbacks: 0.005 ms
01:33:22.468:      ┣OBSBasic::InitHotkeys: 0.047 ms
01:33:22.468:      ┣obs_load_all_modules: 223.725 ms
01:33:22.468:      ┃ ┣obs_init_module(coreaudio-encoder.dll): 0.366 ms
01:33:22.468:      ┃ ┣obs_init_module(decklink-ouput-ui.dll): 0.543 ms
01:33:22.468:      ┃ ┣obs_init_module(enc-amf.dll): 29.845 ms
01:33:22.468:      ┃ ┣obs_init_module(frontend-tools.dll): 4.163 ms
01:33:22.468:      ┃ ┣obs_init_module(image-source.dll): 0.007 ms
01:33:22.468:      ┃ ┣obs_init_module(obs-browser.dll): 1.482 ms
01:33:22.468:      ┃ ┣obs_init_module(obs-ffmpeg.dll): 1.457 ms
01:33:22.468:      ┃ ┃ ┗nvenc_check: 1.442 ms
01:33:22.468:      ┃ ┣obs_init_module(obs-filters.dll): 0.025 ms
01:33:22.468:      ┃ ┣obs_init_module(obs-ndi.dll): 95.669 ms
01:33:22.468:      ┃ ┣obs_init_module(obs-outputs.dll): 0.006 ms
01:33:22.468:      ┃ ┣obs_init_module(obs-qsv11.dll): 14.153 ms
01:33:22.468:      ┃ ┣obs_init_module(obs-text.dll): 0.282 ms
01:33:22.468:      ┃ ┣obs_init_module(obs-transitions.dll): 0.007 ms
01:33:22.468:      ┃ ┣obs_init_module(obs-virtualoutput.dll): 4.218 ms
01:33:22.468:      ┃ ┣obs_init_module(obs-vst.dll): 0.002 ms
01:33:22.468:      ┃ ┣obs_init_module(obs-x264.dll): 0.001 ms
01:33:22.468:      ┃ ┣obs_init_module(rtmp-services.dll): 0.013 ms
01:33:22.468:      ┃ ┣obs_init_module(text-freetype2.dll): 0.115 ms
01:33:22.468:      ┃ ┣obs_init_module(vlc-video.dll): 1.253 ms
01:33:22.468:      ┃ ┣obs_init_module(win-capture.dll): 5.848 ms
01:33:22.468:      ┃ ┣obs_init_module(win-decklink.dll): 2.718 ms
01:33:22.468:      ┃ ┣obs_init_module(win-dshow.dll): 1.224 ms
01:33:22.468:      ┃ ┣obs_init_module(win-mf.dll): 0 ms
01:33:22.468:      ┃ ┣obs_init_module(win-wasapi.dll): 0.006 ms
01:33:22.468:      ┃ ┗reset_win32_symbol_paths: 0.189 ms
01:33:22.468:      ┣OBSBasic::ResetOutputs: 0.365 ms
01:33:22.468:      ┣OBSBasic::CreateHotkeys: 0.037 ms
01:33:22.468:      ┣OBSBasic::InitService: 1.827 ms
01:33:22.469:      ┣OBSBasic::InitPrimitives: 0.352 ms
01:33:22.469:      ┗OBSBasic::Load: 55.68 ms
01:33:22.469: obs_hotkey_thread(25 ms): min=0.002 ms, median=0.003 ms, max=49.053 ms, 99th percentile=6.13 ms, 99.9414% below 25 ms
01:33:22.469: audio_thread(Audio): min=0 ms, median=0.115 ms, max=32.175 ms, 99th percentile=1.043 ms
01:33:22.469: obs_graphics_thread(33.3333 ms): min=0.067 ms, median=8.94 ms, max=3678.74 ms, 99th percentile=20.815 ms, 99.7237% below 33.333 ms
01:33:22.469:  ┣tick_sources: min=0.001 ms, median=0.011 ms, max=3659.11 ms, 99th percentile=8.577 ms
01:33:22.469:  ┣output_frame: min=0.059 ms, median=0.663 ms, max=35.497 ms, 99th percentile=3.124 ms
01:33:22.469:  ┃ ┣gs_context(video->graphics): min=0.059 ms, median=0.306 ms, max=34.79 ms, 99th percentile=2.683 ms
01:33:22.469:  ┃ ┃ ┣render_video: min=0.017 ms, median=0.192 ms, max=33.891 ms, 99th percentile=2.512 ms
01:33:22.469:  ┃ ┃ ┃ ┣render_main_texture: min=0.009 ms, median=0.147 ms, max=33.818 ms, 99th percentile=2.46 ms
01:33:22.469:  ┃ ┃ ┃ ┣render_convert_texture: min=0.015 ms, median=0.023 ms, max=4.946 ms, 99th percentile=0.105 ms
01:33:22.469:  ┃ ┃ ┃ ┗stage_output_texture: min=0.007 ms, median=0.012 ms, max=1.877 ms, 99th percentile=0.039 ms
01:33:22.469:  ┃ ┃ ┣gs_flush: min=0.007 ms, median=0.014 ms, max=7.735 ms, 99th percentile=0.534 ms
01:33:22.469:  ┃ ┃ ┗download_frame: min=0 ms, median=0.068 ms, max=5.222 ms, 99th percentile=0.641 ms
01:33:22.469:  ┃ ┗output_video_data: min=0.19 ms, median=0.31 ms, max=6.087 ms, 99th percentile=1.562 ms
01:33:22.469:  ┗render_displays: min=0 ms, median=6.749 ms, max=94.077 ms, 99th percentile=14.976 ms
01:33:22.469: video_thread(video): min=0.123 ms, median=0.229 ms, max=34.005 ms, 99th percentile=1.237 ms
01:33:22.469: =================================================
01:33:22.469: == Profiler Time Between Calls ==================
01:33:22.469: obs_hotkey_thread(25 ms): min=24.046 ms, median=25.004 ms, max=74.004 ms, 91.9254% within ±2% of 25 ms (0.849443% lower, 7.22515% higher)
01:33:22.469: obs_graphics_thread(33.3333 ms): min=14.43 ms, median=33.334 ms, max=3678.76 ms, 89.6842% within ±2% of 33.333 ms (5.13158% lower, 5.18421% higher)
01:33:22.469: =================================================
01:33:22.629: Number of memory leaks: 0
 
No. But, I saw there is a new version of the NDI Plugin, and I believe also the NDI tool suite may have a newer version than I was using at the time. The NDI Plugin changes list indicated that syncing was improved. Do you have the latest stuff and it's still going wrong?

A workaround I was playing with involved using tools like NDI Studio Monitor to view each caller, and then window capture the Studio Monitors. It seemed to work ok but of course it was a lot of possible points of failure, and it was a drain on resources.

I'm still very interested in solutions. Of course, the dream is to have Zoom offer NDI sources (and hope they don't have sync problems). Fun fact: Zoom now offers individual LOCALLY recorded audio for each speaker. Which means it is sending a separate audio stem for each speaker to your computer. How useful if it were possible to bring them into OBS independently?!

Sigh.
 
Oh let me add: Having Aero enabled seemed to help (but not a lot), and using NDI Tools seems to confirm that it is NOT Skype's problem, since the Tools are able to see the feeds as staying in proper sync. So I think it is, or was, the plugin.
 

theboxmonkey

New Member
Thanks for the update. I'm on a Mac running OS 10.12.6, so I can't get the latest OBS or NDI plugin. I'm on NDI 4.8 right now. I'm actually using another source for audio called ListenTo by Audio Movers. We do music streams so high quality audio is super important. I'm like you, if it would correct itself that would be ok. I don't mind a glitch here or there, but I'm constantly having to change settings on the source to kind of do a manual reset. Have you posted to Github about the issue?
 
After updating to the latest OBS, NDI, and NDI Tools, I haven't tried Skype, but in general I did seem to get better a/v sync on my main OBS NDI output to the Studio Monitor. (This is my trick to be able to watch my own feed full quality full screen while outputting to something else... in this case it was VirtualCam + Virtual Audio Cable into Zoom, to be able to do film-like camera effects, fade to black, and background fx etc during fancy zoom-based streaming shows.)

I haven't posted on github; let me know if you do. I actually hadn't considered there may be issues raised and fixed there.
 

mbuddy16

New Member
I am having the exact same problem..Infact with one guest it's not an issue..if I have multiple guests starting second NDI capture it goes out of sync..while the first guest remains mostly in sync...
 

mbuddy16

New Member
I am having the exact same problem..Infact with one guest it's not an issue..if I have multiple guests starting second NDI capture it goes out of sync..while the first guest remains mostly in sync...
Also has anyone found the solution.
 

SparksMcGee

New Member
Sadly, I am experiencing the same. Got so exciting to be able to do a 3-way conversation recorded (not even streaming live) via Skype, while being able to customize how each person is displayed on the screen, switching between and everything. This is awesome....except that the host connection is solid while the remote/guests in the conversation fall out of sync (*in some cases, 5+ seconds between their audio and their video, which makes it impossible to edit the video when voices overlap...and a pain even when they don't). :(
 

bassetrobar

New Member
I have the same problem. I have two guests in Skype that I need to show in the stream. While looking at the stream or the recording, the first one stays in sync with its audio and the second one drifts. While looking at OBS during the stream, all video is out of sync with what I see in Skype. If I use display capture instead of NDI everything works in sync.

I run the latest version of Skype and OBS on the same computer. The computer is running on Mac OS 10.15.7. Stream output 720p. The selected audio interface is my Apogee Quartet aggregated wit iShowU Audio Capture. The computer is nowhere near running out of resources when the problem occurs. Specs : Core i9-9900K, Radeon RX 580, 32GB RAM, my main display is 4K but Skype is on a smaller secondary one.
 
The problem may not be with Skype specifically, but with audio latency being introduced by your computer. Keep an eye on the logs and you'll probably see when the audio buffer is added. It looks something like

460 ms of buffer added for a total of 560ms

With NDI I always use the "low (experimental" setting to ensure low latency.
 
Top