I'm working on a personal project to further my own education.
I want to find out what model streaming media servers typically use to achieve maximum performance on limited resources while connecting to a single shared resource but sending it to multiple resource.
For example: Let's say we have a web camera that has fixed amount of bandwidth (1 mb/s). We have a variable number of viewers of this webcam. If the camera can produce high quality video that will saturate it's upstream capability, we would be limited to 1 connection. But we want to fulfill all these connection requests. So we put a streaming media server in between.
What methodology do they typically use to multistream this single session? I've been investigating shared memory, messaging queues.
I've successfully written a simple multiconnection server using a binary pub-sub message queue, but I'm looking for other solutions to this problem. Not because it isn't working, but because I want to know how others do it.
My question is, what are the typical programming methodoligies utilized by streaming media servers (FFServer, Red5, WMS, FMS, etc.) to connect to a single realtime resource and syndicate that to multiple clients.
This is language agnostic, I'm more interested in the concepts than the implementation.