现在的位置: 首页 > 综合 > 正文

本人对RTP、RTCP、RTSP这三个协议的实现的宏观理解

2013年08月13日 ⁄ 综合 ⁄ 共 608字 ⁄ 字号 评论关闭

 公司要求实现一个视频流媒体传输的平滑功能:
    视频服务器向客户端传输实时视频流的时候,由于I帧的大小可能比P帧大几倍,(一般来说每50帧就会出现一个I帧),
这样当从传输P帧转到传输I帧是,那一刻的码率突然间增大,这样会造成网络堵塞。流平滑处理就是要解决这个问题。
在解决这个问题的过程中一般会用到RTP、RTCP、RSTP这三个协议,网上对这三个东西的文档实在太多了,而且介绍这
三个东西的时候总是交叉介绍,比较难理解,下面是本人对这三个协议的宏观理解:

以传输视频流为例:
RTP:  为传输视频流提供时间信息(时间信息大概是指某一个视频数据包的发出时间和收到时间之类),还有提供这些视频
      包传输的同步(就是说控制视频包发送的前后时间顺序)
     
RTCP:根据网络状况(例如网络抖动和网络拥塞等)和客户端状况(例如客户端的视频缓冲区存储情况)来控制视频流传输的速率。

RSTP:控制视频流传输的动作,这个不好解析。举个例子,像PPSTREAM这种软件,你在软件上点击了"播放"以后,该软件就
      通过RSTP协议把动作发送给服务器,服务器收到该动作以后就开始传输视频流。
     
这三个协议之间的某个关系:
    RTP协议把RTP头加入视频流数据(下称RTP视频流)然后通过UDP协议发送出去,RTCP协议控制RTP视频流的发送速率,RSTP
协议控制RTP视频流的发送动作(开始、暂停、停止等等)
     

抱歉!评论已关闭.