RTSP

什么是RTSP?
Real-Time Stream Protocol
用于建立的控制媒体流的传输,本身并不用于转送媒体流数据。媒体数据的传送通过RTP/RTCP等协议来完成。

具体过程:
客户端:OPTION,查询服务器端可用方法
服务器:回应服务器提供的可用的方法
客户端:DESCRIBE,发起DESCRIBE请求,得到媒体描述信息
服务器:回应一个SDP会话描述文件,描述要发送的媒体内容,包括视频音频的信息。
客户端:SETUP请求,建立RTSP会话,并确定传输模式。
服务器:响应SETUP请求,当使用TCP的时候默认只使用TCP的554端口,当使用UDP的时候分配两个UDP端口分别发送RTP数据和RTCP信息。(在防火墙比较复杂的场景下,最好是把传输模式设置为TCP)
客户端:PLAY,请求开始传送数据
服务器:响应并开始发送RTP数据
客户端:TEARDOWN,提醒服务器停止传输
服务器:响应Close

数据包:
就是RTP数据包。

它的缺点是什么?
需要插件播放。

什么是RTMP?
Real Time Messaging Protocol
Adobe Systems公司为Flash Player和服务器之间音视频和数据传输开发的私有协议。

具体过程:

HandShake:
客户端发送C0、C1块
服务器收到C0或C1后发送S0和S1
客户端收齐S0和S1后,发送C2。服务器收齐C0和C1后,发送S2,
客户端和服务器分别收到S2和C2后,握手完成。

NetConnection:
客户端:发送命令消息中的连接(connect),建立连接
服务器:发送确认窗口大小协议(Window Acknowledgement Size)消息到客户端,同时连接到连接命令中提到的应用程序。
服务器:发送设置带宽协议(Set Peer Bandwidth)消息。
客户端:处理设置带宽协议消息后,发送确认窗口大小(Window Acknowledgement Size)协议消息。
服务器:发送用户控制消息中的“流开始”(Stream Begin)消息。
服务器:发送命令消息中的“结果”(_result),通知客户端连接的状态

NetStream:
客户端:发送命令消息中的“创建流”(createStream)
服务器:发送命令消息中的“结果”(_result),通知客户端流的状态。

Play:
客户端:发送命令消息中的“播放”(play)命令
服务器:发送设置块大小(ChunkSize)协议消息。
服务器:发送用户控制消息中的“streambegin”,告知客户端流ID。
服务器:播放命令成功的话,发送命令消息中的“响应状态”onStatus-play reset和 onStatus-play start,告知客户端“播放”命令执行成功。

数据包:
基本的数据单元称为消息(Message),传输数据的时候,消息会被拆分成更小的单元,称为消息块(Chunk)。Message Type ID在1-7的消息用于协议控制,这些消息一般是RTMP协议自身管理要使用的消息,用户一般情况下无需操作其中的数据。Message Type ID为8,9的消息分别用于传输音频和视频数据。Message Type ID为15-20的消息用于发送AMF编码的命令,负责用户与服务器之间的交互,比如播放,暂停等等。

他的优点是什么?
他爹是adobe;
工作在TCP之上,默认使用1935端口;

rtsp转rtmp的思路
RTSP直播流的读取。
H.264和AAC编码数据的分析处理。
RTMP数据包封装。
RTMP推送协议。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值