• ffmepg,视频流,Darwin Streaming Server, EasyDarwin


    昨天产品说要做短视频,吓我一跳~~~

    前几天看文章,说有几个开源软件喂饱了一大众软件公司的帖子,回头转贴一下。

    结合这个,也学习了一些视频相关的东西。

    协议:

    https://zh.wikipedia.org/wiki/%E5%8D%B3%E6%99%82%E4%B8%B2%E6%B5%81%E5%8D%94%E5%AE%9A

    实时流协议 维基百科,自由的百科全书 跳到导航跳到搜索 实时流协议(Real Time Streaming Protocol,RTSP)是一种网络应用协议,专为娱乐和通信系统的使用,以控制流媒体服务器。 该协议用于创建和控制终端之间的媒体会话。 媒体服务器的客户端发布VCR命令,例如播放,录制和暂停,以便于实时控制从服务器到客户端(视频点播)或从客户端到服务器(语音录音)的媒体流。 流数据本身的传输不是RTSP的任务。大多数RTSP服务器使用实时传输协议(RTP)和实时传输控制协议(RTCP)结合媒体流传输。 然而,一些供应商实现专有传输协议。例如,RealNetworks公司的RTSP服务器软件也使用RealNetworks的专有实时数据传输(RDT)。 RTSP由RealNetworks公司,Netscape公司 [1] 和哥伦比亚大学开发,第一稿于1996年提交给IETF[2]。 由互联网工程任务组(IETF)的多方多媒体会话控制工作组(MMUSIC WG)进行了标准化,并于1998年发布为RFC 2326。 [3] RTSP 2.0 于2016年发布为RFC 7826,作为RTSP 1.0的替代品。 RTSP 2.0基于RTSP 1.0,但除了基本的版本协商机制之外不向后兼容。 协议指令 虽然在某些方面与HTTP类似,RTSP定义了控制多媒体播放控制顺序。 虽然HTTP是无状态的,但RTSP具有状态; 当需要跟踪并发会话时使用标识符。像HTTP一样,RTSP使用TCP来维护端到端连接, 而大多数RTSP控制消息由客户端发送到服务器,一些命令沿着另一个方向(即从服务器到客户端)传播。 这里提供了基本的RTSP请求。 一些典型的HTTP请求,如OPTIONS请求也可用。 默认传输端口为554[3] ,该端口同时应用于TCP和UDP,但后者很少用于控制请求。

    https://www.leixue.com/ask/what-is-rtsp
    RTSP是什么 FanlyFanly 问答
    2020-09-21 04:42:41阅读(1609) 实时流协议(RTSP)是一种网络应用协议,专为娱乐和通信系统使用,以控制流媒体服务器。
    该协议用于创建和控制终端之间的媒体会话。媒体服务器的客户端发布VCR命令,例如播放,录制和暂停,以便实时控制服务器到客户端或客户端到服务器的媒体流。 实时流协议(RTSP)是一种网络应用协议,专为娱乐和通信系统的使用,以控制流媒体服务器。
    该协议用于创建和控制终端之间的媒体会话。媒体服务器的客户端发布 VCR 命令,例如播放,录制和暂停,以便于实时控制从服务器到客户端或从客户端到服务器的媒体流。 RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是 TCP
    /IP 协议体系中的一个应用层协议,
    由哥伦比亚大学、网景和 RealNetworks 公司提交的 IETF RFC 标准。该协议定义了一对多应用程序如何有效地通过 IP 网络传送多媒体数据。
    RTSP 在体系结构上位于 RTP 和 RTCP 之上,它使用 TCP 或 UDP 完成数据传输。HTTP 与 RTSP 相比,HTTP 请求由客户机发出,服务器作出响应;
    使用 RTSP 时,客户机和服务器都可以发出请求,即 RTSP 可以是双向的。 RTSP 是用来控制声音或影像的多媒体串流协议,并允许同时多个串流需求控制,传输时所用的网络通讯协定并不在其定义的范围内,
    服务器端可以自行选择使用 TCP 或 UDP 来传送串流内容,它的语法和运作跟 HTTP
    1.1 类似,但并不特别强调时间同步,所以比较能容忍网络延迟。
    而前面提到的允许同时多个串流需求控制(Multicast),除了可以降低服务器端的网络用量,更进而支持多方视讯会议(Video Conference)。
    因为与 HTTP1.1 的运作方式相似,所以代理服务器〈Proxy〉的快取功能〈Cache〉也同样适用于 RTSP,并因 RTSP 具有重新导向功能,可视实际负载情况来转换提供服务的服务器,
    以避免过大的负载集中于同一服务器而造成延迟。 其是 TCP
    /IP 协议体系中的一个应用层协议,该协议定义了一对多应用程序如何有效地通过 IP 网络传送多媒体数据。
    RTSP 在体系结构上位于 RTP 和 RTCP 之上,它使用 TCP 或 UDP 完成数据传输。HTTP 与 RTSP 相比,
    HTTP 传送 HTML,而 RTSP 传送的是多媒体数据。 RTSP 是基于文本的协议,采用 ISO10646 字符集,使用 UTF
    -8 编码方案。
    行以 CRLF 中断,包括消息类型、消息头、消息体和消息长。
    但接收者本身可将 CR 和 LF 解释成行终止符。基于文本的协议使其以自描述方式增加可选参数更容易,接口中采用 SDP 作为描述语言。 RTSP 是应用级协议,控制实时数据的发送。
    RTSP 提供了一个可扩展框架,使实时数据,如音频与视频的受控点播成为可能。数据源包括现场数据与存储在剪辑中数据。
    该协议目的在于控制多个数据发送连接,为选择发送通道,如 UDP、组播 UDP 与 TCP,提供途径,并为选择基于 RTP 上发送机制提供方法。 RTSP 建立并控制一个或几个时间同步的连续流媒体。尽管连续媒体流与控制流交换是可能的,通常它本身并不发送连续流。
    换言之,RTSP 充当多媒体服务器的网络远程控制。RTSP 连接没有绑定到传输层连接,如 TCP。
    在 RTSP 连接期间,RTSP 用户可打开或关闭多个对服务器的可传输连接以发出 RTSP 请求。
    此外,可使用无连接传输协议,如 UDP。RTSP 流控制的流可能用到 RTP,但 RTSP 操作并不依赖用于携带连续媒体的传输机制。 协议支持的操作如下: (
    1)从媒体服务器上检索媒体:用户可通过 HTTP 或其它方法提交一个演示描述。如演示是组播,演示式就包含用于连续媒体的组播地址和端口。
    如演示仅通过单播发送给用户,用户为了安全应提供目的地址。
    2)媒体服务器邀请进入会议:媒体服务器可被邀请参加正进行的会议,或回放媒体,或记录其中一部分,或全部。
    这种模式在分布式教育应用上很有用,会议中几方可轮流按远程控制按钮。
    3)将媒体加到现成讲座中:如服务器告诉用户可获得附加媒体内容,对现场讲座显得尤其有用。
    如 HTTP/1.1 中类似,RTSP 请求可由代理、通道与缓存处理。


    C->S: ANNOUNCE rtsp://example.com/media.mp4 RTSP/1.0
          CSeq: 7
          Date: 23 Jan 1997 15:35:06 GMT
          Session: 12345678
          Content-Type: application/sdp
          Content-Length: 332
    
          v=0
          o=mhandley 2890844526 2890845468 IN IP4 126.16.64.4
          s=SDP Seminar
          i=A Seminar on the session description protocol
          u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps
          e=mjh#isi.edu (Mark Handley)
          c=IN IP4 224.2.17.12/127
          t=2873397496 2873404696
          a=recvonly
          m=audio 3456 RTP/AVP 0
          m=video 2232 RTP/AVP 31
    
    S->C: RTSP/1.0 200 OK
          CSeq: 7
    
    TEARDOWN 停止发布流请求
    TEARDOWN 请求用于终止会话。它停止所有媒体流,并释放所有与会话相关的数据在服务器上。
    C->S: TEARDOWN rtsp://example.com/media.mp4 RTSP/1.0
          CSeq: 8
          Session: 12345678
    
    S->C: RTSP/1.0 200 OK
          CSeq: 8
    
    GET_PARAMETER 获取参数请求
    GET_PARAMETER 请求检索在URI中指定的呈现或流的参数的值。答复和回复的内容留给实施。没有实体的GET_PARAMETER可能用于测试客户端或服务器活动(“ping”)。
    S->C: GET_PARAMETER rtsp://example.com/media.mp4 RTSP/1.0
          CSeq: 9
          Content-Type: text/parameters
          Session: 12345678
          Content-Length: 15
    
          packets_received
          jitter
    
    C->S: RTSP/1.0 200 OK
          CSeq: 9
          Content-Length: 46
          Content-Type: text/parameters
    
          packets_received: 10
          jitter: 0.3838
    
    SET_PARAMETER 设置参数请求
    SET_PARAMETER 此方法请求设置由URI指定的演示文稿或流的参数值。
    C->S: SET_PARAMETER rtsp://example.com/media.mp4 RTSP/1.0
          CSeq: 10
          Content-length: 20
          Content-type: text/parameters
    
          barparam: barstuff
    
    S->C: RTSP/1.0 451 Invalid Parameter
          CSeq: 10
          Content-length: 10
          Content-type: text/parameters
    
          barparam
    
    REDIRECT 重定向请求
    REDIRECT 请求通知客户端它必须连接到另一个服务器位置。它包含强制性头文件位置,表示客户端应发出该URL的请求。它可能包含参数Range,它指示重定向何时生效。如果客户端希望继续发送或接收此URI的媒体,则客户端必须向指定的主机发出针对当前会话的TEARDOWN请求和新会话的SETUP。
    S->C: REDIRECT rtsp://example.com/media.mp4 RTSP/1.0
          CSeq: 11
          Location: rtsp://bigserver.com:8001
          Range: clock=19960213T143205Z-
    
    嵌入式(交错式)二进制数据
    某些防火墙设计和其他情况可能会强制服务器交叉RTSP方法和流数据。通常应避免这种交错,除非有必要,因为它会使客户端和服务器操作复杂化,并增加额外的开销。交叉二进制数据只能在RTSP通过TCP传输时使用。诸如RTP数据包之类的流数据由ASCII码符号(24个十六进制)封装,后跟一个字节的信道标识符,后面是封装二进制数据的长度,以二进制字节为单位,以网络字节顺序排列。流数据紧随其后,没有CRLF,但包括上层协议头。每个$块只包含一个上层协议数据单元,例如一个RTP包。
    C->S: SETUP rtsp://example.com/media.mp4 RTSP/1.0
          CSeq: 3
          Transport: RTP/AVP/TCP;interleaved=0-1
    
    S->C: RTSP/1.0 200 OK
          CSeq: 3
          Date: 05 Jun 1997 18:57:18 GMT
          Transport: RTP/AVP/TCP;interleaved=0-1
          Session: 12345678
    
    C->S: PLAY rtsp://example.com/media.mp4 RTSP/1.0
          CSeq: 4
          Session: 12345678
    
    S->C: RTSP/1.0 200 OK
          CSeq: 4
          Session: 12345678
          Date: 05 Jun 1997 18:59:15 GMT
          RTP-Info: url=rtsp://example.com/media.mp4;
          seq=232433;rtptime=972948234
    
    S->C: $\000{2 byte length}{"length" bytes data, w/RTP header}
    S->C: $\000{2 byte length}{"length" bytes data, w/RTP header}
    S->C: $\001{2 byte length}{"length" bytes  RTCP packet}
    

    速率适配[编辑]

    使用RTP和RTCP的RTSP允许实现速率适配。[4]

    已经成功实现的[编辑]

    服务端[编辑]

    客户端[编辑]

    //////////////////////////////////////////////////////////////////////////////////////////////////////////

    如何实现将MP4文件推送到流媒体开源平台EasyDarwin以实现直播流分发及录像机存储?
    
    https://blog.csdn.net/easydarwin/article/details/108879744


    EasyDarwin
    https://github.com/EasyDarwin/EasyDarwin/releases

    EasyDarwin简单搭建
    http://wjhsh.net/zgqbky-p-12177207.html

    ffmepg
    https://ffmpeg.org/download.html#build-linux

    实时流协议[编辑]

    维基百科,自由的百科全书
     
     
     
    跳到导航跳到搜索

    实时流协议(Real Time Streaming Protocol,RTSP)是一种网络应用协议,专为娱乐和通信系统的使用,以控制流媒体服务器。该协议用于创建和控制终端之间的媒体会话。媒体服务器的客户端发布VCR命令,例如播放,录制和暂停,以便于实时控制从服务器到客户端(视频点播)或从客户端到服务器(语音录音)的媒体流。

    流数据本身的传输不是RTSP的任务。大多数RTSP服务器使用实时传输协议(RTP)和实时传输控制协议(RTCP)结合媒体流传输。然而,一些供应商实现专有传输协议。例如,RealNetworks公司的RTSP服务器软件也使用RealNetworks的专有实时数据传输(RDT)。

    RTSP由RealNetworks公司,Netscape公司 [1] 和哥伦比亚大学开发,第一稿于1996年提交给IETF[2]。由互联网工程任务组(IETF)的多方多媒体会话控制工作组(MMUSIC WG)进行了标准化,并于1998年发布为RFC 2326。[3] RTSP 2.0 于2016年发布为RFC 7826,作为RTSP 1.0的替代品。RTSP 2.0基于RTSP 1.0,但除了基本的版本协商机制之外不向后兼容。

  • 相关阅读:
    Power BI for Office 365(八)共享查询
    Power BI for Office 365(七) Power BI站点
    Power BI for Office 365(六)Power Map简介
    Power BI for Office 365(五)Power View第二部分
    Power BI for Office 365(四)Power View第一部分
    Power BI for Office 365(三)Power Pivot
    Power BI for Office 365(二)Power Query
    java 继承、重载、重写与多态
    Android 热修复方案Tinker(一) Application改造
    阿里最新热修复Sophix与QQ超级补丁和Tinker的实现与总结
  • 原文地址:https://www.cnblogs.com/tekikesyo/p/16645405.html
Copyright © 2020-2023  润新知