音视频推流同步
类图
协议
传输协议 : 长连接(断开重连) 短连接(三次握手,开销大)
Rtmp
优点:实时协议,收到数据,立刻转发,延时小,主流CDN支持
缺点:1.基于TCP协议相对UDP开销大(TCP面向字节拼接,头部复杂) 2.有序校验次序 3.TCP每发送的数据包,对方都要确认
UDP 是一个面向报文(报文可以理解为一段段的数据)的协议。意思就是 UDP 只是报文的搬运工,不会对报文进行任何拆分和拼接操作,也会校验包对不对,但不管是否收到。因此 1.无连接 2.不可靠 3.没有拥塞控制
- 在发送端,应用层将数据传递给传输层的 UDP 协议,UDP 只会给数据增加一个 UDP 头标识下是 UDP 协议,然后就传递给网络层了
- 在接收端,网络层将数据传递给传输层,UDP 只去除 IP 报文头就传递给应用层,不会任何拼接操作
HLS :数据包一个一个发,延时大
Rtmp协议类型
- 工作在TCP之上的“明文协议”(抓包时,可抓出整个通信协议的过程,https就是加密的,但也可破解漏洞),使用端口1935
- RtmpT封装在Http请求之中,可穿越防火墙
- RtmpS封装RtmpT,但使用的是Https连接
握手:不仅TCP三层握手,本身Rtmp也有握手
推流
准备工作以下为centOS
yum install wget cmake
yum install openssl-devel #头文件和静态库
ubuntu下会报错No package libssl-dev available.