I am currently trying to find out how I could stream one of Slicers slices (e.g. the red slice) to another device. There seem to be lots of options to receive image streams in Slicer (e.g. PlusToolkit, OpenIGTLink) though I could not find a tutorial how I could send the image data to another client.
First I tried to use the OpenIGTLink interface with python. So far I could not find the suitable vtkMRML…Node for sending an ImageMessage. If I understood correctly, I can use RegisterOutgoingMRMLNode on an vtkMRMLIGTLConnectorNode to send data to a client. Though it is not so clear for me, what kind of node to attach for sending the image of a slice.
My current approach now makes use of the pyIGTLink module which supports ImageMessages. Would this be the correct way to go?
Furthermore I have some concerns about the streaming performance. The receiver is a mobile device, so we use WLAN. Our goal is to implement a live streaming of the slice. Not sure whether this is possible by sending raw image data. The C++ build of OpenIGTLink has examples for video streaming. For example they are using the VP9 codec for compression. I assume this feature wont be available in any python implementation of OpenIGTLink.
Could I implement video streaming in Slicer if I would build Slicer in C++ and extending it? So far I have only used the Python programming features of Slicer. If doable, I would switch to C++ to implement video streaming.
Thanks for any feedback!