SRS的混合服务SrsHybridServer—SRS源码分析

SrsHybridServer 顾名思义,就是混合服务,目前他里面有 3 个 Server 服务,分别是 ServerSrtServerRtcServer,如下:

全局变量 _srs_hybrid 就是 SrsHybridServer 的实例,_srs_hybrid 实际上是一个管理器,register_server() 可以注册外部的 Adapter 模块进去。

_srs_hybrid 执行 initialize 初始化方法的时候,就会同时遍历所有的 Adapter 模块,执行他们的 initialize 初始化方法。

_srs_hybrid 执行 run 方法的时候,就会同时遍历所有的 Adapter 模块,执行他们的 run 方法。

我也不知道这种设计模式叫什么名称,如果有读者知道,请告知我补充上去。SrsHybridServer 的整个逻辑是比较简单的,流程图如下:


下面简单介绍一下 3 个 Server 服务的功能。

  1. Server,这个主要是 RTMP,HTTP 服务的 Server。但是 WebRTC over TCP 的功能也在这里
  2. RtcServer,这是 WebRTC UDP 流媒体服务器
  3. SrtServer,这是 SRT 流媒体服务器

本文是《 SRS原理 》一书中的文章,如需观看更多内容,请购买本书。

相关推荐
音视频牛哥14 小时前
《“人工智能+”行动意见》深度解析:从智能红利到产业落地,直播模块的技术价值与应用路径
人工智能·计算机视觉·音视频开发
一支鱼2 天前
基于 Node.js 的短视频制作神器 ——FFCreator
前端·node.js·音视频开发
AJi3 天前
编解码原理(一):H264
ffmpeg·音视频开发·视频编码
重启的码农6 天前
云游戏技术之高速截屏和GPU硬编码 (5) 色彩空间转换器 (RGBToNV12)
c++·云计算·音视频开发
音视频牛哥6 天前
RTSP流端口占用详解:TCP模式与UDP模式的对比
音视频开发·视频编码·直播
重启的码农6 天前
云游戏技术之高速截屏和GPU硬编码 (4) NVENC 硬件编码 (NvEncoderD3D11)
c++·云计算·音视频开发
重启的码农6 天前
云游戏技术之高速截屏和GPU硬编码 (3) 桌面复制接口 (Desktop Duplication API)
c++·云计算·音视频开发
重启的码农7 天前
云游戏技术之高速截屏和GPU硬编码 (1) 捕获-预处理-编码流水线
c++·云计算·音视频开发
重启的码农7 天前
云游戏技术之高速截屏和GPU硬编码 (2) 应用程序主控
c++·云计算·音视频开发
不午睡的探索者9 天前
音视频开发入门:FFmpeg vs GStreamer
c++·github·音视频开发