Teleport

Teleport 0.7.1

Tuna

Member
Tuna submitted a new resource:

Teleport - An OBS Studio plugin for an open NDI-like replacement

An OBS Studio plugin for an open NDI-like replacement. Pretty simple, straight forward. No NDI compatibility in any form.

Just as an alternative option for stream setups with multiple machines wanting to transmit some OBS Studio scenes to the main streaming machine in LAN.

Read more about this resource...
 

Acey05

Member
Should "Use Local Timestamps" be enabled on the Main-Streaming Machine and would I need to disable/enable "Device Timestamps" for the Transmit Machines?
 

Tuna

Member
Should "Use Local Timestamps" be enabled on the Main-Streaming Machine and would I need to disable/enable "Device Timestamps" for the Transmit Machines?
In theory you leave this option unchecked. Timestamps will then be the same as on the transmitting machine's output plugin. While testing I ran into some situations which behaved oddly, so I added this option for some kind of debugging, or checking method if toggling it helped for certain scenarios.
 

Acey05

Member
Is there documentation about the "natural" delay of the plugin (1 or 2 frames, sorry don't know how to be more specific)?

How much data does "Quality" send (this is huge, because it actually can cut down on my processor load just enough without losing Perceived quality and also stops Routers from being too saturated)?

Also, is there also a way to add "Teleport" as a Filter to Audio or other Media to separate outputs?

So far all tests seem to be in excellent conditions under 2 hours. Haven't gone above that yet.

Cheers again!
 
Just tested this as I use a two-PC setup. I haven't streamed with it just yet, though I put it through my wringer as the "studio PC" plays the game, runs VTube Studio, caps both (VTube Studio can use NDI, and does in my setup), which I then send over your plugin on both sides.

The main thing I'm seeing that I like is that it never seems to lose sync between the video and audio, something I frequently see with NDI.

I'm really happy with it thus far. Curious, what kind of bandwidth utilization can I expect to see?
 
Just tested this as I use a two-PC setup. I haven't streamed with it just yet, though I put it through my wringer as the "studio PC" plays the game, runs VTube Studio, caps both (VTube Studio can use NDI, and does in my setup), which I then send over your plugin on both sides.

The main thing I'm seeing that I like is that it never seems to lose sync between the video and audio, something I frequently see with NDI.

I'm really happy with it thus far. Curious, what kind of bandwidth utilization can I expect to see?

I forgot to add that a second PC picks up the NDI/Teleporter/RTSP/whatever stream from the backend of the studio OBS process on the first PC and does the actual encode and sends it to Twitch/YouTube/whatever. This past weekend, I had an OBS crash I was able to quickly recover from because while the STUDIO process crashed, the ENCODER process kept on going.
 

Tuna

Member
Is there documentation about the "natural" delay of the plugin (1 or 2 frames, sorry don't know how to be more specific)?

How much data does "Quality" send (this is huge, because it actually can cut down on my processor load just enough without losing Perceived quality and also stops Routers from being too saturated)?

Also, is there also a way to add "Teleport" as a Filter to Audio or other Media to separate outputs?

So far all tests seem to be in excellent conditions under 2 hours. Haven't gone above that yet.

Cheers again!

I haven't measured latency tbh. It probably depends on the encoder and decoder speed of the machines involved and bandwidth between the machines (and therefore quality too). The plugin just encodes, transmits and decodes data as fast as it can. So these are the factors that can affect it. There is no "frame" delay by itself.

The amount of data being send depending on quality is highly dependent on the content. So it may be a bit unpredictable. A black image and white noise will produce very different results. If you want to check in more detail, read this document: https://github.com/libjpeg-turbo/libjpeg-turbo/blob/main/usage.txt and check the quality sections there. All what the plugin is doing is throwing the images at that encoder. I think there are also slides out there showing average expected sizes at typical quality settings.

Last question I'm not sure about. I implemented it to make it quickly to use. Your question sounds more advanced - not sure who is supposed to handle an arbitrary amount of outputs here.
 

Acey05

Member
Cheers for the answers, much appreciated!

As for the output Filters, it's due to recording mostly. Like Streaming the Video + All Audio vs. Recording Video + Desktop Audio but No Mic.

In the case of NDI each one would get an Output Filter (Video, Audio, Mic), but due to the Timing Issues, NDI can end up dropping Audio as it tries to Resync.

Also, wanted to say that Teleport on Average is 10% less GPU intensive. I have NDI sometimes hitting well over 30% of a GPU in idle states, Teleport never breaks over 20% in worst case scenario, and CPU cost on average is 5% more efficient (29% on an Idle Screen vs. 25%).
 

SP_OBS

New Member
+1 to making Teleporter output as a filter for sources.
I am not interested in sending entire scene to my stream PC, just specific sources, so I can separate and position them per scene in stream PC. I do this with NDI currently.
 

Tuna

Member
Tuna updated Teleport with a new update entry:

0.2.0

  • Removed video conversion for output (should allow to use whatever video format is set for output)
  • Removed audio conversion for output (should allow to use whatever audio format is set for output)
  • Added video/audio filter feature *
  • Added audio only filter feature
* Note that this is an video/audio filter, not an effect filter. So this may not be what you are looking for - but maybe it works for your use case nonetheless.

Note that the internal protocol has...

Read the rest of this update entry...
 

SP_OBS

New Member
Thank you for making it a filter! Good progress <3
Personally I need it as an Effect filter :( but keeping an eye out for future updates regardless. Excellent work, performs better than NDI for me
 

Tuna

Member
Thank you for making it a filter! Good progress <3
Personally I need it as an Effect filter :( but keeping an eye out for future updates regardless. Excellent work, performs better than NDI for me
If anyone knows and can tell me how to download the texture from an effect back to host memory it should be fairly easy (famous last words). I just could not see the obvious way of doing so.
 

justedit

Member
Really good job with this plugin ! Some ideas for future development :
- A standalone Teleport viewer software to be able to play Teleport streams on a computer without OBS. Maybe with useful informations like : resolution, fps, bandwith, audio tracks, audio-meters. Something like NDI viewer ?
- Standalone viewer for Raspberry Pi. Could be very useful to create standalones monitor kits that could be able to play a teleport stream.
- Possibility to protect a Teleport stream with a password.
- A standalone Teleport recorder software that could record one ore more Teleport stream.
Cheers and thanks for your work !
noar
 

Acey05

Member
The Audio Filter is amazing! It does exactly as hoped (2 hour test also didn't show any issues so far).

As for the other Filters, allowing the Main Teleport Output to be muted could be a cheaper option maybe?

I know at one point NDI was going to allow people to Mute the NDI Main Output and the Audio Filters could be used instead, it seems like that's what many people wanted (so they could record without the Audio being doubled on Stream and in Recording), although I think simply Muting the Main Teleport on the Stream Machine would achieve the same thing?

The OBS devs usually hang around in discord, as far as I know there are no proper documentations for OBS Plugins and everything in their Module File I think with headers, although that has been a while.

Cheers and thank you!
 

SP_OBS

New Member
If anyone knows and can tell me how to download the texture from an effect back to host memory it should be fairly easy (famous last words). I just could not see the obvious way of doing so.

I have no clue how OBS plugins work, but I guess you could look at the source of other open source plugins that somehow manage to get the texture? My first thought was OBS Shaderfilter, maybe you can find hints @ https://github.com/Oncorporation/obs-shaderfilter/blob/master/src/obs-shaderfilter.c
 
Top