SRS的混合服务SrsHybridServer—SRS源码分析
作者:罗上文,微信:Loken1,公众号:FFmpeg弦外之音
SrsHybridServer
顾名思义,就是混合服务,目前他里面有 3 个 Server 服务,分别是 Server
,SrtServer
,RtcServer
,如下:
全局变量 _srs_hybrid
就是 SrsHybridServer
的实例,_srs_hybrid
实际上是一个管理器,register_server()
可以注册外部的 Adapter
模块进去。
_srs_hybrid
执行 initialize
初始化方法的时候,就会同时遍历所有的 Adapter
模块,执行他们的 initialize
初始化方法。
_srs_hybrid
执行 run
方法的时候,就会同时遍历所有的 Adapter
模块,执行他们的 run
方法。
我也不知道这种设计模式叫什么名称,如果有读者知道,请告知我补充上去。SrsHybridServer
的整个逻辑是比较简单的,流程图如下:
下面简单介绍一下 3 个 Server 服务的功能。
Server
,这个主要是 RTMP,HTTP 服务的 Server。但是 WebRTC over TCP 的功能也在这里RtcServer
,这是 WebRTC UDP 流媒体服务器SrtServer
,这是 SRT 流媒体服务器