流媒体网络协议 -- RTSP

流媒体协议之RTSP详解 RTSP(Real Time Streaming Protocol):实时流媒体协议,是由Real network 和 Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议,RTSP提供一种可扩展的框架,使能够提供能控制的,按需传输实时数据,如音频流、视频流、metadata;遵循规范IETF RFC 2326,4567,6064,其语法和操作参考了HTTP/1.1,基于文本的协议,采用ISO10646字符集,使用UTF-8编码;承载RTSP的传输层协议为TCP,默认端口554; 阅读详情


RTSP介绍

RTSP(Real Timing Streaming Procotol)全称“实时流协议”,是TCP/IP协议体系下的一个应用层协议,定义了一对多应用程序如何有效地通过IP网络传送多媒体数据, 用于多媒体数据的网络控制。

1. 与HTTP协议的异同

同:

  • 都是使用纯文本来发送信息,而且协议头语法类似(之所以类似,是为了兼容使用以前的HTTP协议分析代码)
  • 用TCP协议传输信息

异:

  • HTTP用TCP传输数据,RTSP常用UDP协议传输数据。
  • HTTP协议是没有状态的,命令之间没有依赖性。
    而RTSP协议是有状态的,RTSP的命令必须按照顺序来发送。
  • RTSP协议的客户端和服务器端都可以发送Request请求。
    HTTP协议只有客户端能发送Request请求。
  • HTTP协议是短连接,在发送一个命令后,连接会断开。
    而RTSP协议是长连接,无论处于什么状态都不会去断开连接。
  • HTTP协议默认端口是80。
    而RTSP协议默认端口是554。

2. RTSP的特性

  • 流控分离:数据流和控制流分开,多媒体数据和控制信息通过不同的端口来接收。
  • 可拓展性:基于文本的协议,具有较强的可拓展性。
  • 安全:RTSP使用网页安全机制。

RTSP原理

RTSP组合使用了可靠传输协议TCP(控制信息)和高效传输协议UDP(媒体数据)来串流内容给用户。支持点播和直播。
RTSP协议本身只负责传输媒体控制信息,并不负责数据传输,使用RTP(Real-time Transport Protocol)和RTCP(Real-time Control Protocol)完成数据传输和数据检测。
会话参与者(发送端和接收端)周期性的向所有参与者发送RTCP包。主要功能是为应用程序提供会话质量或广播性能质量的信息,这些信息包括发送的信息包数目、丢失的信息包数目和信息包抖动等情况。
简而言之:

  • RTSP(over TCP) --> 媒体控制
  • RTCP(over UDP) --> 监控媒体数据传输质量
  • RTP(over UDP) --> 媒体数据传输

协议在网络中的结构图:
在这里插入图片描述

1. RTSP会话交互过程

会话交互过程如下图:
在这里插入图片描述

  1. 首先发OPTION cmd请求服务器可使用的方法。
  2. 然后发DESCRIBE cmd请求服务器返回媒体的matedata,对于audio和video分开传输的情况,返回信息里面还有各自的url。
  3. 然后发送SETUP cmd请求服务器创建会话,请求体中需带数据传输协议以及客户端RTCP和RTP的接收端口号。
    服务器返回会话ID和对应的服务器端口,客户端拿到服务器IP和端口,通过RTCP和RTP协议与服务器连接。
  4. 最后发送PLAY cmd请求服务器传输数据,此时客户端开始接收数据并播放。
  5. 播放结束后,发送TERADOWN cmd请求服务销毁会话。

2. RTSP客户端状态机

状态机如下图:
在这里插入图片描述

  • 初始态(Init): SETUP请求已经发出,等待回复,尚未创建会话
  • 就绪态(Ready): 收到SETUP回复,或在播放态收到pause回复,会话已创建好,可以进行数据传输。
  • 播放态(Playing):收到PlAY回复,媒体数据开始传输,客户端播放媒体。
  • 记录态(Recording): 收到RECORD回复,客户端开始录制数据。

3. RTSP server保活机制

客户端如果一段时间内(默认是60s)没有任何响应,那么rtsp服务器就会关闭该会话,所以客户端需要发送心跳包给服务器。

  1. rtsp层面上,定期向server发无效的控制信息(要带有session id的cmd,比如,空消息体的get_parameter命令,)
  2. rtp层面上,定期向server发送rtp包,包内容随意。

RTSP请求与回应

1.RTSP方法一览:

方法方向要求作用
DESCRIBEC->S推荐获得会话描述信息
ANNOUNCEC->S,S->C可选将请求URL识别的演示或媒体对象描述发给服务器
GET_PARAMETERC->S,S->C可选获得会话参数
SET_PARAMETERC->S,S->C可选设置会话参数
OPTIONSC->S,S->C必要获得服务器的可用方法
PAUSEC->S推荐客户端发起暂停播放请求
PLAYC->S必要客户端发起播放请求
RECORDC->S可选请求录制指定范围的媒体数据
REDIRECTS->C可选服务器返回重定向地址
SETUPC->S必要客户端请求建立会话
TERADOWNC->S必要客户端发起关闭会话请求

c: client s: server

2.RTSP请求和回应信息格式

请求和回应的模板如下所示。
在请求和回应的消息头中都有一个CSeq的参数,是为了进行客户端和服务端的同步而设立的。
CSeq初始值为1,客户端每发起一个请求,该值加1。传输正确的情况下,服务端的回应中的CSeq应该与对应请求相等。

  1. RTSP请求:
    [方法] [URI] [RTSP版本]<CR LF>
           [消息头]<CR LF><CR LF>
           [消息体]<CR LF>
    
  2. RTSP回应:
    [RTSP版本] [状态码] [状态码解释]<CR LF>
               [消息头]<CR LF><CR LF>
               [消息体]<CR LF>
    

3. 必要方法

  1. OPTIONS
    用于请求服务器所支持的所有方法。

    C->S   OPTIONS rtsp://video.foocorp.com:554 RTSP/1.0
    	   CSeq: 1
    S->C   RTSP/1.0 200 OK
           CSeq: 1
           Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, RECORD
    
  2. DESCRIBE
    用来请求URL指定对象的描述信息,通常描述信息使用SDP(Session Description Protocol)格式。
    描述信息中比较重要的是数据传输方式、播放时长以及codec type。

    C->S  DESCRIBE rtsp://video.foocorp.com:554/streams/example.rm RTSP/1.0
         CSeq: 2
    
    S->C  RTSP/1.0 200 OK
         CSeq: 2
         Content-Type: application/sdp
         Content-Length: 210 
    
         m=video 0 RTP/AVP 96
         a=control:streamid=0
         a=range:npt=0-7.741000
         a=length:npt=7.741000
         a=rtpmap:96 MP4V-ES/5544
         a=mimetype:string;"video/MP4V-ES"
         a=AvgBitRate:integer;304018
         a=StreamName:string;"hinted video track"
         m=audio 0 RTP/AVP 97
         a=control:streamid=1
         a=range:npt=0-7.712000
         a=length:npt=7.712000
         a=rtpmap:97 mpeg4-generic/32000/2
         a=mimetype:string;"audio/mpeg4-generic"
         a=AvgBitRate:integer;65790
         a=StreamName:string;"hinted audio track"
    

    从SDP信息中可以知道码流的元数据信息。

  3. SETUP:
    用于请求URL使用指定传输格式,必须在PLAY前发出。

    C->S  SETUP rtsp://video.foocorp.com:554/streams/example.rm RTSP/1.0
          CSeq: 3
          Transport: rtp/udp;unicast;client_port=5067-5068
    S->C  RTSP/1.0 200 OK
          CSeq: 3
          Session: 12345678
          Transport: rtp/udp;client_port=5067-5068;server_port=6023-6024
    

    客户端发起的请求说明接收RTP和RTCP数据的端口,一般’-‘前面的是RTP,’-'后面的是RTCP,比如上述请求:
    用接收RTP数据(音视频)的本地端口是5067,接收RTCP数据的本地端口是5068
    而服务器返回的信息说明服务端对应RTP和RTCP的端口,比如上述响应:
    server对应的端口是6023和6024。
    重要的是,服务器端还会将该传输会话的ID带给客户端,也就是Session ID,之后客户端的请求都需要带这个唯一标识码。
    另外,如果发现setup的client端口已经被强占的话,可以不用关闭会话,只需要再次调用setup来重新配置端口,不过要带上当前的Session ID。
    需要说明的是,端口之间是有一定联系的。如下图:
    在这里插入图片描述

  4. PLAY:
    用于请求服务器开始传输数据,该请求是需要排队的,执行完一个PLAY请求,再执行下一个。
    另外该请求可以带Range关键字,请求不同时间点的数据,单位是秒,相当于seek操作。

    C->S  PLAY rtsp://video.foocorp.com:554/streams/example.rm RTSP/1.0
          CSeq: 4 
          Session: 12345678
          Range: npt=0.000- //设置播放时间的范围,单位是秒,精度小数点后三位
         User-Agent: VLC media player (LIVE555 Streaming Media v2005.11.10)       
    
    S->C  RTSP/1.0 200 OK
          CSeq: 4
         Session: 12345678
         Range: npt=0.000000- 
    

    如果要实现快进/快退功能,也是通过PLAY cmd向服务器请求,快进/快退倍速通过Scale关键字提供,如下:

    C->S  PLAY rtsp://video.foocorp.com:554/streams/example.rm RTSP/1.0
    CSeq: 4 
    Session: 12345678
    SCALE: 4    // 设置快进/快退倍速
    User-Agent: VLC media player (LIVE555 Streaming Media v2005.11.10)    
    
    S->C  RTSP/1.0 200 OK
    CSeq: 4
    Session: 12345678
    SCALE: 4
    
  5. TEARDOWN:
    用于请求终止会话,停止会话相关码流,并释放资源。

    C->S  TEARDOWN rtsp://video.foocorp.com:554/streams/example.rm RTSP/1.0
          CSeq: 5
          Session: 12345678
    
    S->C  RTSP/1.0 200 OK
          CSeq: 5
    

4. 其它方法:

  1. ANNOUNCE(公布、通知): -->(额 囊 斯 ~)
    S --> C: 用于实时更新会话描述。
    C --> S: 通知客户端特定媒体事件,如eof。
    例:
    C->S:  ANNOUNCE rtsp://video.foocorp.com:554/streams/example.rm RTSP/1.0
           CSeq: 10
           Session: 47112344
           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: 10
    
  2. GET_PARAMETER:
    用于请求URI指定呈现或流的参数值。
    返回的内容有待实现,如果不带任何实体主体的GET_PARAMETER可用于测试客户端或者服务器是否"在线"(类似ping)
    例:
    S->C:   GET_PARAMETER rtsp://example.com/fizzle/foo RTSP/1.0
            CSeq: 431
            Content-Type: text/parameters
            Session: 12345678
            Content-Length: 15
    
            packets_received
            jitter
    
    C->S:   RTSP/1.0 200 OK
            CSeq: 431
            Content-Length: 46
            Content-Type: text/parameters
    
            packets_received: 10
            jitter: 0.3838
    
  3. SET_PARAMETER:
    用于设置URI指定呈现或者流的参数值。
    每条请求都应当只包含一个参数以允许客户端在设置失败的时候确认失败原因。
    如果请求中包含多个参数,服务器必须在所有参数设置成功的情况下生效,否则返回参数错误的键(如下例子)。
    服务器应当允许同一参数多次设置同一值,但是可以拒绝设置为不同的值,由服务器根据时机情况而定。
    需要注意的是,对于媒体流参数(如端口等)不可通过该方法设置,必须通过SETUP请求来设置。
    以下为设置失败的例子,服务器返回"Invalid Parameter"
    C->S:   SET_PARAMETER rtsp://example.com/fizzle/foo RTSP/1.0
            CSeq: 421
            Content-Length: 20
            Content-type: text/parameters
    
            barparam: barstuff  // 格式<key>:<value>
    
    S->C:   RTSP/1.0 451 Invalid Parameter
            CSeq: 421
            Content-Length: 10
            Content-type: text/parameters
    
            barparam    // 返回参数错误的键
    
  4. PAUSE:
    用于临时中断流传输,如果URL指定的是某一个流(audio or video),则该流的播放和录制都会被暂停。
    如果URL指定的是一组流,则呈现或组中所有活动流,都会被暂停。
    中断期间,所有服务器资源都会保留;
    但是如果SETUP时,请求中有指定延时参数,那么服务器会在pause持续时长达到设置的延时时长后关闭会话并释放资源。
    例:
    C->S:   PAUSE rtsp://example.com/fizzle/foo RTSP/1.0
            CSeq: 834
            Session: 12345678
    
    S->C:   RTSP/1.0 200 OK
            CSeq: 834
            Date: 23 Jan 1997 15:35:06 GMT
    
  5. RECORD:
    用于开始录制当前呈现描述中的一段媒体数据,UTC格式的时间戳包含开始录制点和结束录制点。
    如果请求中没有提供录制时间范围,则从当前时间点开始录制,直到呈现描述中的结束点为止。
    服务器决定将录制数据保存在请求URI还是其他URI。
    如果是保存在其他URI,则server返回"201"并包含描述请求状态和录制资源位置信息。
    例:
    C->S:   RECORD rtsp://example.com/meeting/audio.en RTSP/1.0
           CSeq: 954
           Session: 12345678
           Conference: 128.16.64.19/32492374
    
  6. REDIRECT:
    用于提示客户端需要重新连接另一个服务器,响应报文中必须包含Location头,以指明新的服务器URL。
    其中还可能包含Range参数,指明何时重定向生效。
    如果客户端在SETUP后希望向重定向的URL接收媒体数据,则必须先对当前会话发出TEARDOWN请求,然后重新向目标主机发出SETUP请求新的会话。
    例:
    S->C:   REDIRECT rtsp://example.com/fizzle/foo RTSP/1.0
           CSeq: 732
           Location: rtsp://bigserver.com:8001
           Range: clock=19960213T143205Z-
    

RTP包传输方式

RTP包的传输方式在SETUP cmd中指定,分为两种:

  1. Over UDP传输,默认传输方式,SETUP带的参数为RTP/AVP/UDP或者RTP/AVP,如下:
    C->S: SETUP rtsp://example.com/foo/bar/baz.rm RTSP/1.0
          CSeq: 302
          Transport: RTP/AVP;unicast;client_port=4588-4589
    S->C: RTSP/1.0 200 OK
          CSeq: 302
          Date: 23 Jan 1997 15:35:06 GMT
          Session: 47112344
          Transport: RTP/AVP;unicast; client_port=4588-4589;server_port=6256-6257
    
    可以看到通过UDP传输,RTP接收端口是4588,对应发送端口为6256;RTCP交互端口为4589,对应端口为6257.
    这样的话,对于ts stream,需要创建3个socket(rtsp, ts rtp, ts rtcp);
    而对于fMP4,需要创建5个socket(rtsp, audio rtp, audio rtcp, video rtp, video rtcp)。
    连接示意图:
    在这里插入图片描述
  2. Over TCP传输,SETUP带的参数为RTP/AVP/TCP,如下:
    C->S: SETUP rtsp://foo.com/bar.file RTSP/1.0
          CSeq: 2
          Transport: RTP/AVP/TCP;interleaved=0-1
    
    S->C: RTSP/1.0 200 OK
          CSeq: 2
          Date: 05 Jun 1997 18:57:18 GMT
          Transport: RTP/AVP/TCP;interleaved=0-1
    
    通过TCP传输的话,RTSP cmd、RTP packet和RTCP packet是在同一个TCP连接上传输的,示意图如下:
    在这里插入图片描述
    为了区分RTP包和RTCP包,新增了一层RTSP Interleaved Frame:
    在这里插入图片描述

扩展

  1. 点播的case,如何判断End of stream?
    1> 服务器主动发"ANNOUNCE" cmd告诉player码流传输结束。

    S->C: ANNOUNCE rtsp://172.16.12.6:5554/… RTSP/1.0
          CSeq: 4
          Session: 370384394
          x-notice: 2101 "End-of-Stream Reached" event-data=20210706T025811Z
    

    2> 可以从DESCRIBE的SDP info中拿到duration,那么播放时长(playtime + 1)达到duration,那就认为数据传输结束。
    3> 最新的规范(RTSP 2.0)中,服务器发送"PLAY_NOTIFY"cmd给客户端,通知eos。

    S->C: PLAY_NOTIFY rtsp://example.com/… RTSP/2.0
          Cseq:854
          Notify-Reason: end-of-stream
    

    4>无法拿到duration,那么设置100秒超时,如果100秒内server没有发送播放数据给player,那就认为数据传输结束。

  2. RTSP重定向的情况:
    DESCRIBE请求返回303说明要进行重定向,响应头中会说明重定向的url。
    客户端需要对重定向url重新进行OPTION和DESCRIBE请求。

    C->S:
    DESCRIBE rtsp://172.16.74.210:559/2305_3a__3a_MOV00000002305106151_3a__3a_2305106151_f.mpg RTSP/1.0
    CSeq: 2
    User-Agent: MODPlayer
    
    S->C:
    RTSP/1.0 303 See Other
    Server: Orbit2x
    CSeq: 2
    Location: rtsp://172.17.178.142:554/2305_3a__3a_MOV00000002305106151_3a__3a_2305106151_f.mpg
    
    C->S:
    OPTIONS rtsp://172.17.178.142:554/2305_3a__3a_MOV00000002305106151_3a__3a_2305106151_f.mpg RTSP/1.0
    CSeq: 1
    User-Agent: MODPlayer
    
    S->C:
    RTSP/1.0 200 OK
    Server: Orbit2x
    CSeq: 1
    Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER
    
    C->S:
    DESCRIBE rtsp://172.17.178.142:554/2305_3a__3a_MOV00000002305106151_3a__3a_2305106151_f.mpg RTSP/1.0
    CSeq: 2
    User-Agent: MODPlayer
    
    S->C:
    RTSP/1.0 200 OK
    Server: Orbit2x
    CSeq: 2
    Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER
    Content-Type: application/sdp
    Content-Length: 178
    
  3. 媒体数据直接基于UDP传输:
    transport是RAW/RAW/UDP,传输的数据没有封包为RTP包,直接以UDP包的形式传输。

    SETUP rtsp://172.17.245.46:554/378289119.ts RTSP/1.0
    Transport: RAW/RAW/UDP;unicast;destination=10.134.37.122;client_port=15500
    User-Agent: MODPlayer
    CSeq: 3
    
    RTSP/1.0 200 OK
    Server: Orbit2x
    CSeq: 3
    Session: 26931165;timeout=60
    Transport: RAW/RAW/UDP;unicast;destination=10.134.37.122;client_port=15500;source=172.17.245.46;server_port=10000
    
    -----------------
    udp的url是:udp://172.17.245.46:10000 --> 注意这是一个单播地址,不是udp组播地址(224. ~ 239.)
    
  4. SDP:
    SDP(Session Description Protocol)是一个用来描述多媒体会话的应用层控制协议,是一个基于文本的协议。
    用来会话建立过程中的媒体类型,以及协商编码方案等。
    SDP由许多文本行组成,文本行的格式为<类型>=<值>,<类型>是一个字母,<值>是结构化的文本串,其格式视<类型>而定。
    SDP文本行例子:

    v=<version> (协议版本)
    o=<username> <session id> <version> <network type> <address type> <address> (所有者/创建者和会话标识符)
    s=<session name>    (会话名称)
    i=<session description> (会话信息)
    u=<URI> (URI 描述)
    e=<email address> (Email 地址)
    p=<phone number> (电话号码)
    c=<network type> <address type> <connection address> (连接信息)
    b=<modifier>:<bandwidth-value> (带宽信息)
    t=<start time> <stop time> (会话活动时间)
    r=<repeat interval> <active duration> <list of offsets from start-time>(0或多次重复次数)
    z=<adjustment time> <offset> <adjustment time> <offset> ....
    k=<method>
    k=<method>:<encryption key> (加密密钥)
    a=<attribute> (0 个或多个会话属性行)
    a=<attribute>:<value>
    m=<media> <port> <transport> <fmt list> (媒体名称和传输地址)
    
RTSP和RTMP协议有什么区别?RTSP为什么常用于安防监控摄像头行业,而视频直播却只使用RTMP推流? RTMP(Real-Time Messaging Protocol)是一种用于音视频流传输的协议。它最初由Adobe开发,用于在Flash播放器和服务器之间传输实时音视频数据。RTMP通过建立TCP连接来传输音视频数据,具有低延迟和高效率的特点。RTMP协议可以支持实时的音视频直播和点播,可以在实时传输过程中实现音视频的编码、解码、压缩和传输。它能够自适应网络带宽,根据网络情况动态调整音视频数据的传输速率,以保证流媒体传输的稳定性和流畅性。 阅读详情

相关推荐

Android平台实现IP Camera RTSP流媒体播放项目指南

RTSP(Real Time Streaming Protocol)是一种网络控制协议,旨在控制流媒体服务器以提供实时数据流。与HTTP相比,RTSP负责传输控制,而数据传输则由RTP(Real-time Transport Protocol)等协议负责。VLC for Android不仅提供了一个强大的播放器基础,还允许开发者进行高级自定义。你可以通过创建自定义的对象为VLC播放器添加均衡器功能。此外,还有诸多选项可以设置,比如音量控制、亮度调节、播放速度调整等。

weixin_42499004的博客 1338

实时流协议---RTSP【详解】

一、RTSP协议介绍 RTSP(Real Time Streaming Protocol 实时流协议)是一个有效地在IP网络上传输流媒体数据的应用层协议。RTSP对流媒体提供了诸如开始、暂停、快进、停止等控制,RTSP的作用相当于流媒体服务器的远程控制,而它本身并不传输数据。 官方指导文档参考:RFC 2326 - Real Time Streaming Protocol (RTSP) 它的语法和运作跟HTTP 1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。 RTSP具有重新导...

王木木 3万+

用74LS190和555定时器复刻经典交通灯:一个电子工程新手的实战避坑记录

本文记录了使用74LS190和555定时器复刻经典交通灯的实战过程,详细介绍了元件选型、电路搭建与调试的关键步骤。特别分享了555定时器参数设置、74LS190级联技巧以及状态机设计的避坑经验,为电子工程新手提供实用参考。

weixin_42629671的博客 306

RTSP协议详解

Rtsp

qq_25330791的博客 1万+

OSNet代码解析(普通卷积,分组卷积,深度可分离卷积,OSblock组成)

文章目录普通卷积和分组卷积普通卷积和深度可分离卷积用深度可分离卷积(LightConv3x3)代替普通卷积(Conv3x3)减少参数OSBlock (bottleneck)OSNet OSNet之所以轻量(2.2M)在于网络浅,使用深度可分离卷积代替传统卷积,但是很有效 普通卷积和分组卷积 所谓分组卷积,就是右图的input features分成一组一组,如上图groups=3,那么输入的特征分成3组,每组有12/3=4的通道的特征参与输出。然后根据输出通道的维度,得到每组的输入特征要计算两次(6/3=2

Mr_DaYang的博客 9801

攻防世界 web高手进阶区 9分题 Web_python_flask_sql_injection

继续ctf的旅程,开始攻防世界web高手进阶区的9分题,本文是Web_python_flask_sql_injection的writeup

闵行小鱼塘 1473

Sunshine网络协议分析:RTSP、HTTP和UPnP在游戏流媒体中的应用

Sunshine作为Moonlight流媒体客户端的开源主机程序,通过精心设计的网络协议栈实现了高效的游戏流媒体传输。本文将深入解析Sunshine如何利用RTSP、HTTP和UPnP三大协议构建完整的游戏流媒体解决方案,为新手和普通用户提供清晰的技术解析。 ## 🔍 为什么游戏流媒体需要多协议协作? 游戏流媒体不同于普通视频流,它需要**极低的延迟**、**高帧率**和**实时交互**。S

gitblog_01108的博客 315

Windows 11 RDP Wrapper 配置教程与常见问题解决方法

解锁家庭版RDP主机功能(Windows 11家庭版原生不支持作为RDP服务器)突破单用户连接限制,实现多用户同时远程登录(类似服务器版功能)它不修改系统核心文件,通过注入方式工作,相对安全可靠。RDP Wrapper是Windows 11家庭版用户启用远程桌面、突破单用户限制的高效工具。遵循本文步骤可快速完成配置,遇到问题时按常见问题排查方案逐一解决,多数问题可通过更新配置文件或重启服务解决。若长期使用,建议关注官方GitHub仓库的更新,确保兼容性和安全性。

weixin_41521681的博客 1363

一站式 .NET 网络协议组件,支持 Web 服务、RTSP 流媒体与 IoT 设备通信

在工业 4.0 与边缘智能加速发展,这样一套轻量、可靠、可嵌入的 .NET 网络组件,为国产工业软件的自主可控提供了有力支撑。不管是远程监控 PLC 设备、采集传感器数据,还是对接视频监控系统、提供本地配置服务,常常需要同时处理 HTTP、RTSP、CoAP 等多种协议。项目不依赖第三方中间件,所有子模块均可独立使用,支持跨平台部署,已在 Linux 环境下完成基础可用性验证,适用于工业网关、边缘服务器、嵌入式 HMI 等典型工业软件运行环境。3、模块间高度解耦,可按需引用,不强制捆绑整个项目。

dotNET跨平台 66

手把手教你用C语言实现GNSS卫星方位角计算(附RTKLIB风格代码解析)

本文详细介绍了如何使用C语言实现GNSS卫星方位角计算,包括从地固坐标系到站心坐标系的转换链条。通过RTKLIB风格的代码解析,展示了XYZ到ENU坐标转换的核心原理和C语言实现框架,帮助开发者掌握卫星方位角和高度角的计算技巧,适用于GNSS观测数据质量分析和精密定位算法开发。

weixin_30699915的博客 365

74HC165级联踩坑实录:STM32读取32路开关状态,时序调试与常见问题排查

本文详细介绍了74HC165级联在STM32读取32路开关状态时的时序调试与常见问题排查。从硬件设计的PCB布局优化、电源噪声控制,到软件时序的精确调校和数据采集策略,提供了完整的解决方案。通过逻辑分析仪和示波器的高效使用,解决了信号延迟和干扰问题,最终实现了稳定可靠的32路信号读取。

weixin_34046298的博客 313

java rtsp

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34239169的博客 363

Unity零基础到入门 ☀️| 近万字教程 对 Unity 中的 动画系统基础 全面解析+实战演练,你确定要错过吗?

Unity动画系统,Animation,Animator。 本文对Unity中的动画系统基础做了一个全面解析,还包括实战演练。近万字教程让你对Unity的动画系统有一个系统的了解,敬请品尝!

努力前行,总会成为自己心中的那道光 9万+

协议篇---RTP & RTCP & RTSP

rtsp rtcp rtp

holly的专栏 545

MicroCap声学仿真介绍(五)-倒相管扬声器系统仿真

实际倒相管的扬声器单体选择、后腔容积、倒相管的直径和长度都是需要精心挑选的,为了便于演示,随意指定了倒相管的长度和直径,现实中还是不能这么随便的。之前介绍了封闭式扬声器的仿真,今天在封闭式扬声器的基础上,再介绍一下倒相管扬声器系统的仿真。

山无忧的博客 1718

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

流媒体传输技术的初步认识

[color=green]手机流媒体的传输技术[/color] 流媒体的主要技术特征就是采用流式传输,即通过Internet 将影音节目传送到PC机。实现流式传输有两种方法:顺序流式传输(Progressive streaming)和实时流式传输(Real-time streaming)。   1. 顺序流式传输顺序流式传输采用顺序下载方式,用户可以观看在线媒体节目。但是在给定时刻,用...

邪道少年 478

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

流媒体及流媒体传输协议

文章目录1、网络协议2、流媒体概述3、流媒体传输协议4、拓展 1、网络协议 计算机网络知识 网络协议 系列 计算机网络中,传输层协议分为: TCP UDP HTTP(源自TCP)和RTP(源自UDP)属于应用层协议; 2、流媒体概述 流媒体(streaming media):是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术,就必须在使用前下载整个媒体文件。 流媒体及流媒体传输协议简介 (荐) 音视频&a

唐诺 948

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

C C++最新流媒体技术介绍(1),2024年最新C C++开发社招面试解答之性能优化

通过利用流媒体技术,用户侧的媒体启动时间大幅度缩短,用户不必像以往那样“等到所有媒体内容都下载完成后上才能浏览”,而是经过一段启动延时后,立即就能欣赏媒体内容。与传统的媒体传输方式相比,流媒体技术对客户端(用户计算机)的缓存容量要求大大降低。

2401_84975561的博客 1156

RTSP协议

补充,附上网上一些较好的帖子: 网络流媒体协议之——RTSP协议 网络流媒体协议之——RTP协议概述

weixin_43763259的博客 281

RTSP协议_拔剑-浆糊的传说_新浪博客

UjMJfFZyBGtXYFBuDm8IdglUVWNXKAR2U2hQMw1sCzQGWVM9UGQCB1ExAWYDMA8zCWcPWwYkBWEB PwBvBW9cWVIzCXxWcgRrV2BQbg5vCFoJM1VnVy4EY1NoUDwNcwt/BmxTJ1BwAjtRZwE/A2gPZQkI DzEGbwU_AWAANwU6XDFSYQk9ViAEY1dxUHYOYwhmC...

拔剑—浆糊的传说 80

智能流技术与流媒体播放方式

智能流技术与流媒体播放方式 By :wgscd 2005-2智能流技术(SureStream)  今天,28.8Kbps调制解调器是Internet连接的基本速率,cable modem、 ADSL、DSS、ISDN等发展快,内容提供商不得不要么限制发布媒体质量,要么限制连接人数。根据RealNetwork站点统计,对28.8Kbps调制解调器,实际流量为10bps到26Kbps,呈钟形分布,高峰

wgscd blog 1125

RTSP协议分析

RTSP协议的Proposed Standard在RFC 2326中定义, 是一个被广泛支持的处理流媒体传输的。目前real , quicktime的流媒体解决方案并都支持rtsp。个人觉得,RTSP 在设计的时候参考了HTTP的内容, RTSP同其下的RTP/RTCP的关系类似于HTTP同TCP的关系。但是仍然有许多差异。RTSP是一个持久的连接,即在整个流媒体点播和回放过程中,Clie

sally2021的专栏 793

流媒体传输协议

1.什么是TCP/IP协议? TCP/IP:IP协议建立了一个与另一台设备的线路,可传输数据,但是不提供了解该数据是否正确接收的任何方法;TCP(传输控制协议),用于保证所有传输的包都可以正确传输,否则包将重新传输。 2.什么是IGMP协议? IGMP:组控制服务协议,即组播协议,在进行组播时需要网络中的设备(路由器、交换机等)支持IGMP协议。 3.什么是UDP协议? UDP:用户...

轻轻草原 123

流媒体技术关键概念

流媒体基本概念 非流式媒体是指声音、影像或动画等媒体文件,通常利用FTP协议,由音视频服务器向用户计算机传输。方法是整个文件先下载到本地计算机硬盘,然后用户可以离线浏览。 而所谓的流,是一种传输数据信息的方式。流式传输表示声音、影像或动画等媒体由音视频服务器向用户计算机的连续、实时传送。流媒体传输技术是一种基于时间的连续实时传输技术,其关键在于网络数据传输和客户端播放的并行性。 一般多媒体数

NullPointerException 2679

RTSP(Real-Time Streaming Protocol,实时流传输协议)介绍

RTSP(Real-Time Streaming Protocol,实时流传输协议)是一种网络协议,用于控制多媒体数据流的实时传输。它是由RealNetworks、Netscape Communications和其他几家公司共同开发的,并在RFC 2326中进行了定义。RTSP主要设计用于与RTP(Real-time Transport Protocol,实时传输协议)配合使用,以提供流媒体内容的远程控制功能。

猿脑2.0的博客 750
上一篇: 流媒体网络协议 -- DASH
下一篇: 流媒体协议-- HTTP-FLV
Ritchie_Lin
博客等级 码龄7年 11粉丝 13原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值