流媒体协议的具体应用

 

1.   流媒体协议的具体应用

live555 项目[5] 中的RTSP 服务器实例mediaServer 使用了 实时传输协议 RTP 、 实时传输控制协议 RTCP 和 实时流协议 RTSP 三种流媒体协议。下面首先介绍RTSP 连接建立及请求响应过程,然后介绍RTP 数据包的封装及发送过程,最后分析RTCP 包的接收处理及发送等相关内容。

1.1.   RTSP 连接建立及请求响应过程

mediaServer 服务器运行时,先等待客户端连接,当客户端(支持RTSP 协议的流媒体播放器)发起URL 请求(如输入rtsp://localhost/1.mpg )时,服务器建立RTSP 连接,它是基于TCP 的可靠连接。mediaServer 在刚建立的连接上等待客户发起RTSP 会话,包括OPTIONS 、DESCRIBE 、SETUP 、PLAY 等一系列请求。mediaServer 收到请求后发送响应报文的过程将详述如下。

1.1.1.     OPTIONS 请求及响应报文

连接建立后,客户端向服务器发送OPTIONS 请求,服务器发出的响应报文中包括能提供的方法。如表2 所示,第一项是请求报文,第二项是响应报文。响应报文的最后给出了服务器提供的可用方法。

表2 OPTIONS 请求及响应报文

OPTIONS rtsp://localhost/1.mpg RTSP/1.0

CSeq: 1

User-Agent: openRTSP.exe (LIVE555 Streaming Media v2009.03.22)

RTSP/1.0 200 OK

CSeq: 1

Date: Tue, Apr 14 2009 04:27:44 GMT

Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER

1.1.2.     DESCRIBE 请求及响应报文

服务器收到DESCRIBE 请求后,如果请求的资源存在,则服务器回应一些对此会话的描述信息(sdp) ,包括视音频的相关信息。从表3 中可知,视频子会话对应track1 ,音频子会话对应track2 。


表3 DESCRIBE 请求及响应报文

DESCRIBE rtsp://localhost/1.mpg RTSP/1.0

CSeq: 2

Accept: application/sdp

User-Agent: openRTSP.exe (LIVE555 Streaming Media v2009.03.22)

RTSP/1.0 200 OK

CSeq: 2

Date: Tue, Apr 14 2009 04:27:44 GMT

Content-Base: rtsp://127.0.0.1/1.mpg/

Content-Type: application/sdp

Content-Length: 447

v=0

o=- 328484373446 1 IN IP4 100.0.0.101

s=MPEG-1 or 2 Program Stream, streamed by the LIVE555 Media Server

i=1.mpg

t=0 0

a=tool:LIVE555 Streaming Media v2009.03.22

a=type:broadcast

a=control:*

a=range:npt=0-410.134

a=x-qt-text-nam:MPEG-1 or 2 Program Stream, streamed by the LIVE555 Media Server

a=x-qt-text-inf:1.mpg

m=video 0 RTP/AVP 32

c=IN IP4 0.0.0.0

a=control:track1

m=audio 0 RTP/AVP 14

c=IN IP4 0.0.0.0

a=control:track2

1.1.3.     SETUP 请求及响应报文

mpg 类型文件包含的音频和视频数据是分开传送的,所以客户端向服务器发送两个 SETUP 请求,分别用于建立视频和音频的 RTPRTCP 连接。从接收的 SETUP 请求中获取会话属性、传输模式及客户端 RTPRTCP 端口号,然后分别建立视频及音频子会话的 RTPRTCP 连接。从表 4 可知, UDP 端口对 69706971 分别用于传送视频数据对应的 RTP 包和 RTCP 包,而端口对 69726973 分别用于传送音频数据对应的 RTP 包和 RTCP 包。会话描述符( session id )为 1 ,服务器将这些参数组装成响应消息返回给客户端。


表4 SETUP 请求及响应报文

SETUP rtsp://127.0.0.1/1.mpg/track1 RTSP/1.0

CSeq: 3

Transport: RTP/AVP;unicast;client_port=59532-59533

User-Agent: openRTSP.exe (LIVE555 Streaming Media v2009.03.22)

RTSP/1.0 200 OK

CSeq: 3

Date: Tue, Apr 14 2009 04:27:44 GMT

Transport:RTP/AVP;unicast;destination=127.0.0.1;source=127.0.0.1;

client_port=59532-59533;server_port=6970-6971

Session: 1

SETUP rtsp://127.0.0.1/1.mpg/track2 RTSP/1.0

CSeq: 4

Transport: RTP/AVP;unicast;client_port=59534-59535

Session: 1

User-Agent: openRTSP.exe (LIVE555 Streaming Media v2009.03.22)

RTSP/1.0 200 OK

CSeq: 4

Date: Tue, Apr 14 2009 04:27:44 GMT

Transport:RTP/AVP;unicast;destination=127.0.0.1;source=127.0.0.1;

client_port=59534-59535;server_port=6972-6973

Session: 1

1.1.4.     PLAY 请求及响应报文

5 显示了服务器会话发送给客户会话的 RTP 信息,包括视音频的 URL 请求地址、起始序列号和 RTP 时间戳信息。

表5 PLAY 请求及响应报文

PLAY rtsp://127.0.0.1/1.mpg/ RTSP/1.0

CSeq: 5

Session: 1

Range: npt=0.000-410.134

User-Agent: openRTSP.exe (LIVE555 Streaming Media v2009.03.22)

RTSP/1.0 200 OK

CSeq: 5

Date: Tue, Apr 14 2009 04:27:44 GMT

Range: npt=0.000-410.134

Session: 1

RTP-Info:url=rtsp://127.0.0.1/1.mpg/track1;seq=31382;rtptime=4728,

url=rtsp://127.0.0.1/1.mpg/track2;seq=18774;rtptime=8208

1.1.5.     TEARDOWN 请求及响应报文

流媒体数据接收完毕后,客户端会发送 TEARDOWN 请求,此时服务器关闭该 RTSP 会话并发送响应报文,报文内容如表 6 所示。

表6 TEARDOWN 请求及响应报文

TEARDOWN rtsp://127.0.0.1/1.mpg/ RTSP/1.0

CSeq: 6

Session: 1

User-Agent: openRTSP.exe (LIVE555 Streaming Media v2009.03.22)

RTSP/1.0 200 OK

CSeq: 6

Date: Tue, Apr 14 2009 05:06:27 GMT

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 流媒体协议是指一种通过互联网传输音频和视频等流媒体内容的协定,这种协议可以保证数据传输的稳定和流畅。而实例下载则是承载流媒体协议的一种具体形式,用户可以通过下载相应的实例文件,获取流媒体内容。 实例下载的具体过程是用户先寻找需要下载的流媒体内容,然后找到对应的实例下载链接,进行下载。这种方式最常见的应用场景是在电影、电视剧等视频内容的在线观看中,用户可以根据自己的需求,下载相应的实例,以获得更流畅稳定的播放体验,同时也可以避免网速不够快或不稳定而导致的播放卡顿等问题。 为了确保实例下载的安全性和可靠性,用户需要选择权威可信的实例下载网站,避免下载病毒、恶意软件等有害文件。同时,用户还需要根据自己设备的操作系统、软件版本等因素,选择适合的实例进行下载,否则可能出现文件不兼容、无法播放等问题。 总的来说,实例下载作为流媒体协议的一种具体形式,可以帮助用户获得更好的观看体验,但在使用过程中也需要注意安全和兼容等问题。 ### 回答2: 流媒体协议是指在网络上传输音视频数据的协议。它通过将音视频数据分成多个小分段数据传输来保证数据在网络中的稳定性,同时可以根据客户端带宽和设备性能自动调整视频质量,以在不同设备上实现更好的观看体验。 常见的流媒体协议有HTTP Live Streaming (HLS)、Dynamic Adaptive Streaming over HTTP (DASH)、Real Time Messaging Protocol (RTMP)等。其中,HLS和DASH都是基于HTTP协议的标准流媒体协议,而RTMP则是Adobe公司开发的专有协议。 如果需要实例下载,可以在相应的官方网站或GitHub上找到对应的SDK或工具包,例如可以在苹果的官方文档中找到HLS相关的介绍和开发文档,并下载相应的iOS或Android SDK;而DASH则可以在MPEG-DASH Industry Forum的官网上找到相关的文档和SDK下载链接。需要注意的是,下载前需要确认对应的证书和权限是否齐全。 总之,流媒体协议是实现音视频实时传输的重要协议,在很多场景下都有着广泛的应用,如在线视频直播、在线会议、远程教育等。选择合适的协议并使用合理的工具包可以提升音视频传输的效率和质量,从而更好地满足用户需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值