流媒体系统

一套大规模的流媒体系统,由编码工具负责对音视频文件编码压缩(h.264/h.265/VP9/AAC等);由流媒体服务器负责对数据包进行容器封装(flv/ts等)以及负责网络协议打包(RTMP/HTTP等);由CDN网络进行全网分发;由播放层负责对图像进行解码显示(FLASH/VLS/VIDEO JS等)。

流媒体服务器

流媒体服务器简单来说就是直接向客户端响应流式连接(如RTMP/RTSP等),返回流媒体数据(打包在RTMP等流式协议中的flv/ts等数据)的服务器程序。流媒体服务器直接承担流媒体数据的输出,是整个流媒体系统的核心,它的功能、性能、运行支撑能力直接决定了一个大型流媒体系统的健壮程度。

下图给出了用户在请求流媒体数据的过程:
在这里插入图片描述

  • 观看者通过交互界面先请求web server;

  • webserver将这些RTMP等流式连接转到流媒体服务器;

  • 流媒体服务将对应的实时媒体数据通过RTMP等协议传送给观看者的Player。

下图以RTSP流式协议为例给出了流媒体服务器最简单的功能原理:
在这里插入图片描述

  • RTP协议主要用来实际承载实时传送的流媒体数据,包括音视频数据,以及所携带负载的时间戳,顺序号等。

  • RTCP主要完成接收者收到某个多媒体流的服务质量信息Qos,用于对服务器端的反馈。

  • RTSP(Real Time Streaming Protocol)是一种控制协议,完成对RTP中的流媒体数据进行各种状态的控制。主要包括如播放、暂停、快进、录制、结束播放等控制功能,也就是RTSP对多媒体服务器实施网络远程控制。

CDN分发网络

CDN(Content Delivery Network),即内容分发网络。简单来说CDN网络是在各地建设边缘节点,将源站的内容分发到距离用户最近的网络边缘节点上,使得用户可以就近获取所需内容,以此来解决 Internet用网高峰期拥挤的状况和跨网络运营商响应慢的问题,整体上提升了用户访问网站的响应速度。典型的CDN架构如下:
在这里插入图片描述
下图是直播CDN组网和调度基本思路:

  • 主播推送流媒体数据到流媒体服务器(源站) ,目前的直播应用一般还有上行加速过程,即主播先推送到最近的节点,节点再转推到源站;

  • 源站进行流媒体数据的分发;

  • 观众点开播放器播放某直播流,经过域名解析后向CDN请求流媒体数据;

  • CDN经过调度将该请求分配给离该观众最近的边缘节点,若节点上没有该直播流存在,则节点向源站继续请求流媒体数据;若节点上已有了该直播流,则直接响应流数据;

  • 源站响应节点的请求,将流数据分发给该边缘节点;

  • 边缘节点将流媒体数据传送给该观众的播放器。

网络协议

网络协议指的是为了让互联网中客户端与服务端之间,客户端与客户端之间进行数据交换而建立的一系列规则、标准等的集合。流媒体是在互联网上传输的特殊数据,需要有特定的规则和标准和承载,这就是我们要着重说的流媒体网络协议。

目前网络直播应用的三大主要网络协议是RTMP、HTTP-FLV、HLS,其它还有类似HLS的HDS/DASH、监控领域的RTSP,目前比较活跃的WebRTC、以及很多基于UDP的平台内的私有协议。
在这里插入图片描述

播放器

流媒体播放器实现的功能和流程与编码工具刚好相反,历经解协议,解封装,解码视音频,视音频同步几个主干环节。
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值