zoukankan      html  css  js  c++  java
  • RTSP、RTMP、HTTP协议

    一、异同
    1、RSTP、RTMP、HTTP协议共同点
    RTSP RTMP HTTP都是用在应用层。
    理论上这三种协议都可以做直播和点播,但直播一般用RTSP和RTMP点播用HTTP。
    2、RSTP、RTMP、HTTP协议区别
    HTTP将数据作为文件处理,所以HTTP不是流媒体协议,RTMP和RTSP是流媒体协议。
    RTMP是Adobe的私有协议,未完全公开,RTSP和HTTP是共有协议。
    RTMP一般传输flv,f4v格式流,RTSP传输ts,MP4格式流,HTTP没有特定的流。
    RTSP一般需要2-3个通道,数据和命令通道分开,RTMP和HTTP在一个通道上传输命令和数据。
    二、RTSP
    RTSP被用于建立的控制媒体流的传输,它为多媒体服务扮演“网络远程控制”的角色。尽管有时可以把RTSP控制信息和媒体数据流交织在一起传送,但一般情况RTSP本身并不用于转送媒体流数据。媒体数据的传送可通过RTP/RTCP等协议来完成。

    RTSP操作流程
    1. 客户端连接到流服务器,查询服务器可用方法
    2. 发送一个RTSP描述命令(DESCRIBE),流服务器通过一个SDP描述来进行反馈,反馈信息包括流数量、媒体类型等信息。

    3. 客户端再分析该SDP描述,并为会话中的每一个流发送一个RTSP建立命令(SETUP),RTSP建立命令告诉服务器客户端用于接收媒体数据的端口。

    4. 流媒体连接建立完成后,客户端发送一个播放命令(PLAY),服务器就开始在传送媒体流(RTP包)到客户端。在播放过程中客户端还可以向服务器发送命令来控制快进、快退和暂停等。

    5. 最后,客户端可发送一个终止命令(TERADOWN)来结束流媒体会话。三、RTMP

    参考网页:http://blog.csdn.net/caoshangpa/article/details/52872146

    RTMP协议是一个互联网五层体系结构中应用层的协议。RTMP协议中基本的数据单元称为消息(Message)。当RTMP协议在互联网中传输数据的时候,消息会被拆分成更小的单元,称为块(Chunk)。

    RTMP操作流程
    播放一个RTMP协议的流媒体需要经过以下几个步骤:握手,建立连接,建立流,播放。

    1. 握手
    握手开始于客户端发送C0、C1块。服务器收到C0或C1后发送S0和S1。
    当客户端收齐S0和S1后,开始发送C2。当服务器收齐C0和C1后,开始发送S2。
    当客户端和服务器分别收到S2和C2后,握手完成。


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

    3.建立网络流(NetStream)
    客户端发送命令消息中的“创建流”(createStream)命令到服务器端。
    服务器端接收到“创建流”命令后,发送命令消息中的“结果”(_result),通知客户端流的状态。

    4.播放(Play)
    客户端发送命令消息中的“播放”(play)命令到服务器。
    接收到播放命令后,服务器发送设置块大小(ChunkSize)协议消息。
    服务器发送用户控制消息中的“streambegin”,告知客户端流ID。
    播放命令成功的话,服务器发送命令消息中的“响应状态” NetStream.Play.Start & NetStream.Play.reset,告知客户端“播放”命令执行成功。
    在此之后服务器发送客户端要播放的音频和视频数据。


    四、HTTP
    特点
    支持客户/服务器模式。
    简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
    灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
    无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
    无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
    URL
    HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:
    http://host[“:”port][abs_path]

    http表示要通过HTTP协议来定位网络资源;
    host表示合法的Internet主机域名或者IP地址;
    port指定一个端口号,为空则使用缺省端口80;
    abs_path指定请求资源的URI;
    如果URL中没有给出abs_path,那么当它作为请求URI时,必须
    以“/”的形式给出,通常这个工作浏览器自动帮我们完成。

    eg:
    1、输入:www.guet.edu.cn
    浏览器自动转换成:http://www.guet.edu.cn/
    2、http:192.168.0.116:8080/index.jsp
    ---------------------
    作者:夏中伟
    来源:CSDN
    原文:https://blog.csdn.net/qq_25005909/article/details/79098152
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    AtCoder Regular Contest 093
    AtCoder Regular Contest 094
    G. Gangsters in Central City
    HGOI 20190711 题解
    HGOI20190710 题解
    HGOI 20190709 题解
    HGOI 20190708 题解
    HGOI20190707 题解
    HGOI20190706 题解
    HGOI 20190705 题解
  • 原文地址:https://www.cnblogs.com/ostin/p/9900918.html
Copyright © 2011-2022 走看看