I was toying around with making a patch to send jit.desktop capture, live audio, and text chat over the web (like GoTo Meeting etc.) and was hoping for some advice. I know how to put the patch together but I'm sure it wouldn't be optimized, and given the large amount of data, it would be great to get that good balance between bandwidth and quality.
The video part would be mainly for an "e-whiteboard", so it could definitely be downsampled by at least 2 in each dimension and still be readable. Also the audio would only be for voice, so it could be downgraded too.
The main patch would broadcast to a number of other computers, ideally with dynamic logging in. Only text chat would come back to the master patch from the remote viewers (if they have questions), no audio or video. No chat back out is needed, the audio handles that.
The overall idea is to have remote tutoring sessions using an electronic whiteboard, where those logged in would hear the conversations in the tutoring session and see whatever is written on the e-whiteboard. No other video of the session is needed. I also want all sessions recorded (whiteboard, audio, and text chat) for later chopping and archiving.
So: any tips for optimization? Is jit.qt.broadcast the best option for streaming to multiple remote IPs? Otherwise, how to use multiple jit.net.send objects most effectively, especially when many may not be active?
What about audio quality rates (using jit.catch~ and jit.release~ I imagine, unless there's a direct signal option), and how do these get sent over the network alongside the video (a different port on the same IP)? This is if I go with Max grabbing and sending the audio, but I could also just use the whiteboard software if it supports it...probably an easier option.
For recording the session for archiving, if we use a SMART Board or similar for the e-whiteboard, it can do this. But having a home-grown, much cheaper solution would be great (use a tablet and a free e-whiteboard program, plus projector), or go ahead and use a video camera with a traditional whiteboard, but this is the least desirable.
I was thinking that to ease processing on the computer that's already streaming the data, we could have a dedicated hardware recording device that grabs the video and audio from the computer directly and records onto an SD card or similar, so there's no gigantic file building up on the main computer's hard drive over an hour-long session. Anyone have thoughts on/experience with these hardware devices?
One further option for all this is to send the data to a streaming media server, then people would just go to a static page to get the media streamed to them...no patch needed at their end. I imagine this would be a lot better bandwidth-wise than trying to send from the main patch to multiple other machines, correct? Assuming the media servers are better optimized for this?
Just poking around with some ideas for now...Probably one of the already-made solutions will work best, if nothing else but for the ease of logging on and having no app to download...but I know Max can do all these things, and it would be interesting to try it out in the most optimized way possible, and compare the results.
Thanks for any thoughts on this!