Texture sync between OF on linux and other apps / systems

Hi all,

I am looking for a way to synchronize texture data in realtime between apps on different operating systems. For example, I want to send resolume stuff from OS X to an openFrameworks app on linux. I know there is syphon for OS X and spout for Windows (as far as I understood it). I found FFGL and ofxFreeFrame, is this the right direction? Not sure how to use it.

Thanks for reading,

Hi Deborah! Could it be as simple as using OSC to messages to synchronize which textures are being displayed? Or do you have to actually communicate the textures themselves? I imagine just using OSC to trigger displaying different images would be way easier if you can get away with that.

If you have to actually communicate the texture data. What about using this to send the images: https://github.com/bakercp/ofxHTTP/tree/master/example_basic_ip_video_server
and this to receive them:

I have never used ffgl or ofxFreeFrame so I don’t know if that is the right direction.

1 Like


i have always wondered what would be the spout or syphon equivalent in linux. unfortunately there seems to have no equivalent so far. i hope there will be one day, if technically possible.

i haven’t digged much into it but maybe gstreamer would be the best cross-platform alternative. this is not really the same technology but it is about creating a video pipe you can share between apps

1 Like

There is this: http://techlife.sg/TCPSClient/index.html

Don’t know what it is actually capable of but it looks interesting enough…

1 Like

Yes i use TCPSyphon regularly. It is nice to send video between multiple machines under different OS (or not). But it is not a Spout or Syphon alternative.

This app uses Syphon or Spout to grab the video and stream it over ethernet. This implies JPEG compression.
TCPSClient is the linux (raspberry) client but can’t send video.

1 Like

Thanks everyone, that was super helpful!

@Caroline_Record Nice to read from you :slight_smile: Yes, I need the texture data. And it’s not really about OF to OF communication but about sending texture streams between different apps using some common protocol / server solution.

Right now I’m fine to get resolume video stream from a coworker to my linux OF app so I will try TCPSClient, seems to be fitting. Is there a reason why it’s raspberry focused or does this run on Ubuntu as well, any experiences?

I would love to get updates if new methods appear for both ways syncing. It would be cool to have input HDMI or displayports to get the stream via cable like you would use a projector but this doesn’t seem to be a thing hardware wise.

you can grab external video using an external capture card.
I use BlackMagic MiniRecorder daily to capture HDMI or SDI sources in VDMX or Millumin without hassle
This is an hardware solution that is pretty cheap but works well.
You need a Thunderbolt port though.


1 Like

I think it’s because the RPi can do hardware decoding of JPEGs (and is a cheap client)

1 Like

Slightly offtopic, but surely of interest for many who stumble on this post:
Seems like GL_NV_copy_image could be the basis of a Linux Spout/Syphon alternative. (It’s apparently even supported on some AMD cards.)



Thanks everyone. Since I don’t have a Thunderbolt port, I decided to use an HDMI to USB 3.0 capture device. Works fine, only needs HDMI output from another computer and registers as a webcam.

Sorry, I know it is an OLD topic. But I had to share pixels between linux apps and after a lot of digging I found the easiest solution was to use ofxNdi.

Hope this helps others who find this in future :v: