Teleport

Teleport 0.7.1

YorVeX

Member
Hi. I'm using Teleport to capture gameplay running on my gaming PC, which also has music and my mic going into OBS.
On my stream PC I have all the scenes and a webcam running in OBS.
How can I sync my webcam with the gameplay audio and mic audio that is coming from the gaming PC with my webcam on the streaming PC?
There is no way to reliably sync (mic) audio coming from OBS on the gaming PC with a webcam connected to the streaming PC, the reason being that the delay between the two is not fixed and will change over time.

Let's say you figure audio arrives at the streaming PC with a delay of 200 ms, then you could use a delay filter on the webcam source in the streaming PC OBS to also delay it by 200 ms and it would be synced (or maybe 150 ms if the webcam would have 50 ms delay of its own, but you get the idea). However, after you streamed for a while the delay will change and it will e.g. be 400 ms and it's async again - could happen after 5 minutes or after an hour, but eventually it will. This happens for various reasons, frame drops, lags or just the normal clock drift between two PCs, but the point is, it happens and you cannot prevent this, at least not with NDI or Teleport right now. This doesn't only affect audio, the whole stream with both video and audio has a variable delay between OBS 1 and OBS 2, but relevant for your case would be the mic audio feed. You can still try, maybe you only do short streams or are lucky to have a very stable delay and the static delay does the job for you (it's affected by many factors so it is possible).

Otherwise, potential solutions that I see:
- plug the webcam into the gaming PC (greetings from Captain Obvious, but I really wonder why you plugged it into your streaming PC)
- plug the mic also into the streaming PC (if you use the mic in other software too, e.g. to talk on Discord, things will get complicated though...)
- use a third party program that doesn't vary so much in delay to stream the web cam feed back into the gaming PC and include it as a source there, e.g. I haven't tried it myself but I've been told that cam2web is fast and stable
- stream the mic audio to the streaming PC using a third party tool that has a stable delay and low latency, e.g. I've heard from people that they were successful with VBAN (again something I haven't tested myself)

Note that except the first option all of these only help with syncing mic audio and webcam, you still have the problem that gameplay audio and video will not be in sync with the webcam. That usually is only a problem if your webcam also shows your mouse movements in a shooter or your monitor, otherwise viewers wouldn't notice it a lot, at least not for smaller delays like up to 500 ms.
 
Last edited:

SleepyShaman

New Member
Thanks for the detailed response.
My reasoning for pluging in the webcam into the streaming PC was offloading as much as possible to the streaming PC,
All the scene switching would also be done on the stream pc.

The most obvious solution that you pointed out seems to be the best way to proceed.
My only worry is that having the webcam and the scene being switched (some scenes have a lot going on) on the gaming PC could affect game performance and how it would affect my GPU (which is weaker than my GPU)
Would scene switching on the Gaming PC OBS affect that PC? Or is it "free" since it will only be transcoded on the Streaming PC?
 

YorVeX

Member
Thanks for the detailed response.
My reasoning for pluging in the webcam into the streaming PC was offloading as much as possible to the streaming PC,
All the scene switching would also be done on the stream pc.

The most obvious solution that you pointed out seems to be the best way to proceed.
My only worry is that having the webcam and the scene being switched (some scenes have a lot going on) on the gaming PC could affect game performance and how it would affect my GPU (which is weaker than my GPU)
Would scene switching on the Gaming PC OBS affect that PC? Or is it "free" since it will only be transcoded on the Streaming PC?
The webcam needs to be decoded, and the scene as well as potential scene switching effects composited and rendered on the gaming PC, so it does indeed take a bit of CPU and GPU resources, but by far not as much as encoding the stream, so you would've still offloaded the most resource intensive part to the streaming PC (assuming you want to use CPU encoding). Also I would assume that you do scene switches not during intensive gameplay, or if you do, then in moments of the game that are not critical so that it wouldn't hurt too much if your FPS dip a bit in the game at that moment.

And you can still move things like panels that are always visible (especially animated panels can use up a significant chunk of resources), browser sources that show a chat overlay or stream alerts to the streaming PC to save some additional resources.

The uncertain factor here is your "some scenes have a lot going on" statement. E.g. if you have scenes that play a video loop in the background which does not reset when it's shown it will use up resources all the time, even while those scenes are not active, so you have to optimize them carefully (best is to just not have video loops configured this way, if you need such loops set them to restart when shown).

But before you start rebuilding all that, remember I said above that there is actually a chance that your delay drift over time isn't too bad. Since it doesn't take a lot of effort I'd suggest to at least give the delay filter solution a shot before you move on, you might actually just be lucky enough to have a rather stable delay (if it fluctuates only by +-50 ms nobody would notice, probably even a bit higher is fine).
 

SleepyShaman

New Member
And you can still move things like panels that are always visible (especially animated panels can use up a significant chunk of resources), browser sources that show a chat overlay or stream alerts to the streaming PC to save some additional resources.
Yeah, also had this realization.
The uncertain factor here is your "some scenes have a lot going on" statement. E.g. if you have scenes that play a video loop in the background which does not reset when it's shown it will use up resources all the time, even while those scenes are not active, so you have to optimize them carefully (best is to just not have video loops configured this way, if you need such loops set them to restart when shown).
Sorry, I could have been more clear. What I meant was that I have some redeems that trigger scenes to play some browser sources and in the future something more complex involving a video playing and moving some sources using the Move Transition plugin.
But before you start rebuilding all that, remember I said above that there is actually a chance that your delay drift over time isn't too bad. Since it doesn't take a lot of effort I'd suggest to at least give the delay filter solution a shot before you move on, you might actually just be lucky enough to have a rather stable delay (if it fluctuates only by +-50 ms nobody would notice, probably even a bit higher is fine).
I left a test stream running overnight and tested the latency by pressing a mouse button showing on the webcam and seeing how long it would take for the teleported stream to react.
Then did a new stream and tested again. As far as I could notice the delay was the same.
So if I figure out the delay and add that to the webcam it should be synced.

Thanks for the help!
 

YorVeX

Member
I left a test stream running overnight and tested the latency by pressing a mouse button showing on the webcam and seeing how long it would take for the teleported stream to react.
Then did a new stream and tested again. As far as I could notice the delay was the same.
So if I figure out the delay and add that to the webcam it should be synced.

Thanks for the help!
I find this video loop provided by Twitch always very helpful for delay testing. But remember that while just letting it run over night is a valid and relevant test that I also do from time to time, it's not the only important one. In a real scenario you will often switch scenes or the game has short lags (e.g. during load), making the game capture source also lag and so an, all things that could trigger a sudden jump in delay.
 

PolybiusArcadia

New Member
Hi all, today I OBS crashed and I got this in my log:
[obs-teleport] send queue exceeded [192.168.0.xyz] 801
I have teleport set to 90, which I figure might be the problem. Can you let me know if there's any other way to prevent this issue?
Thank you!
 

Tuna

Member
Hi all, today I OBS crashed and I got this in my log:
[obs-teleport] send queue exceeded [192.168.0.xyz] 801
I have teleport set to 90, which I figure might be the problem. Can you let me know if there's any other way to prevent this issue?
Thank you!
What does crashed mean here? Where is the backtrace?
But that looks sounds like a bandwidth limitation.
 

PolybiusArcadia

New Member
What does crashed mean here? Where is the backtrace?
But that looks sounds like a bandwidth limitation.
Hi again, I've attached a new log, it seems like there's nothing happening before teleport getting the send queue warnings. I'm wondering what could cause the high queue, I've got teleport set to a quality of 40 and my network should be fine, it works for hours on end but randomly teleport will get this high queue error and eventually will take down my LAN.
This addon is amazing, I just wish I knew what caused the queue to get that high. If anyone has any ideas, please let me know!

the error begins at 03:16:55.277 in the log
 

Attachments

  • 2023-03-25 01-32-07.txt
    92.4 KB · Views: 27

YorVeX

Member
@PolybiusArcadia do you also have a log of the receiving OBS? I think there is two thing's that could trigger this, either the receiver lagging (which should be visible in its log) or the network bandwidth not being sufficient, e.g. because at this moment it's used up by something else. Try to monitor your bandwidth usage during the session and see whether you see any spikes (in general and especially when the problem occurs) - Windows Task Manager ("Ethernet" stat) should do for a start.
 

PolybiusArcadia

New Member
@PolybiusArcadia do you also have a log of the receiving OBS? I think there is two thing's that could trigger this, either the receiver lagging (which should be visible in its log) or the network bandwidth not being sufficient, e.g. because at this moment it's used up by something else. Try to monitor your bandwidth usage during the session and see whether you see any spikes (in general and especially when the problem occurs) - Windows Task Manager ("Ethernet" stat) should do for a start.
Hi, thanks for the reply, I am currently doing a few tests. My streaming side was set to 1080p canvas at 60 frames (40 quality in Teleport), which was causing a high power draw from OBS and nearly 80Mb/s, which for the most part was doing the job, but with the crashes, I've set the sending computer to 720p / 60fps canvas and scaling it up to a 1080p canvas on the receiving side with a setting of 90 on Teleport. This has definitely helped take stress off of the LAN bandwidth and the visual difference isn't too noticeable. With these settings, I'm getting about 50Mb/s and the power draw isn't hitting very high in task manager. Good sign so far.

Also, I found out that I had been using NAS assets from my streaming OBS canvas, I'm not sure if that was causing an issue, but I made those assets local now. I think this change helped me stop hemorrhaging frames missed due to render lag quite a bit too, although I'm not sure it matters in the context of Teleport.

I'm going to be leaving Teleport running all night and check the logs to see if teleport builds up a queue and crashes out again. I'll let you all know the outcome.
Thanks again!
 
Last edited:

PolybiusArcadia

New Member
Reporting back, the downscaling to 720p had zero issues! I'm testing again at 1080p this time with Teleport on full 100 quality just to see if I trip it up. I think the culprit was assets being loaded from NAS if this test runs for a long while and no issues!
 

Fist-25

New Member
I have a question this forum and YT videos haven't shown yet. What is the encoding cpu/gpu resources from the gaming pc in a dual pc stream setup?
In the past couple of years I haven't had many issues, playing in 4k, and then having the stream downsized to 1080p and pushing that stream to YouTube.
But with newer games with higher requirements I've noticed a ton of encoding lag or frames skipped due to encoding on my 1 pc setup. So I want to offload that tasking to a stream pc, but I don't want to buy a capture card, or totally reconfigure my usb mic and usb headphones or use a mixer.

OBS teleport seems like a solution, but again how much horsepower does it use to transmit what I'm assuming is a compressed stream to another pc?

I would also love to stream in 4k or 2k if possible.
Games like Star Citizen or Hogwarts just demand my whole GPU, hence the encoding lag. Would it be worth it to use OBS Teleport for this purpose?

I'm just not sure how much oomph downsizing my 4k canvas to 1080p and then encoding to stream on a single pc setup takes compared to offloading that work via OBS Teleport.

Gaming PC is AMD 5800x3d CPU, 3080ti GPU. M.2 SSD's
Stream PC would be 3700x CPU, AMD 5700xt GPU, 2.5" SSD.

Thanks all
 
I have a question this forum and YT videos haven't shown yet. What is the encoding cpu/gpu resources from the gaming pc in a dual pc stream setup?
In the past couple of years I haven't had many issues, playing in 4k, and then having the stream downsized to 1080p and pushing that stream to YouTube.
But with newer games with higher requirements I've noticed a ton of encoding lag or frames skipped due to encoding on my 1 pc setup. So I want to offload that tasking to a stream pc, but I don't want to buy a capture card, or totally reconfigure my usb mic and usb headphones or use a mixer.

OBS teleport seems like a solution, but again how much horsepower does it use to transmit what I'm assuming is a compressed stream to another pc?

I would also love to stream in 4k or 2k if possible.
Games like Star Citizen or Hogwarts just demand my whole GPU, hence the encoding lag. Would it be worth it to use OBS Teleport for this purpose?

I'm just not sure how much oomph downsizing my 4k canvas to 1080p and then encoding to stream on a single pc setup takes compared to offloading that work via OBS Teleport.

Gaming PC is AMD 5800x3d CPU, 3080ti GPU. M.2 SSD's
Stream PC would be 3700x CPU, AMD 5700xt GPU, 2.5" SSD.

Thanks all

I honestly don't know what kind of processing power this requires, but my setup is a bit different. My chain involves three PCs (a fourth if you include the VTuber PC). Until my next-most recent stream, I was using Teleport to send my game to my streaming PC, which would then send another Teleport stream to an encoder PC.

My setup is as follows:

Gaming: AMD Ryzen 7 5800X, GeForce RTX 3060 GPU
Studio: Intel Core i7 6700, Radeon RX550 GPU
Encoder: Intel Core i5 6500, GeForce GTX 1650 (solely used for NVEnc)

My last stream, I switched to NDI between the gaming and studio machines because I appeared to be getting delays on my studio machine. I still use Teleport between the Studio and Encoder machines.

--Katt. =^.^=
 
Hey!

Today I have tried obs teleport plugin. It works very easy and without any major problems. I have got two PC setim 1 - GAMING PC and 2 - STREAMING/RECORDING PC. When I recive the image from my GAMING PC on my STREAMING/RECORDING PC I see at the preview (and also on the recorded file) that the view(video) is choppy and laggy for sure that is not smooth! Also when I use OBS TELEPORT plugin my ping raise from 20 to 90-100. Can I do something to eliminate the choppy/laggy video and high ping using OBS TELEPORT?

All good for You OBS maniacs!
 

Tuna

Member
Tuna updated Teleport with a new update entry:

0.6.6

  • When NV12 is selected as output, ask for I420. It should be a tad faster.
  • Buffer pool for raw image buffers on sender side. Should reduce memory bandwidth usage a bit.
  • Timestamps on receiver with offsets again. Should prevent some latency increases while running.
  • Added some logging when clients connect/disconnect.
  • Log a warning if sender and receiver versions are different.
  • Installer fixes, more text on Windows, correct updating for macOS/Linux.
Note that...

Read the rest of this update entry...
 

SleepyShaman

New Member
  • When NV12 is selected as output, ask for I420. It should be a tad faster.
Could you please clarify what this means?
Would I change this in Settings>Advanced> Video> Color Format from NV12 to l420
On the Sending PC?
On the receiving PC?
On both?

Thanks for your awesome work!
 

Tuna

Member
Could you please clarify what this means?
Would I change this in Settings>Advanced> Video> Color Format from NV12 to l420
On the Sending PC?
On the receiving PC?
On both?

Thanks for your awesome work!
Just ignore it, it will do the thing for you. But also do not expect too much change from it.
 
Top