随着网络架构的变迁、媒体技术发展、音视频场景迭代,基于流媒体的技术也是推陈出新。WebRTC渐渐的成为了音视频互动场景的主流,而微信在6.5.21版本通过小程序开放了实时音视频能力,开发者们可以使用组件 < live-pusher > 实现基于 RTMP 的直播推流(录制),用于实时音视频通话上行,使用组件 < live-player > 实现基于 RTMP 的直播拉流(播放)。可以看出,微信小程序的音视频是基于 RTMP 协议的,但是微信小程序的音视频只是提供了终端上的能力,并没有实现媒体服务器,腾讯给出了2个方案,1是使用腾讯云的快直播服务,2是开发者自己实现一套媒体网关服务。方案1,需要完全使用腾讯云的服务,很显然不太适合我们这样的开发者;于是留给我们的之后方案2了。
一.什么是RTMP,什么是RTC
1.RTMP
RTMP是Real Time Messaging Protocol实时消息传输协议,是Adobe公司为Flash播放器和服务器之间开发的音视频数据传输的开放协议,一般传输flv或f4v格式的媒体流。RTMP是工作在TCP之上的协议,默认使用端口1935,能够保持长连接,并为用户提供低延时通信。RTMP是目前低延时直播应用最普遍的协议,几乎是全部编码器标准输出协议,是PC机打开浏览器就能播放(通常浏览器默认有Flash),也是全部CDN支持的最好的直播分发协议。
RTMP是基于TCP协议的,且通常只占用TCP一个通道来传输数据和指令,能保证了视频的传输质量。RTMP包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMPT封装在HTTP请求之上,可穿透防火墙;RTMPS类似RTMPT,增加了TLS/SSL的安全功能;RTMPE在RTMP的基础上增加了加密功能。
因为RTMP是基于TCP之上的,所以也存在三次握手的要求,另外RTMP还增加了C0/S0到C2/S2的三次握手。所以播放一个RTMP协议的流媒体需要经过:握手,建立连接,建立流,播放。
RTMP也有不可忽视的缺点,首先,RTMP协议太老,HEVC/H.265/AV1等视

最低0.47元/天 解锁文章
3078

被折叠的 条评论
为什么被折叠?



