最近做到云视频/云监控的项目,跟团队伙伴讨论到一个架构问题,就是将私有协议的码流数据接入到Darwin,再通过Darwin对外提供高效的RTSP/RTP服务。说到私有协议接入Darwin,我们大部分情况下会想到如何修改Darwin,如何新增Module来接入各个厂家的SDK,可能这种做法对传统的监控需求可以满足,但对于云视频/云监控、接入移动互联网,或者对于多现场、跨网络、设备地域分散的情况,这种做法有诸多弊端。
1.多现场、跨网络的情况下,流媒体接入服务器要主动连接到设备,需要进行繁琐的端口映射,遇到网络情况复杂的现场,服务器有可能根本伸展不到设备端的网络;
2.对于系统稳定性,如果按照服务器直接接入设备的方法,那么每接入一家厂商的SDK,就给服务器增加了一种不稳定因素:无论是流媒体服务器程序,还是厂家SDK自身的稳定;
3.整体架构易扩展性上,我们希望云服务内部的每一个服务单元都是内聚、高效、统一接入协议的,这就使得系统的开发、稳定、和维护变得更加方便;
于是,我们建议这样的做法:
1.独立开流媒体服务单元和设备接入单元;
2.流媒体服务器提供统一的流接入协议;
3.设备接入单元抽象化各种设备SDK的接入;
------------------------------------------------------------
本文转自www.easydarwin.org,更多开源流媒体解决方案,请关注我们的微信:EasyDarwin
本文转自www.easydarwin.org,更多开源流媒体解决方案,请关注我们的微信:EasyDarwin