音视频学习之——RTMP协议

RTMP简介 

RTMP( Real Time g Messaging Protocol)是一个应用层协议,主要用于在Flash player和服务器之间传输视频、音频、控制命令等内容。该协议的突出优点是: 低延时。 

RTMP基于TCP, 默认使用端口1935。

RTMP推拉流常用命令

推流: ffmpeg -re -i /doc/filename.mp4 -c copy -f flv rtmp://192.168.1.1/live/livestream
拉流: ffplay rtmp://202.69.69.180:443/webcast/bshdlive-pc

RTMP播放基本流程

推流流程

播流流程

Step 1:TCP三次握手

RTMP是基于TCP的应用层协议。
通过TCP三次握手,可实现RTMP客户端与RTMP服务器的指定端口(默认端口为1935)建立一个可靠的网络连接。
这里的网络连接才是真正的物理连接。
完成了三次握手,客户端和服务器端就可以开始传送数据。

经过三次握手,客户端与服务器端1935端口建立了TCP Connection。

Step 2:RTMP握手

与其叫RTMP握手,其实实质上起到的是验证的作用。
实际工程中RTMP握手的基本流程通常如下:

RTMP握手主要分为: 简单握手复杂握手

RTMP握手---简单握手

简单握手中C1和S1从第9个字节开始都是随机数。
S2是C1的复制。
C2是S1的复制。

RTMP握手---复杂握手

相对于简单握手,复杂握手主要是增加了更严格的验证。
主要是将简单握手中1528Bytes随机数的部分平均分成两部分,一部分764Bytes存储public key(公共密钥),另一部分764Bytes存储digest(密文,32字节)
另外,复杂握手还有一个明显的特征就是 : Version 部分不为0,服务器端可根据这个来判断是否简单握手或复杂握手

 

未完待续。。。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值