• <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(實時流媒體協議),是由Real network 和Netscape共同提出的如何有效地在IP網絡上傳輸流媒體數據的應用層協議。
            RTSP提供一種可擴展的框架,使能夠提供能控制的,按需傳輸實時數據,比如音頻和視頻文件。
            源數據可以包括現場數據的反饋和存貯的文件。rtsp對流媒體提供了諸如暫停,快進等控制,而它本身并不傳輸數據,
            rtsp作用相當于流媒體服務器的遠程控制。傳輸數據可以通過傳輸層的tcp,udp協議,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版本 狀態碼 解釋    CR LF
            消息頭                    CR LF          CR LF
            消息體                    CR LF
            其中RTSP版本一般都是RTSP
            /1.0,狀態碼是一個數值,200表示成功,解釋是與狀態碼對應的文本解釋.
            簡單的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:發送流媒體數據

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

            上述的過程是標準的、友好的rtsp流程,但實際的需求中并不一定按部就班來。
            其中第3和4步是必需的!第一步,只要服務器客戶端約定好,有哪些方法可用,則option請求可以不要。
            第二步,如果我們有其他途徑得到媒體初始化描述信息(比如http請求等等),則我們也不需要通過rtsp中的describe請求來完成。
            第五步,可以根據系統需求的設計來決定是否需要。
            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發起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參數設置了傳輸模式,包的結構。
            //接下來的數據包頭部第二個字節位置就是 interleaved,它的值是每個通道都不同的,
            //trackID=0的interleaved值有兩個0或1,0表示rtp包,1表示rtcp包,接受端根據interleaved的值來區別是哪種數據包。

            服務器回應信息:
            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
            客戶端發送播放請求:
            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
            客戶端發起關閉請求:
            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>
            = (協議版本)
            = (所有者/創建者和會話標識符)
            = (會話名稱)
            = * (會話信息)
            = * (URI 描述)
            = * (Email 地址)
            = * (電話號碼)
            = * (連接信息)
            = * (帶寬信息)
            = * (時間區域調整)
            = * (加密密鑰)
            = * (0 個或多個會話屬性行) 
            時間描述:
            = (會話活動時間)
            = * (0或多次重復次數)
            媒體描述:
            = (媒體名稱和傳輸地址)
            = * (媒體標題)
            = * (連接信息 — 如果包含在會話層則該字段可選)
            = * (帶寬信息)
            = * (加密密鑰)
            = * (0 個或多個媒體屬性行)
            posted on 2009-06-17 14:33 黑色天使 閱讀(734) 評論(0)  編輯 收藏 引用

            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿(2)

            隨筆分類

            隨筆檔案

            文章檔案

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            国产91色综合久久免费| 无码人妻精品一区二区三区久久久 | 四虎国产永久免费久久| 欧美日韩中文字幕久久伊人| 久久精品一区二区三区中文字幕| 婷婷久久综合| 久久国产精品成人片免费| 久久久久国产精品三级网| 久久99精品国产麻豆宅宅| 亚洲午夜久久久精品影院| 国产成人无码精品久久久性色| 91久久福利国产成人精品| 亚洲国产欧美国产综合久久| 久久99精品久久久久久不卡| 人人狠狠综合久久88成人| 青青热久久国产久精品| 国产精品99久久精品| 亚洲欧美伊人久久综合一区二区| 国产精品日韩欧美久久综合| 精品久久无码中文字幕| 亚洲欧美成人综合久久久| 热99RE久久精品这里都是精品免费 | 久久综合视频网站| 国产精品青草久久久久婷婷| 亚洲精品无码久久久久去q| 久久久久亚洲国产| 久久中文字幕无码专区| 久久精品成人| 久久中文字幕无码专区| 久久久中文字幕日本| 久久精品无码一区二区日韩AV| 成人综合伊人五月婷久久| 久久国产精品无码一区二区三区 | 欧美精品一区二区精品久久| 午夜天堂精品久久久久| 亚洲综合熟女久久久30p| 久久综合久久自在自线精品自| 久久精品国产99久久久古代| 亚洲精品午夜国产VA久久成人| 午夜天堂精品久久久久| 国产亚洲综合久久系列|