本文梳理了RTMP协议的基本概念
访问 个人博客了解更多
直播行业的兴起,带动了音视频相关技术的发展,本文介绍 RTMP 协议,让人快速理解它。看下面一张视频直播的大致架构图,找找 RTMP 的位置,明白 RTMP 扮演的角色与重要性html
在上面,RTMP 在视频直播场景的架构中,担任了重要的"血管"般的角色java
RTMP(Real Time Messaging Protocol)实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的私有协议。nginx
RTMP是一个应用层协议,有多路复用的特色,传输内容有视频、音频、控制命令git
RTMP 在音视频相关的协议中,它的突出特色是:链接可靠、低延时github
RTMP 是基于TCP的二进制协议,(顺便一提,http为普遍应用的明文协议之一)shell
RTMP 默认端口 1935后端
基于 TCP 的好处缓存
若是网络条件差时,因为TCP存在重传的机制,因此致使RTMP存在累计延时。当网络状态差时,服务器会将包缓存起来,致使累积的延迟,待网络情况好了,就一块儿发给客户端。安全
解决 RTMP 累计延时的弊端的方法:服务器
rtmp 有三个变种:
穿越防火墙的意思是,可能出于安全考虑,互联网中某一些网络(好比小区、校园网)的防火墙限制了http/https之外的协议访问,只容许访问外网ip的 80 端口与 443 端口,或者还容许其余协议,而明文协议的 rtmp 默认端口 1935 不在防火墙开放访问的端口中,没法创建链接。出于现实考虑,使用 http/https 封装 rtmp 协议,加强兼容性。
如下开源项目: