单个实时资源,多个客户端连接



我正在做一个个人项目,以进一步加深我自己的教育。

我想了解流媒体服务器通常使用哪种模型在有限的资源上实现最大性能,同时连接到单个共享资源,但将其发送到多个资源。

例如:假设我们有一个具有固定带宽量(1 mb/s)的网络摄像头。 我们这个网络摄像头的观众数量不定。 如果摄像机可以生成使其上游功能饱和的高质量视频,我们将限制为 1 个连接。 但我们希望满足所有这些连接请求。 所以我们把一个流媒体服务器放在两者之间。

他们通常使用什么方法来多流此单个会话? 我一直在研究共享内存,消息队列。

我已经使用二进制发布-订阅消息队列成功编写了一个简单的多连接服务器,但我正在寻找解决此问题的其他解决方案。 不是因为它不起作用,而是因为我想知道其他人是怎么做到的。

我的问题是,流媒体服务器(FFServer,Red5,WMS,FMS等)使用哪些典型的编程方法连接到单个实时资源并将其联合到多个客户端。

这与语言无关,我对概念比实现更感兴趣。

Adobe Flash使用一种P2P技术。您可以在使用 CNN 网站的直播时观看它。经过一段时间的观察,你可以看到你和下游是一样的。任务管理器中还有一个新进程,称为"omnixyz-something"。此过程管理您的流向其他观看者的 P2P 转发。您可以在此处看到有关该概念的一些漂亮的图形:http://labs.adobe.com/technologies/cirrus/虽然我有点怀疑目前Adobe的RTMFP是否像第二个图表显示的那样灵活。该图很好,但从技术上讲,我认为单个查看器在"播种机"网络中连接的节点数量是有限的。因此,您只将流转发给 1,2,3 人,而不是如图所示的"无限"。

最新更新