CDN是一个服务型的公司,也就是服务 技术。
一般的说法是,CDN的技术只是扯逼用的,服务才是一切。在技术没有差异化的图文时代,用运维和客服就可以搞定一切;在视频能造成技术差异化的时代,还行得通吗?
不必用嘴巴打架,以下功能要求,是结合在CDN两年的工作经验,还有最近这两年所听到的各家CDN还有各种客户对开源软件提的要求。对于一个流媒体集群系统,也就是cdn系统,能否支持以下业务:
- 客户送入一个rtmp实时流,譬如秀场,游戏,会议,广电等等。
- 集群的源站输出hls,适配移动端,包括苹果和安卓。并且支持hls的cdn加速。
- 播放器播放边缘的rtmp或http flv实时流,延迟都在3至5秒内。
- 能输出http mp3流,适配某些安卓机型,不支持纯音频hls。
- 支持多源站,也就是客户可以给不同的源站送同一个rtmp流。能分发hls和rtmp,以及http flv。
- 对于单源站,集群能支持上层rtmp热备,防止上层节点故障。
- 对于多源站,集群能支持rtmp,http flv还有hls热备。
- 对于实时流的故障切换时间不超过1秒,就是客户端在某个源站或上层挂掉时,边缘在1秒内就切另外上层或源站。对于无响应切换不超过30秒,譬如拔掉网线。
- 单机性能要求在7000并发以上,集群内回源带宽不超过两路,这个比较省钱。
- 对于上行推流加速,推流时卡顿时,能测量推流客户端到边缘节点的带宽,选择合适的节点。
- 输出的hls切片支持p2p功能,能对接第三方p2p,节约成本。
- 有各种回调,支持对接第三方的直播流转码,收录系统。
- 支持reload,能在系统改变配置时不影响在线用户。
- http flv流,在编码器没有推流时,播放器能连接到边缘,而不是404。
- http flv流的延迟和热备要求,和rtmp一样。
- 其他可选功能:支持hds分发(HDS国内还是用得很少),rtsp和mpegts over udp输入。
当然,对于某个客户可能不关心是否CDN有这16把大刷子。客户关心的在于能否解决问题,也就是除了功能之外,解决问题的响应速度。
对于解决问题的响应速度,视频更加需要技术能力。譬如常见的卡,花屏,断流,爆音,我还没有见过哪个运维和客服能搞定,甚至研发能搞定的都不多。
在流媒体领域,只见过运维和客服赞研发牛逼,没有见过研发赞运维和客服牛逼到能搞定编码问题。当然,我的意思也并非运维和客服傻逼,别那么极端;我只是讲对于流媒体的客户的问题,可能更偏研发一些。
SRS产品规划:https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Product
SRS功能列表:https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Features
SRS产品对比(1.0):https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Compare