EasyDarwin是一款开源流媒体平台框架,支持RTSP/HLS/HTTP流媒体协议,它包含一系列组件,目前调研的组件有EasyClient,EasyPush,EasyDarwin,EasyRTSPClient。其中:
l EasyClient:负责从多种输入源采集数据,并推送到EasyDarwin流媒体服务器。
l EasyPush:负责提供推送RTSP流的能力。
l EasyDarwin:流媒体服务器,负责提供RTSP和HLS的服务。
l EasyRTSPClient:负责接收RTSP流。
具体组件的关系图如下图所示:
如上图所示,EasyDarwin提供了一整套流媒体服务器的解决方案,它的优势是:
l 功能完备,包括采集、编码、传输、解码、播放,一整套解决方案都有提供,无需另行开发编解码方面的功能。
l 支持的输入源很丰富,包括摄像头、RTSP流、桌面截屏、音视频文件,可以提供丰富的功能。
l 对客户端开放的是标准的RTSP和HLS流,客户端可以采用EasyRTSPClient来编写,也可以用标准的RTSP或HLS客户端。
另外,作为一款还处在开发阶段的开源方案,EasyDarwin也存在着一系列问题:
l 还处在不太稳定的阶段,存在一些bug导致功能异常(经过修复,目前桌面直播功能已经可以演示,后续期待官方版本可以解决这些问题)。
l 经过测试发现客户端采用RTSP时,视频丢帧卡顿严重,清晰度也不够。而采用HLS播放时,清晰度和流畅度都较优。
l HLS是基于HTTP协议,一对一的表现尚可,一对多暂时还没有测试,如果把传输层替换成组播方式,需要熟悉HLS细节才能做替换。
以上只列出EasyDarwin的使用总结,更多的对各个组件功能的介绍,可以查阅官方文档: