基于RTSP RDT传输RM RMVB

近日由于需要,要实现基于RTSP 传输RM RMVB,便找网上,都没有找到现成的解决方案,只有一个live555实现了RTSP服务,但是只支持RTP传输mpg,mp3,wav,等格式,RM 在开源界好象极不受欢迎,可能因为格式、协议都是私有不公开的缘故。遂开始结合live555和commview跟踪包来开发RMVB over RTSP

1 RTSP

首先要实现RTSP协议,RTSP协议较为简单,类似HTTP协议,主要的命令有

OPTIONDESCRIBESETUPPLAYTEARDOWNrealplay播放器一般按顺序发送这几条命令与RTSP服务器交互。

      Client                      Server

       --------OPTIONS------------à

       <------OPTIONS RESP--------

       --------DESCRIBE------------à

       <------DESCRIBE RESP-------

       --------SETUP----------------à

       <------SETUP RESP-----------

       --------PLAY------------------à

       <------PLAY RESP-------------

       --------TEAR DOWN---------à

       <------TEAR DOWN RESP-----

2 RDT

RDTreal公司专有的传输rm格式文件的协议,在RTSP SETUP命令中协商通过RDT传输的话,即开始用RDTRDT可以over TCP或者UDP,格式也较为简单

Table A. RDT DATA PACKET (non-aggregated)

012    78               24      32         64             80

+++----++---------------+++-----+-------...+-----------...+--...+

|||    ||SeqNo          |||Rule |Timestamp |Reliable SeqNo|Data |

+++----++---------------+++-----+-------...+-----------...+--...+

^^^    ^^               ^^^

|||    ||               |||

|||    ||               ||ASM Rule

|||    ||               |slow_data

|||    ||               back_to_back_packet

|||    ||              

|||    |RDT Sequence Number

|||    is_reliable

||stream_id

|need_reliable (always true)

length_included_flag

-------------------------------------------------------------------------------

3 real challage between client and server

这个协议是real playerhelix之间特殊的专有协议,在realplayer发出OPTION命令时,发出第一个ClientChallenge,32字节数,服务器在RESP中应回应发出RealChallenge1(32字节),然后realplayerSETUP命令时应发出RealChallenge2,作为对RealChallenge1的回应,服务器在SETUP RESP中应包含对ClientChallenge的回应,为RealChallenge3。即:

      Client                   Server

       --------ClientChallenge----à

       <--------RealChallenge1------

       --------RealChallenge2-----à

       <--------RealChallenge3-----

以上流程也仅限于猜测,目前RealChallenge2的生成已经有算法,在MPlayer工程中。但是RealChallenge1RealChallenge3的生成还没有算法,目前此流程无法通过。

4 SDP

Session描述语言协议

主要用于在DESCRIBE语句时,描述要传输的文件的视音频流信息,包括编码格式,帧率的丰富的信息,以便播放器做好解码的准备。

5 RIFF RM format

RM文件的格式分析,要传输RM文件,肯定要先分析文件格式,再取出数据,再打包发送。

References

The following are the standards referenced in this document:

Real Time Streaming Protocol (RTSP; RFC 2326)

ftp://ftp.isi.edu/in-notes/rfc2326.txt

This specification references the HTTP spec by using the following notation: [H 3.2.1 ].

This example refers to section 3.2.1 in the HTTP RFC.

Session Description Protocol (SDP; RFC 2327)

ftp://ftp.isi.edu/in-notes/rfc2327.txt

Real Time Transport Protocol (RTP; RFC 1889)

ftp://ftp.isi.edu/in-notes/rfc1889.txt

Hypertext Transfer Protocol (HTTP; RFC 2068)

ftp://ftp.isi.edu/in-notes/rfc2068.txt
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值