MayaPosch/NymphCast

Stream from usb 3.0 input

brentgracey opened this issue · 3 comments

Hi all;

This is not an issue; just a general plea for free advice - feel free to mark as invalid; or if there is a better forum to post it on; please let me know (I tried a stack exchange and a sub-reddit; but didn't get anything useful)

I'm wondering how feasible it would be to cast data from some sensor device. To the sensor; it would think its just plugged into a usb 3 port; and from there - a NymphCast client would cast the stream out over a network.

Cast your video

Assumption 1 (please correct if invalid): I think; given a micro controller that supports usb 3 and the requirements to run NymphCast client - say Raspberry Pi 4 Model B - the above would be possible?
The use case I'm thinking of is having robots stream in their sensor data so that it can be crunched on a suitable powerful compute cluster.
This lead to (Q1.) - could NymphCast support bi-directional data? So that data could be sent back to the client?
And finally - Q2
Is this a reasonable architecture to think through? Or are their better setups; perhaps running something like webRTC on the controller boards and the "compute cluster"?

Any thoughts, comments or suggestions most welcome
Thanks

Hello Brent,
Can you comment on the exact use case? What kind of sensor type and data?
Are we talking about camera sources and video streams? Or something more generic?

NymphCast supports sending and receiving commands and data to/from custom apps that run on the server. It is primarily aimed at streaming multimedia content to a remote receiver (NC server), similar to how ChromeCast works.

NymphCast Client implementations should support screen casting and live streams at some point in the future. This could include video and audio streams from webcams and similar standard USB devices.

The NymphCast protocol is realized as an API implemented in NymphRPC ( https://github.com/MayaPosch/NymphRPC ).

Depending on the type of sensor data and depth of integration into NymphCast we're talking about here (through integration of vendor drivers and APIs) a custom application built on top of NymphRPC, or as you said WebRTC might make more sense.

Thanks for the quick response!

My thought process follows from looking at products like - https://shop-eu.framos.com/Intel%C2%AE-RealSense%E2%84%A2-Depth-Camera-D415-Camera-only-p130509294

So yes I am specifically thinking of a camera; I haven't looked into detail on the format of the data that comes out of that camera; it is a little bit more than RGB; since it has depth data in it too which is called RGB-D I believe. I'm not sure how much of an extract protocol that is.

Am I correct in thinking that its the software "on the other side" of the NC server that will have to be aware of the format of the data being cast? And to the NC client and server - the data being cast is just a sequence of bytes?

Slightly further on alternatives - my mental model of chromecast - is the data is staying local to the wifi network. Do you know if the same would hold for two webRTC clients that happen to be connected to the same router? webRTC requires a server to help establish the p2p connection - but I'm not sure if once that p2p connection is established what network hops would be involved in the p2p data stream. Appreciate that is far from a NC question! And I'm a bit past my own understanding - so I might have some terminology wrong in the question.

Would webRTC stay local to the Wifi network_

I would advise looking at WebRTC and a custom RPC solutions.

Closing this topic because it's fully off-topic for NymphCast.