1

現在、通常は以下のコード フィールドの例のような RTSP メッセージを解析しようとしています (RF2326 から取得)。しかし、メッセージの構造がやや不規則であり、デリミタの定義が弱いなどの理由で、いくつかの問題に直面しています。

これに関するいくつかの考え:

  • 文字列を 1 行ずつステップ実行: しかし、コマンド/パラメーターが 2 行に分割されている場合はどうなるでしょうか?
  • キー/値の解析のために特定の文字で行を分割する -> たとえば「:」の最初の出現がキー/値の区切り文字であることを確認する必要があります。
  • 行をスペース (" ") で分割する - CSeq:312 (スペースなし) のような行も発生する可能性があります。

また、ヘッダー部分(例の Content-Length まで)が改行( )によって本文から分離されているとしか想定できません\r\n。1つしかない場合はどうなりますか?

このエレガントで信頼できる解決方法はありますか? 多分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 に答える