I’m finding that when I use Spout IN/OUT to go between TD and OBS (same machine), there’s a lot of dropped frames, compared to using NDI. My assumption was that Spout would be more reliable than NDI as it’s designed for same-machine transfer, but that’s not been my experience. Although Spout drops more frames, both Spout and NDI seem to drop frames in transfer (as compared to the source, which is rendering more frames than are being shown on the receiving end, in both directions).
I’m wondering what other peoples’ experience has been in general with getting video to/from TD and other apps, and if anyone has any recommendations in terms of how to avoid dropped frames. I don’t mind a solution that requires slightly higher latency.
The issue with Spout is that it has no queueing on hand-off between the processes. It has a single GPU texture that is filled at random times and read at random times. This results in frames randomly being double shown and not shown.
NDI however has a queue of frames so as long as the sender and receiver are both running at full frame rate, the frames will more consistently be shown.
It took a lot of fiddling to debug, but I eventually got an Elgato HD60S+ working on both an M1 Macbook air and my older Retina 5K working to record video and audio from my laptop PC using OBS. But this budget unit only does HD res, not 4K. But it does offload the PC running a heavy TD vis, which was why I wanted it. Kind of a pain to setup everytime though, so I mostly record directly my videos with movieFileOut if I have enough bandwidth to run both. I am also interested in other people’s experiences recording video and audio in perfect sync from TD, particularly when your program is maxing out resources on PC.
Wow never thought of that, I always just assumed syphon/spout was the way to go between two processes on the same computer because of no latency and no compression, but if there is the chance for missed or doubled frames, it might be that NDI is the way to go if one is doing something frame-important (like recording)
That being said, is syphon / spout between two TD processes going to be more reliable / predictable than TouchDesigner and some other program like OBS or Resolume?
Also, what is being used to send TOP data between processes when going into / out of an Engine COMP?