1

我目前正在尝试解析通常看起来像下面代码字段中的示例的 RTSP 消息(取自 RF2326)。但是由于消息的某种不规则结构,以及定义较弱的分隔符等,我遇到了几个问题。

对此的一些想法:

  • 逐行遍历字符串:但是如果命令/参数分成两行怎么办?
  • 按某些字符拆分行以进行键/值解析-> 我必须确保第一次出现的例如“:”是键/值的分隔符。
  • 用空格 (" ") 分割行 - 但也可能出现像 CSeq:312 (没有空格) 这样的行。

另外:我只能假设标题部分(直到示例中的 Content-Length)与正文分开,以中断(\r\n)。如果只有一个呢?

有没有办法解决这个优雅可靠的问题?也许与LINQ?

  • 客户端 -> 服务器:

    DESCRIBE rtsp://server.example.com/fizzle/foo RTSP/1.0
    CSeq: 312
    Accept: application/sdp, application/rtsl, application/mheg
    
  • 服务器 -> 客户端:

    RTSP/1.0 200 OK
    CSeq: 312
    Date: 23 Jan 1997 15:35:06 GMT
    Content-Type: application/sdp
    Content-Length: 376
    
    v=0
    o=mhandley 2890844526 2890842807 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
    m=whiteboard 32416 UDP WB
    a=orient:portrait
    
4

1 回答 1

0

您可以使用我的库来解析 SDP ...

看看@ https://net7mma.codeplex.com/

这里还有一篇文章解释它-> http://www.codeproject.com/Articles/507218/Managed-Media-Aggregation-using-Rtsp-and-Rtp

需要帮助请叫我!

于 2012-12-12T04:04:18.650 回答