一、一对一直播系统开发之什么是推流
一对一直播系统开发中的推流环节其实就是说将前期编码打包封装好的视频和音频传输到服务器的过程。也就是将现场收集到的音视频信号传到网络的一个过程。值得注意的一点是推流这个环节对网络的要求是非常严格的,网络要足够的稳定,如果网络环境较弱,最终就会导致呈现出来的直播效果差,就像遇到缓冲延时、卡顿等情况。
二、一对一直播系统开发之多种类推送协议
在目前一对一直播系统开发行业中,会接触到下面这几种推送协议:
1. RTMP协议
RTMP是目前行业常用到的流媒体传输协议,RTMP是指Real-Time Messaging Protocol实时消息传送协议。RTMP协议为了维持稳定连续传递,避免单次传输数据量问题,采用了传输层封包,数据流切片的实现方式。
RTMP是一种用来进行实时数据通信的网络传输协议,是Adobe Systems公司为Flash播放器对应的音视频flv封装格式和服务器之间音频、视频和数据传输开发的协议。
RTMP具有延时性低、稳定、兼容性强、高穿透的特点,经常被用作于主播推流方稳定传输的需求。
RTMP 协议是以分组形式传送数据包。一个完整的数据块包含两个部分:Chunk Header 和 Chunk Data,这两者组合在一起,构成了一个有效的消息类型。这就是RTMP的传输消息块的组成。
2. WebRTC协议
一对一直播系统开发中对于网络协议来说,需要做的大概就是建立连接、传输数据这两件事。
WebRTC是Web网页实时通信的缩写,支持传输音视频数据,是API和协议,是一个支持网页浏览器进行实时视频对话和语音对话的API。
WebRTC涉及到传输音视频数据相关的协议有:UDP、DTLS、RTP/SRTCP。在一对一直播系统开发中WebRTC更多的是应用在各种视频会议中。像对比于RTMP来说,它在弱网环境下的空间优化比较大,支持点对点的通信,降低整体的延迟。但是它的缺点也要注意,目前传统的CDN中还没有类似的服务提供。