CRtmpServer分析与应用

时间:2023-03-08 23:52:14
CRtmpServer分析与应用

CRtmpServer分析与应用

官方地址:http://www.rtmpd.com/

CRtmpServer是一款不错的开源流媒体服务器,用c++语言编写,跨平台。官方介绍CRtmpServer不仅支持adobe rtmp协议,还支持其它常用的协议:

  • To and from Flash (RTMP,RTMPE, RTMPS, RTMPT, RTMPTE)

  • To and from embedded devices: Android, IP cameras, Hardware encoders

  • From iOS devices

  • IP-TV using MPEG-TS and RTSP/RTCP/RTP protocols

CRtmpServer从生产环境使用的情况来看,每天都在用,从几十M到上百M的流量不等,运行几个月无宕机,CPU, 内存各方面性能指标稳定,还是比较满意的。当然官方还提示有改进的商业版的版本“EvoStream”,如果不差钱,可以买商业版,也算支持作者辛苦的付出。日常使用,开源版本已经足够。

下图1是我整理的画的CRtmpServer结构图,按层次划分。分为以下几大部分:

  • 网络层: 操作系统的网络模型相关, Linux平台epoll, FreeBSD平台kqueue, Windows平台select

  • 协议层: RTMP,SIP SDP,HTTP,TS, RTP等协议的处理

  • 媒体层: 处理媒体的codec, 如mp3, mp4, flv, aac H.264等

  • 应用层: 一系列应用,如admin, http/https, liveflv, dns等,我们也可以扩展自己的协议,如图中应用层红色模块部分扭示

CRtmpServer分析与应用

 

CRtmpServer还支持简单的负载集群,只需要把配置文件中配置主从关系,推到主上的媒体流自然从上面也有,Viewer可以分散开从从服务器上拉媒体流。如下图所示

 

CRtmpServer分析与应用