• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            蝸牛的家
            男兒當自強
            posts - 48,  comments - 21,  trackbacks - 0

             

            Real Time Streaming Protocol或者RTSP(實時流媒體協(xié)議),是由Real network 和Netscape共同提出的如何有效地在IP網絡上傳輸流媒體數據的應用層協(xié)議。
            RTSP提供一種可擴展的框架,使能夠提供能控制的,按需傳輸實時數據,比如音頻和視頻文件。
            源數據可以包括現場數據的反饋和存貯的文件。rtsp對流媒體提供了諸如暫停,快進等控制,而它本身并不傳輸數據,
            rtsp作用相當于流媒體服務器的遠程控制。傳輸數據可以通過傳輸層的tcp,udp協(xié)議,rtsp也提供了基于rtp傳輸機制的一些有效的方法。
            RTSP消息格式:
            RTSP的消息有兩大類,一是請求消息(request),一是回應消息(response),兩種消息的格式不同.
            請求消息:
            方法 URI RTSP版本       CR LF
            消息頭                    CR LF          CR LF         
            消息體                    CR LF
            其中方法包括OPTION回應中所有的命令,URI是接受方的地址,例如:rtsp:
            //192.168.20.136
            RTSP版本一般都是 RTSP/1.0.每行后面的CR LF表示回車換行,需要接受端有相應的解析,最后一個消息頭需要有兩個CR LF
            回應消息:
            RTSP版本 狀態(tài)碼 解釋    CR LF
            消息頭                    CR LF          CR LF
            消息體                    CR LF
            其中RTSP版本一般都是RTSP
            /1.0,狀態(tài)碼是一個數值,200表示成功,解釋是與狀態(tài)碼對應的文本解釋.
            簡單的rtsp交互過程:
            C表示rtsp客戶端,S表示rtsp服務端
            1.C->S:OPTION request     //詢問S有哪些方法可用
            1.S->C:OPTION response    //S回應信息中包括提供的所有可用方法

            2.C->S:DESCRIBE request   //要求得到S提供的媒體初始化描述信息
            2.S->C:DESCRIBE response  //S回應媒體初始化描述信息,主要是sdp

            3.C->S:SETUP request      //設置會話的屬性,以及傳輸模式,提醒S建立會話
            3.S->C:SETUP response     //S建立會話,返回會話標識符,以及會話相關信息

            4.C->S:PLAY request       //C請求播放
            4.S->C:PLAY response      //S回應該請求的信息

            S
            ->C:發(fā)送流媒體數據

            5.C->S:TEARDOWN request   //C請求關閉會話
            5.S->C:TEARDOWN response  //S回應該請求

            上述的過程是標準的、友好的rtsp流程,但實際的需求中并不一定按部就班來。
            其中第3和4步是必需的!第一步,只要服務器客戶端約定好,有哪些方法可用,則option請求可以不要。
            第二步,如果我們有其他途徑得到媒體初始化描述信息(比如http請求等等),則我們也不需要通過rtsp中的describe請求來完成。
            第五步,可以根據系統(tǒng)需求的設計來決定是否需要。
            rtsp中常用方法:
            1.OPTION
            目的是得到服務器提供的可用方法:
            OPTIONS rtsp:
            //192.168.20.136:5000/xxx666 RTSP/1.0
            CSeq: 1      //每個消息都有序號來標記,第一個包通常是option請求消息
            User-Agent: VLC media player (LIVE555 Streaming Media v2005.11.10)

            服務器的回應信息包括提供的一些方法,例如:
            RTSP
            /1.0 200 OK
            Server: UServer 
            0.9.7_rc1
            Cseq: 
            1         //每個回應消息的cseq數值和請求消息的cseq相對應
            Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, SCALE, GET_PARAMETER //服務器提供的可用的方法

            2.DESCRIBE
            C向S發(fā)起DESCRIBE請求,為了得到會話描述信息(SDP):
            DESCRIBE rtsp:
            //192.168.20.136:5000/xxx666 RTSP/1.0
            CSeq: 2
            token:
            Accept: application
            /sdp
            User
            -Agent: VLC media player (LIVE555 Streaming Media v2005.11.10)

            服務器回應一些對此會話的描述信息(sdp):
            RTSP
            /1.0 200 OK
            Server: UServer 
            0.9.7_rc1
            Cseq: 
            2
            x
            -prev-url: rtsp://192.168.20.136:5000
            x-next-url: rtsp://192.168.20.136:5000
            x-Accept-Retransmit: our-retransmit
            x
            -Accept-Dynamic-Rate: 1
            Cache
            -Control: must-revalidate
            Last
            -Modified: Fri, 10 Nov 2006 12:34:38 GMT
            Date: Fri, 
            10 Nov 2006 12:34:38 GMT
            Expires: Fri, 
            10 Nov 2006 12:34:38 GMT
            Content
            -Base: rtsp://192.168.20.136:5000/xxx666/
            Content-Length: 344
            Content
            -Type: application/sdp

            v
            =0                         //以下都是sdp信息
            o=OnewaveUServerNG 1451516402 1025358037 IN IP4 192.168.20.136
            s
            =/xxx666
            u
            =http://
            e=admin@
            c
            =IN IP4 0.0.0.0
            t
            =0 0
            a
            =isma-compliance:1,1.0,1

            a
            =range:npt=0-
            m
            =video 0 RTP/AVP 96    //m表示媒體描述,下面是對會話中視頻通道的媒體描述
            a=rtpmap:96 MP4V-ES/90000
            a
            =fmtp:96 profile-level-id=245;config=000001B0F5000001B509000001000000012000C888B0E0E0FA62D089028307
            a
            =control:trackID=0        //trackID=0表示視頻流用的是通道0

            3.SETUP
            客戶端提醒服務器建立會話,并確定傳輸模式:
            SETUP rtsp:
            //192.168.20.136:5000/xxx666/trackID=0 RTSP/1.0    
            CSeq: 3 
            Transport: RTP
            /AVP/TCP;unicast;interleaved=0-1      
            User
            -Agent: VLC media player (LIVE555 Streaming Media v2005.11.10)
            //uri中帶有trackID=0,表示對該通道進行設置。Transport參數設置了傳輸模式,包的結構。
            //接下來的數據包頭部第二個字節(jié)位置就是 interleaved,它的值是每個通道都不同的,
            //trackID=0的interleaved值有兩個0或1,0表示rtp包,1表示rtcp包,接受端根據interleaved的值來區(qū)別是哪種數據包。

            服務器回應信息:
            RTSP
            /1.0 200 OK
            Server: UServer 
            0.9.7_rc1
            Cseq: 
            3
            Session: 
            6310936469860791894     //服務器回應的會話標識符
            Cache-Control: no-cache
            Transport: RTP
            /AVP/TCP;unicast;interleaved=0-1;ssrc=6B8B4567


            4.PLAY
            客戶端發(fā)送播放請求:
            PLAY rtsp:
            //192.168.20.136:5000/xxx666 RTSP/1.0
            CSeq: 4
            Session: 
            6310936469860791894
            Range: npt
            =0.000-      //設置播放時間的范圍
            User-Agent: VLC media player (LIVE555 Streaming Media v2005.11.10)
            服務器回應信息:
            RTSP
            /1.0 200 OK
            Server: UServer 
            0.9.7_rc1
            Cseq: 
            4
            Session: 
            6310936469860791894
            Range: npt
            =0.000000-
            RTP
            -Info: url=trackID=0;seq=17040;rtptime=1467265309     
            //seq和rtptime都是rtp包中的信息

            5.TEARDOWN
            客戶端發(fā)起關閉請求:
            TEARDOWN rtsp:
            //192.168.20.136:5000/xxx666 RTSP/1.0
            CSeq: 5
            Session: 
            6310936469860791894
            User
            -Agent: VLC media player (LIVE555 Streaming Media v2005.11.10)
            服務器回應:
            RTSP
            /1.0 200 OK
            Server: UServer 
            0.9.7_rc1
            Cseq: 
            5
            Session: 
            6310936469860791894
            Connection: Close

            以上方法都是交互過程中最為常用的,其它還有一些重要的方法如get
            /set_parameter,pause,redirect等等
            sdp的格式
            v
            =<version>
            o
            =<username> <session id> <version> <network type> <address type> <address>
            s
            =<session name>
            i
            =<session description>
            u
            =<URI>
            e
            =<email address>
            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>
            z
            =<adjustment time> <offset> <adjustment time> <offset> .
            k
            =<method>
            k
            =<method>:<encryption key>
            a
            =<attribute>
            a
            =<attribute>:<value>
            m
            =<media> <port> <transport> <fmt list>
            = (協(xié)議版本)
            = (所有者/創(chuàng)建者和會話標識符)
            = (會話名稱)
            = * (會話信息)
            = * (URI 描述)
            = * (Email 地址)
            = * (電話號碼)
            = * (連接信息)
            = * (帶寬信息)
            = * (時間區(qū)域調整)
            = * (加密密鑰)
            = * (0 個或多個會話屬性行) 
            時間描述:
            = (會話活動時間)
            = * (0或多次重復次數)
            媒體描述:
            = (媒體名稱和傳輸地址)
            = * (媒體標題)
            = * (連接信息 — 如果包含在會話層則該字段可選)
            = * (帶寬信息)
            = * (加密密鑰)
            = * (0 個或多個媒體屬性行)
            posted on 2009-06-17 14:33 黑色天使 閱讀(745) 評論(0)  編輯 收藏 引用

            <2025年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿(2)

            隨筆分類

            隨筆檔案

            文章檔案

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            一本一本久久aa综合精品| 久久国产精品99国产精| 久久国产精品免费| 精品综合久久久久久97| 国产精品久久影院| 思思久久99热只有频精品66| 国产69精品久久久久777| 一本色综合久久| 久久九九精品99国产精品| 蜜臀久久99精品久久久久久 | 国产成人精品白浆久久69| 国产精品美女久久久久av爽| 香蕉久久av一区二区三区| 亚洲国产成人精品91久久久| 久久99精品国产| 欧美黑人激情性久久| 日本WV一本一道久久香蕉| 久久久久亚洲精品男人的天堂| 熟妇人妻久久中文字幕| 国产精品久久久久久久久久影院 | 久久中文字幕人妻熟av女| 少妇被又大又粗又爽毛片久久黑人| 狠狠色丁香婷婷综合久久来 | 精品人妻久久久久久888| 久久久午夜精品| 久久婷婷五月综合色99啪ak| 久久久青草久久久青草| 久久国产色AV免费看| 久久夜色精品国产网站| 亚洲国产精品一区二区久久hs| 久久99这里只有精品国产| 中文字幕久久精品| 久久久久se色偷偷亚洲精品av| 久久久久亚洲AV无码专区首JN | 精品国产乱码久久久久久郑州公司| 少妇熟女久久综合网色欲| 亚洲精品国产自在久久| 亚洲人AV永久一区二区三区久久 | 久久只有这精品99| 国产精品99久久久精品无码| 亚洲精品无码久久久久|