專利名稱:一種基于rtsp協(xié)議的網(wǎng)絡(luò)流媒體直播的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通訊技術(shù)領(lǐng)域,尤其涉及一種基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直 播的方法及系統(tǒng)。
背景技術(shù):
本發(fā)明中所涉及到的協(xié)議如下。
RTSP (Real Time Streaming Protocol,實(shí)時(shí)流媒體協(xié)議),是一種實(shí)時(shí) 流媒體會(huì)話控制協(xié)議,控制實(shí)時(shí)流媒體會(huì)話的會(huì)話建立、播放、暫停和拆除等 操作。
RTP (Real-time Transport Protocol,實(shí)時(shí)傳輸協(xié)議),用于傳輸音視頻 等實(shí)時(shí)多媒體數(shù)據(jù)。在該協(xié)議的數(shù)據(jù)包中,包含數(shù)據(jù)包的序列號(hào)、時(shí)間戳等與 實(shí)時(shí)傳輸相關(guān)的信息。
RTCP (RTP Control Protocol, RTP控制協(xié)議),用于控制RTP傳輸?shù)馁|(zhì) 量,如丟包、延時(shí)、傳輸抖動(dòng)等。
在體系結(jié)構(gòu)上,RTP/RTCP用于具體的媒體數(shù)據(jù)傳輸,RTSP是會(huì)話控制協(xié) 議,用于控制一個(gè)會(huì)話中的一個(gè)或多個(gè)媒體流的傳輸。
在多媒體通信系統(tǒng)中,流媒體服務(wù)器是實(shí)現(xiàn)音視頻內(nèi)容發(fā)布的最重要的網(wǎng) 絡(luò)單元,通過(guò)支持RTSP/RTP/RTCP協(xié)議來(lái)實(shí)現(xiàn)實(shí)時(shí)流媒體內(nèi)容的發(fā)布。對(duì)于音 視頻文件的點(diǎn)播,RTSP協(xié)議的功能已經(jīng)相當(dāng)完備,而對(duì)于實(shí)時(shí)音視頻流的直 播,尤其是對(duì)于音視頻編碼器與流媒體服務(wù)器之間的通信協(xié)議,RTSP還不完 整。
發(fā)明內(nèi)容
為解決上述問(wèn)題,本發(fā)明公開了一種基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的 方法及系統(tǒng),用以實(shí)現(xiàn)完整的網(wǎng)絡(luò)流媒體直播。
本發(fā)明公開了一種基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的方法,客戶端和流
8媒體服務(wù)器間依據(jù)RTSP協(xié)議進(jìn)行交互,包括
步驟l,編碼器向所述流媒體服務(wù)器發(fā)送消息,通知所述流媒體服務(wù)器所 述編碼器上線,所述流媒體服務(wù)器確認(rèn)所述編碼器上線;
步驟2,所述流媒體服務(wù)器向所述編碼器發(fā)起媒體會(huì)話協(xié)商,在所述流媒
體服務(wù)器和所述編碼器間建立會(huì)話;
步驟3,在客戶端請(qǐng)求播放時(shí),所述流媒體服務(wù)器向播放對(duì)應(yīng)的編碼器發(fā) 送消息請(qǐng)求開始播放,所述編碼器向所述流媒體服務(wù)器發(fā)送媒體流,所述流媒 體服務(wù)器將接收到的所述編碼器發(fā)送的媒體流轉(zhuǎn)發(fā)給所述客戶端;
步驟4,在客戶端停止播放時(shí),所述流媒體服務(wù)器向播放對(duì)應(yīng)的編碼器發(fā) 送消息,所述編碼器接收到所述消息后停止媒體流的傳輸。
所述步驟l進(jìn)一步為
步驟21,所述編碼器向所述流媒體服務(wù)器發(fā)送ANNOUNCE消息,通知所述 流媒體服務(wù)器所述編碼器上線,所述ANNOUNCE消息中包含會(huì)話描述信息;
步驟22,所述流媒體服務(wù)器對(duì)所述編碼器進(jìn)行認(rèn)證,認(rèn)證通過(guò)后回復(fù)確 認(rèn)消息,確認(rèn)所述編碼器上線。
所述步驟3進(jìn)一步為
步驟31,在客戶端請(qǐng)求播放時(shí),所述流媒體服務(wù)器檢査到播放對(duì)應(yīng)編碼 器己就緒后,向所述編碼器發(fā)送PLAY消息,以啟動(dòng)播放;
步驟32,所述編碼器接收到所述PLAY消息后,向所述流媒體服務(wù)器傳送 發(fā)送媒體流;
步驟33,所述流媒體服務(wù)器將接收到的所述編碼器發(fā)送的媒體流轉(zhuǎn)發(fā)給 所述客戶端。
所述步驟4進(jìn)一步為
步驟41,在客戶端停止播放時(shí),所述流媒體服務(wù)器檢査到?jīng)]有其他客戶 端正在接收播放對(duì)應(yīng)的編碼器發(fā)送的媒體流后,發(fā)送PAUSE消息給所述編碼 器,以通知停止播放;
步驟42,所述編碼器收到PAUSE消息后,向所述流媒體服務(wù)器回復(fù)確認(rèn) 消息,并停止發(fā)送媒體流。
所述步驟2后還包括
步驟51,所述編碼器向所述流媒體服務(wù)器按預(yù)設(shè)周期發(fā)送心跳消息,如果發(fā)送失敗,則斷開同所述流媒體服務(wù)器的當(dāng)前連接,重新連接所述流媒體服 務(wù)器;
步驟52,如果所述流媒體服務(wù)器在預(yù)設(shè)時(shí)長(zhǎng)內(nèi)沒(méi)有檢測(cè)到編碼器的心跳
消息,斷開同所述編碼器的連接,標(biāo)記所述編碼器為離線。 所述預(yù)設(shè)時(shí)長(zhǎng)為所述預(yù)設(shè)周期的時(shí)間長(zhǎng)度的兩倍或兩倍以上。
所述步驟2進(jìn)一步為
步驟71,所述流媒體服務(wù)器向所述編碼器發(fā)送DESCRIBE請(qǐng)求消息;
步驟72,所述編碼器向所述流媒體服務(wù)器回復(fù)DESCRIBE響應(yīng)消息,其中 包括SDP會(huì)話描述;
步驟73,所述流媒體服務(wù)器針對(duì)所述會(huì)話中的一個(gè)或多個(gè)媒體流分別發(fā) 送SETUP消息,所述SETUP消息中包括對(duì)應(yīng)媒體流傳輸?shù)膮?shù);
步驟74,所述編碼器向所述流媒體服務(wù)器回復(fù)SETUP消息響應(yīng),所述SETUP 消息響應(yīng)中包括所述流媒體服務(wù)器和所述編碼器的流媒體傳輸?shù)膮?shù)。
所述步驟1后還包括
步驟81,所述流媒體服務(wù)器向編碼器發(fā)送SET—PARAMETER消息,以設(shè)置 所述編碼器的配置參數(shù)或運(yùn)行參數(shù)。 所述步驟1后還包括
步驟91,所述流媒體服務(wù)器向所述編碼器發(fā)送GET—PARAMETER消息,以 獲取所述編碼器的配置參數(shù)或運(yùn)行參數(shù)。
所述配置參數(shù)包括視頻編碼格式、視頻編碼碼率、視頻編碼幀率、音頻編 碼碼率、音頻編碼格式中一種或多種。
所述運(yùn)行參數(shù)包括設(shè)備工作模式、設(shè)備時(shí)鐘、錄像開關(guān)、報(bào)警開關(guān)中的一 種或多種。
所述步驟1后還包括
步驟121,所述流媒體服務(wù)器向編碼器發(fā)送SET—PARAMETER消息,以通知 所述編碼器執(zhí)行遠(yuǎn)程控制動(dòng)作。
所述遠(yuǎn)程控制動(dòng)作包括設(shè)備重啟動(dòng)、啟動(dòng)錄像、停止錄像、報(bào)警布防、報(bào) 警撤防、云臺(tái)轉(zhuǎn)動(dòng)、焦距拉伸中的一種或多種。
所述ANNOUNCE消息包括本地媒體流地址信息和本地網(wǎng)頁(yè)訪問(wèn)地址信息, 以確定從互聯(lián)網(wǎng)或局域網(wǎng)中通過(guò)點(diǎn)對(duì)點(diǎn)方式訪問(wèn)編碼器媒體流或網(wǎng)頁(yè)的URL地址。
本發(fā)明還公開了一種基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的系統(tǒng),包括編碼 器、客戶端、同所述客戶端間依據(jù)RTSP協(xié)議進(jìn)行交互的流媒體服務(wù)器,所述 編碼器和所述客戶端分別通過(guò)網(wǎng)絡(luò)同所述流媒體服務(wù)器連接,
所述流媒體服務(wù)器用于在所述編碼器上線時(shí)接收所述編碼器發(fā)送的消息 確認(rèn)所述編碼器上線;向所述編碼器發(fā)起媒體會(huì)話協(xié)商,同所述編碼器間建立 會(huì)話;在客戶端請(qǐng)求播放時(shí),向播放對(duì)應(yīng)的編碼器發(fā)送消息請(qǐng)求開始播放,并 將所述編碼器發(fā)送的媒體流轉(zhuǎn)發(fā)給所述客戶端;在客戶端停止播放時(shí),向播放 對(duì)應(yīng)的編碼器發(fā)送消息以停止媒體流的傳輸;
所述編碼器用于向所述流媒體服務(wù)器發(fā)送消息,以通知所述流媒體服務(wù)器 所述編碼器上線;同所述流媒體服務(wù)器間建立會(huì)話;在所述流媒體服務(wù)器請(qǐng)求 開始播放時(shí),將媒體流上行發(fā)送給所述流媒體服務(wù)器;在接收到所述流媒體服 務(wù)器向其發(fā)送的停止播放媒體流的消息時(shí),停止發(fā)送媒體流。
所述編碼器在向所述流媒體服務(wù)器發(fā)送消息,以通知所述流媒體服務(wù)器所 述編碼器上線時(shí)進(jìn)一步用于向所述流媒體服務(wù)器發(fā)送ANNOUNCE消息,通知所 述流媒體服務(wù)器所述編碼器上線,所述ANNOUNCE消息中包含會(huì)話描述信息;
所述流媒體服務(wù)器在確認(rèn)所述編碼器上線時(shí)進(jìn)一步用于對(duì)所述編碼器進(jìn) 行認(rèn)證,認(rèn)證通過(guò)后回復(fù)確認(rèn)消息,確認(rèn)所述編碼器上線。
所述流媒體服務(wù)器在客戶端請(qǐng)求播放時(shí),進(jìn)一步用于檢査到播放對(duì)應(yīng)編碼 器已就緒后,向所述編碼器發(fā)送PLAY消息,以啟動(dòng)播放;將接收到的所述編 碼器發(fā)送的媒體流轉(zhuǎn)發(fā)給所述客戶端;
所述編碼器進(jìn)一步用于接收到所述PLAY消息后,向所述流媒體服務(wù)器傳 送發(fā)送媒體流。
所述流媒體服務(wù)器在客戶端停止播放時(shí),進(jìn)一步用于檢查到?jīng)]有其他客戶 端正在接收播放對(duì)應(yīng)的編碼器發(fā)送的媒體流后,發(fā)送PAUSE消息給所述編碼 器,以通知停止播放;
所述編碼器進(jìn)一步用于在接收到PAUSE消息后,向所述流媒體服務(wù)器回復(fù) 確認(rèn)消息,并停止發(fā)送媒體流。
所述編碼器還用于在同所述流媒體服務(wù)器建立完會(huì)話后,向所述流媒體服 務(wù)器按預(yù)設(shè)周期發(fā)送心跳消息,如果發(fā)送失敗,則斷開同所述流媒體服務(wù)器的當(dāng)前連接,重新連接所述流媒體服務(wù)器;
所述流媒體服務(wù)器還用于在同所述編碼器建立完會(huì)話后,如果在預(yù)設(shè)時(shí)長(zhǎng) 內(nèi)沒(méi)有檢測(cè)到編碼器的心跳消息,則斷開同所述編碼器的連接,標(biāo)記所述編碼 器為離線。
所述預(yù)設(shè)時(shí)長(zhǎng)為所述預(yù)設(shè)周期的時(shí)間長(zhǎng)度的兩倍或兩倍以上。 所述流媒體服務(wù)器在向所述編碼器發(fā)起媒體會(huì)話協(xié)商,同所述編碼器間建
立會(huì)話時(shí)進(jìn)一步用于向所述編碼器發(fā)送DESCRIBE請(qǐng)求消息;在接收到所述編 碼器回應(yīng)后針對(duì)所述會(huì)話中的一個(gè)或多個(gè)媒體流分別發(fā)送SETUP消息,所述 SETUP消息中包括對(duì)應(yīng)媒體流傳輸?shù)膮?shù);
所述編碼器在同所述流媒體服務(wù)器間建立會(huì)話時(shí)進(jìn)一步用于接收到所述 流媒體服務(wù)器向其發(fā)送的DESCRIBE請(qǐng)求消息后,向所述流媒體服務(wù)器回復(fù) DESCRIBE響應(yīng)消息,其中包括SDP會(huì)話描述;接收到所述流媒體服務(wù)器向其 發(fā)送的SETUP消息后,向所述流媒體服務(wù)器回復(fù)SETUP消息響應(yīng),所述SETUP 消息響應(yīng)中包括所述流媒體服務(wù)器和所述編碼器的流媒體傳輸?shù)膮?shù)。
所述流媒體服務(wù)器還用于向編碼器發(fā)送SET_PARAMETER消息,以設(shè)置所述 編碼器的配置參數(shù)或運(yùn)行參數(shù)。
所述流媒體服務(wù)器還用于向編碼器發(fā)送GET_PARAMETER消息,以獲取所述 編碼器的配置參數(shù)或運(yùn)行參數(shù)。
所述配置參數(shù)包括視頻編碼格式、視頻編碼碼率、視頻編碼幀率、音頻編 碼碼率、音頻編碼格式中一種或多種。
所述運(yùn)行參數(shù)包括設(shè)備工作模式、設(shè)備時(shí)鐘、錄像開關(guān)、報(bào)警開關(guān)中的一 種或多種。
所述流媒體服務(wù)器還用于向編碼器發(fā)送SET—PARAMETER消息,以通知所述 編碼器執(zhí)行遠(yuǎn)程控制動(dòng)作。
所述遠(yuǎn)程控制動(dòng)作包括設(shè)備重啟動(dòng)、啟動(dòng)錄像、停止錄像、報(bào)警布防、報(bào) 警撤防、云臺(tái)轉(zhuǎn)動(dòng)、焦距拉伸中的一種或多種。
所述ANNOUNCE消息包括本地媒體流地址信息和本地網(wǎng)頁(yè)訪問(wèn)地址信息, 以確定從互聯(lián)網(wǎng)或局域網(wǎng)中通過(guò)點(diǎn)對(duì)點(diǎn)方式訪問(wèn)編碼器媒體流或網(wǎng)頁(yè)的URL 地址。
本發(fā)明的有意效果在于對(duì)標(biāo)準(zhǔn)的RTSP協(xié)議功能進(jìn)行了擴(kuò)展,明確了一種由編碼器,流媒體服務(wù)器,客戶端組成的流媒體直播系統(tǒng)的通訊方法,使這種 流媒體直播應(yīng)用更容易實(shí)現(xiàn),并能很好的適應(yīng)實(shí)際的網(wǎng)絡(luò)狀況。
圖l是本發(fā)明中的系統(tǒng)結(jié)構(gòu)圖2是編碼器與流媒體服務(wù)器之間的基本交互步驟流程圖3是客戶端訪問(wèn)編碼器的基本交互步驟流程圖4是編碼器向流媒體服務(wù)器發(fā)送心跳消息的交互步驟流程圖5是流媒體服務(wù)器對(duì)編碼器進(jìn)行遠(yuǎn)程控制的基本交互步驟流程圖。
具體實(shí)施例方式
下面結(jié)合附圖,對(duì)本發(fā)明做進(jìn)一步的詳細(xì)描述。
本發(fā)明的系統(tǒng)結(jié)構(gòu)如圖l所示,包括編碼器101、流媒體服務(wù)器102和
客戶端103,通過(guò)網(wǎng)絡(luò)相互連接。
編碼器101是一個(gè)設(shè)備,能夠?qū)⒁粢曨l信號(hào)壓縮編碼,并通過(guò)網(wǎng)絡(luò)以媒體 流的方式傳輸出去。
流媒體服務(wù)器102, 一般位于公網(wǎng),負(fù)責(zé)接收客戶端103的請(qǐng)求并將請(qǐng)求 的編碼器的音視頻流轉(zhuǎn)發(fā)給客戶端103。
客戶端103是一個(gè)支持音視頻流媒體播放的終端,可以為PC,手機(jī),機(jī) 頂盒或其他終端設(shè)備。
客戶端103和流媒體服務(wù)器102間依據(jù)RTSP協(xié)議進(jìn)行交互。
在本發(fā)明中編碼器101和流媒體服務(wù)器102,還具有如下功能。
流媒體服務(wù)器102,用于在編碼器101上線時(shí)接收編碼器101發(fā)送的 ANNOUNCE消息(通告消息)確認(rèn)編碼器101上線;向編碼器101發(fā)起媒體會(huì) 話協(xié)商,同所述編碼器間建立會(huì)話;在客戶端103請(qǐng)求播放時(shí),向播放對(duì)應(yīng)的 編碼器101發(fā)送PLAY消息(播放消息)請(qǐng)求開始播放,并將編碼器101上行 的媒體流發(fā)送給客戶端103;在客戶端103停止播放時(shí),向播放對(duì)應(yīng)的編碼器 101發(fā)送PAUSE消息(暫停消息)以停止媒體流的傳輸。
編碼器101,用于向流媒體服務(wù)器102發(fā)送消息,以通知流媒體服務(wù)器102 其上線;同流媒體服務(wù)器102間建立會(huì)話;在流媒體服務(wù)器102發(fā)送PLAY消
13息請(qǐng)求開始播放時(shí),將媒體流上行發(fā)送給流媒體服務(wù)器102;在接收到流媒體 服務(wù)器102向其發(fā)送的停止播放媒體流的消息時(shí),停止發(fā)送媒體流。
編碼器101在向流媒體服務(wù)器102發(fā)送ANNOUNCE消息以通知流媒體服務(wù) 器102其上線時(shí)進(jìn)一步用于向流媒體服務(wù)器102發(fā)送ANNOUNCE消息,通知流 媒體服務(wù)器102其上線,ANNOUNCE消息中包含會(huì)話描述信息。
流媒體服務(wù)器102在確認(rèn)編碼器101上線時(shí)進(jìn)一步用于對(duì)編碼器101進(jìn)行 認(rèn)證,認(rèn)證通過(guò)后回復(fù)200 OK消息(確認(rèn)消息),確認(rèn)編碼器101上線。
流媒體服務(wù)器102在客戶端103請(qǐng)求播放時(shí),進(jìn)一步用于檢查到播放對(duì)應(yīng) 編碼器101已就緒后,向該編碼器101發(fā)送PLAY消息(播放消息),以啟動(dòng) 播放;將接收到的該編碼器101發(fā)送的媒體流轉(zhuǎn)發(fā)給客戶端103。
編碼器101進(jìn)一步用于接收到PLAY消息后,向流媒體服務(wù)器102傳送發(fā) 送媒體流。
流媒體服務(wù)器102在客戶端103停止播放時(shí),進(jìn)一步用于檢查到?jīng)]有其他 客戶端103正在接收播放對(duì)應(yīng)的編碼器發(fā)送的媒體流后,發(fā)送PAUSE消息(暫 停消息)給編碼器101,以通知停止播放。
編碼器101進(jìn)一步用于在接收到PAUSE消息后,向流媒體服務(wù)器102回復(fù) 200 0K消息,并停止發(fā)送媒體流。
編碼器101還用在同流媒體服務(wù)器102建立完會(huì)話后,向流媒體服務(wù)器 102按預(yù)設(shè)周期發(fā)送心跳消息,如果發(fā)送失敗,則斷開同流媒體服務(wù)器102的 當(dāng)前連接,重新連接流媒體服務(wù)器102。心跳消息為ANNOUNCE消息。
流媒體服務(wù)器102還用在同編碼器101建立完會(huì)話后,如果在預(yù)設(shè)時(shí)長(zhǎng)內(nèi) 沒(méi)有檢測(cè)到編碼器101的心跳消息,則斷開同編碼器101的連接,標(biāo)記該編碼 器101為離線。
所述預(yù)設(shè)時(shí)長(zhǎng)為所述預(yù)設(shè)周期的時(shí)間長(zhǎng)度的兩倍或兩倍以上。 流媒體服務(wù)器102在向編碼器101發(fā)起媒體會(huì)話協(xié)商,同編碼器101間建 立會(huì)話時(shí)進(jìn)一步用于向編碼器101發(fā)送DESCRIBE請(qǐng)求消息(描述請(qǐng)求消息) , 在接收到編碼器101回應(yīng)后針對(duì)會(huì)話中的一個(gè)或多個(gè)媒體流分別發(fā)送SETUP 消息(建立消息),SETUP消息中包括對(duì)應(yīng)媒體流傳輸?shù)膮?shù)。
編碼器101在同流媒體服務(wù)器102間建立會(huì)話時(shí)進(jìn)一步用于接收到流媒體 服務(wù)器102向其發(fā)送的DESCRIBE消息后,向流媒體服務(wù)器102回復(fù)DESCRIBE響應(yīng)消息,其中包括SDP (Session Description Protocol,會(huì)話描述協(xié)議) 會(huì)話描述;接收到流媒體服務(wù)器102向其發(fā)送的SETUP消息后,向流媒體服務(wù) 器102回復(fù)SETUP消息響應(yīng),SETUP消息響應(yīng)中包括流媒體服務(wù)器102和該編 碼器101的流媒體傳輸?shù)膮?shù)。
流媒體傳輸?shù)膮?shù)可能是UDP傳輸參數(shù),也可能是TCP傳輸參數(shù),具體由 流媒體服務(wù)器102決定采用何種方式。
流媒體的UDP傳輸參數(shù)包括UDP發(fā)送端口對(duì),UDP接收端口對(duì),傳輸模式等。
流媒體的TCP傳輸參數(shù)包括傳輸模式,子通道號(hào)等。
流媒體服務(wù)器102還用于向編碼器101發(fā)送SET_PARAMETER消息(設(shè)置參 數(shù)消息),以設(shè)置編碼器101的配置參數(shù)或運(yùn)行參數(shù),或通知編碼器101執(zhí)行 遠(yuǎn)程控制動(dòng)作。
流媒體服務(wù)器102還用于向編碼器101發(fā)送GET—PARAMETER消息(獲得參 數(shù)消息),以獲取編碼器101的配置參數(shù)或運(yùn)行參數(shù)。
配置參數(shù)包括視頻編碼格式、視頻編碼碼率、視頻編碼幀率、音頻編碼碼 率、音頻編碼格式中一種或多種。
運(yùn)行參數(shù)包括設(shè)備工作模式、設(shè)備時(shí)鐘、錄像開關(guān)、報(bào)警開關(guān)中的一種或 多種。
遠(yuǎn)程控制動(dòng)作包括設(shè)備重啟動(dòng)、啟動(dòng)錄像、停止錄像、報(bào)警布防、報(bào)警撤 防、云臺(tái)轉(zhuǎn)動(dòng)、焦距拉伸中的一種或多種。
圖2為編碼器與流媒體服務(wù)器之間的基本交互步驟流程圖。
步驟S201,編碼器第一次連接服務(wù)器,初始狀態(tài)序列號(hào)為空,發(fā)送 ANNOUNCE消息并攜帶自身的MAC地址給流媒體服務(wù)器。
具體實(shí)施例中,ANNOUNCE消息包含的具體信息如下。 rtsp:〃192. 168. 1. 200/mobile/0/MAC=062F8A01004C/R4020F7kg0018Muw RTSP/L 0\r\n
CSeq: 0\r\n
Content-Type: application/sdp\r\n Content-Length: 402\r\n User—Agent: Vbox—100\r\n
15Session: 23254\r\n\r\n v=0\r\n
o二VCam 40931801 524093198141 IN IP4 0. 0. 0. 0\r\n s= RTSP Session\r\n i二 VBox Live Video\r\n a二control:水W t二O 0\r\n
c二IN IP4 192. 168. 1. 200\r\n a二range:npt=now—\r\n m二video 0 RTP/AVP 96\r\n b=AS:20\r\n
a二rtpmap:96 MP4V_ES/1000\r\n
a二fmtp:96profile-Ievel-id=8;config=000001b008000001b50900000100 0000 0120008440fa282c2090a31f; decode —buf=12586\r\n a二range:叩t二now-\r\n a二framemte: 5\r\n a二framesize:96 176—144\r\n a二control:trackID=l\r\n
步驟S202,流媒體服務(wù)器在數(shù)據(jù)庫(kù)中査找該MAC地址對(duì)應(yīng)的設(shè)備序列號(hào), 如果査找到,則將該序列號(hào)返回給編碼器;如果序列號(hào)不存在,新生成一個(gè)唯 一的序列號(hào)返回給編碼器并寫入數(shù)據(jù)庫(kù)。
具體實(shí)施例中,流媒體服務(wù)器發(fā)送的200 OK消息包含的信息如下。
RTSP/1.0 200 0K\r\n
Server: VServer/1.0. 1 (Build/20080118; Platform/Win32; Release/StarValley;)\r\n Cseq: 0\r\n Session: 23254\r\n
Cont ent-Type appl i cat i on/seri al \r\n Content-length: 16\r\n\r\n 4F5A5730054C660D步驟S203,編碼器接收到200 0K消息,獲得序列號(hào)后,將序列號(hào)寫入配 置數(shù)據(jù),然后重新發(fā)送包含序列號(hào)的ANNOUNCE消息給流媒體服務(wù)器。
如果編碼器已經(jīng)具有序列號(hào),則步驟S201和S202可以省略,直接進(jìn)入以 下的ANNOUNCE信息。
具體實(shí)施例中,ANNOUNCE消息包含的具體信息如下。
rtsp:〃192. 168. 1. 200/mobile/0/4F5A5730054C660D/R4020F7kg0018Muw RTSP/1. 0\r\n
CSeq: l\r\n
Content-Type: application/sdp\r\n Content—Length: 402\r\n Session: 23254\r\n\r\n v=0\r\n
o二VBox 40931801 524093198141 IN IP4 0. 0. 0. 0\r\n s= RTSP Session\r\n i二 VBox Live Cast\r\n c二IN IP4 192. 168. 1. 200\r\n t=0 0\r\n
a=mnge: npt=now_\r\n a二control :氺W m二video 0 RTP/AVP 96\r\n b=AS:20\r\n
a=rtpmap:96 MP4V-ES/1000\r\n
si=fmtp:96 prof ile-level-id二8;
confi g=000001b00800000lb509000001000000 0120008440fa282c2090a31f; decode _buf=12586\r\n
a二range:npt=now-\r\n
a二framerate:5\r\n
a=framesize:96 176-144\r\n
£i=corrtrol: trackID=l\r\n
通過(guò)在ANNOUNCE中增加本地媒體流和本地網(wǎng)頁(yè)訪問(wèn)的地址信息,結(jié)合流媒體服務(wù)器,可以確定從Internet或局域網(wǎng)中通過(guò)點(diǎn)對(duì)點(diǎn)方式訪問(wèn)編碼器媒 體流或網(wǎng)頁(yè)的URL地址。
如點(diǎn)對(duì)點(diǎn)媒體流地址的獲取方式。
ANNOUNCE中還可以包含以下2個(gè)行頭信息
P2PLanURL:rtsp:〃192. 168. 1. 200/mobile/0/4F5A5730054C660D/R4020F 7kg0018Muw
P2PWANURL:rtsp:〃61. 35. 35. 11:554/mobile/0/4F5A5730054C660D/R402 0F7kg001簡(jiǎn)uw
當(dāng)客戶端和編碼器在同一個(gè)局域網(wǎng)時(shí),客戶端可以通過(guò)P2PLanURL的地 址,直接訪問(wèn)設(shè)備的媒體流。
當(dāng)客戶端和編碼器處在Internet上的2個(gè)網(wǎng)絡(luò)時(shí),客戶端可以通過(guò) P2PWANURL的地址,直接訪問(wèn)設(shè)備的媒體流。上例中61.35.35. 11: 554為編 碼器所在網(wǎng)絡(luò)的Internet的IP地址和端口。
如果編碼器不知道自己所在網(wǎng)絡(luò)的InternetIP地址,可以用WANIP來(lái)替代。
P2PWANURL:rtsp:〃[WANIP]:554/mobile/0/4F5A5730054C660D/R4020F7k gO018Muw
由于流媒體服務(wù)器知道編碼器所在網(wǎng)絡(luò)的InternetIP地址,可以通過(guò)替
換[WANIP]的方式獲得正確的P2PWANURL.
如點(diǎn)對(duì)點(diǎn)訪問(wèn)網(wǎng)頁(yè)地址的獲取方式。
ANNOUNCE中還可以包含以下2個(gè)行頭信息 LanWebURL: http:〃192. 168. 1. 55:8150
WanWebURL: http:〃125. 33. 178. 7:8150
當(dāng)客戶端和編碼器在同一個(gè)局域網(wǎng)時(shí),客戶端可以通過(guò)LanWebURL直接打 開設(shè)備本地的訪問(wèn)頁(yè)面
當(dāng)客戶端和編碼器處在Internet上的2個(gè)網(wǎng)絡(luò)時(shí),客戶端可以通過(guò) WanWebURL的地址,直接打開設(shè)備的訪問(wèn)頁(yè)面。上例中125.33.178.7: 8150 為編碼器所在網(wǎng)絡(luò)的Internet的IP地址和端口。
如果編碼器不知道自己所在網(wǎng)絡(luò)的InteraetIP地址,可以用WANIP來(lái)替代。
WanWebURL: http:〃[WANIP] :8150
18由于流媒體服務(wù)器知道編碼器所在網(wǎng)絡(luò)的InternetIP地址,可以通過(guò)替 換[WANIP]的方式獲得正確的WanWebURL.步驟S204,流媒體服務(wù)器響應(yīng)編碼 器發(fā)送的ANNOUNCE消息,回復(fù)200 0K消息。
具體實(shí)施例中,200 OK消息包含的信息如下。
RTSP/1. 0 200 0K\r\n
Server: VServer/1.0. 1 (Build/20080118; Platform/Win32; Release/StarValley;) \r\n Cseq: l\r\n
Session: 23254\r\n\r\n
步驟S205,流媒體服務(wù)器向編碼器發(fā)送DESCRIBE請(qǐng)求消息。 具體實(shí)施例中,DESCRIBE請(qǐng)求消息包含的信息如下。 rtsp:〃192. 168. 1. 200/mobile/0/4F5A5730054C660D/R4020F7kg0018Muw RTSP/1. 0\r\n CSeq: l\r\n
Accept: application/sdp\r\n User-agent: VServer/1. 0. l\r\n\r\n
步驟S206,編碼器響應(yīng)流媒體服務(wù)器的DESCRIBE請(qǐng)求消息,回復(fù)攜帶SDP 描述的200 OK消息。
具體實(shí)施例中,200 OK消息包含的信息如下。 RTSP/1. 0 200 OK\r\n Cseq: l\r\n
Content-Type: application/sdp\r\n User-Agent: Vbox-100\r\n Content-Length: 402\r\n\r\n v=0\r\n
o二MediaBox 40931801 524093198141 IN IP4 0. 0.0.0\r\n s= RTSP SessiorAr\n i= VBox Live Cast\r\n c=IN IP4 192. 168. 1.200\r\n t=0 0\r\na二range:叩t二now-\r\n a二control ..氺VrVi m二video 0 RTP/AVP 96\r\n b=AS:20\r\n
a=rtpmap:96 MP4V-ES/1000\r\n
a二fmtp:96 profile-level-id=8;config=000001b008000001b509000001 000000 0120008440fa282c2090a31f; decode —buf=12586\r\n arrange:npt=now_\r\n a=framerate:5\r\n a二framesize:96 176-144\r\n a=control: tmckID=l\r\n
步驟S207,流媒體服務(wù)器向編碼器發(fā)送SETUP消息,建立視頻數(shù)據(jù)會(huì)話。 具體實(shí)施例中,SETUP消息包含的信息如下。
rtsp:〃192. 168. 1. 200/mobile/0/4F5A5730054C660D/R4020F7kg0018Muw /tracklD二l RTSP/1. 0\r\n CSeq: 2\r\n
Transport: RTP/AVP;unicast;client—port二 7030-7031\r\n User-agent.. VServer/0. 0. l\r\n\r\n
步驟S208,編碼器響應(yīng)服務(wù)器的SETUP消息,回復(fù)包含視頻會(huì)話的傳輸 參數(shù)的200 OK消息。
具體實(shí)施例中,200 OK消息包含的信息如下。 RTSP/1. 0 200 OK\r\n Cseq: 2\r\n Session: 23254\r\n User-Agent: Vbox-100\r\n
Transport: RTP/AVP; unicast; serverjiort二7000-7001; cl ient』ort二 7030-7031\r\n\r\n
圖3為客戶端訪問(wèn)一個(gè)編碼器的基本交互步驟流程圖。
步驟S301 ,客戶端發(fā)送DESCRIBE請(qǐng)求消息到流媒體服務(wù)器。
步驟S302,流媒體服務(wù)器檢查客戶端所請(qǐng)求的編碼器是否在線,客戶端是否有權(quán)限觀看;如果編碼器在線并且客戶端鑒權(quán)通過(guò),則響應(yīng)客戶端
DESCRIBE請(qǐng)求消息,回復(fù)攜帶SDP描述的200 0K消息;否則,響應(yīng)攜帶錯(cuò)誤
代碼的200 OK消息。
步驟S303,客戶端發(fā)送SETUP消息,建立視頻媒體會(huì)話。
步驟S304,流媒體服務(wù)器響應(yīng)SETUP消息,回復(fù)攜帶視頻傳輸?shù)膮?shù)的
200 OK消息。
步驟S305,客戶端發(fā)送PLAY消息,請(qǐng)求開始視頻會(huì)話。
步驟S306,流媒體服務(wù)器響應(yīng)客戶端請(qǐng)求,回復(fù)200 OK消息給客戶端;
同時(shí)檢査對(duì)應(yīng)編碼器的狀態(tài),如果是"就緒"狀態(tài),發(fā)送PLAY消息給編碼器
啟動(dòng)RTP數(shù)據(jù)流傳輸。
具體實(shí)施例中,PLAY消息包含的信息如下。
rtsp:〃192. 168. 1. 200/mobile/l/4F5A5730054C660D/vD3579aK0Nff 10B6 RTSP/1. 0\r\n CSeq: 3\r\n Session: 23254 Range :叩t二OAiArArAn
步驟S307,編碼器收到PLAY消息后,回復(fù)200 OK消息。 具體實(shí)施例中,200 OK消息包含的信息如下。 RTSP/1.0 200 0K\r\n Cseq: 3\r\n
User-Agent: Vbox_100\r\n Session: 23254\r\n\r\n
步驟S308,編碼器啟動(dòng)RTP數(shù)據(jù)流傳送,發(fā)送到流媒體服務(wù)器。流媒體 服務(wù)器將收到的RTP數(shù)據(jù)包轉(zhuǎn)發(fā)給客戶端。
步驟S309,客戶端停止觀看,發(fā)送TEARDOWN消息(停止消息)到服務(wù)器。
步驟S310,流媒體服務(wù)器向客戶端回復(fù)200 OK消息,并檢查編碼器是否 還有別的客戶端觀看。如果沒(méi)有,則發(fā)送PAUSE消息給編碼器,通知編碼器停 止RTP數(shù)據(jù)流傳送。
具體實(shí)施例中,PAUSE消息包含的信息如下。
rtsp:〃192. 168. 1. 200/mobile/0/4F5A5730054C660D/R4020F7kg0018MuwRTSP/1.0\r\n CSeq: 4\r\n Session: 23254\r\n User-agent: VServer/0. 0. l\r\n\r\n
步驟S311,編碼器收到PAUSE消息,回復(fù)200 0K消息,停止RTP數(shù)據(jù)流 傳送。
具體實(shí)施例中,200 OK消息包含的信息如下。 RTSP/1. 0 200 OK\r\n Cseq: 4\r\n
User—Agent: Vbox—100\r\n Session: 23254\r\n\r\n
圖4為編碼器向流媒體服務(wù)器發(fā)送心跳消息的交互步驟流程圖。
在線的編碼器定期(間隔30秒)向服務(wù)器發(fā)送ANNOUNCE消息, 一方面作 為心跳消息,通知服務(wù)器它仍然在線;另一方面會(huì)攜帶一個(gè)變化的隨機(jī)串,便 于訪問(wèn)控制。
步驟S401,編碼器向服務(wù)器發(fā)送ANNOUNCE消息。
具體實(shí)施例中,ANNOUNCE消息包含的信息如下。
rtsp:〃192.168. 1. 200/mobile/0/4F5A5730054C660D/vD3579aK0Nff 10B6 RTSP/1. 0\r\n
CSeq: 10\r\n
Content-Type: application/sdp\r\n Content-Length: 402\r\n User-Agent: Vbox-100\r\n Session: 23254\r\n\r\n v=0\r\n
o=VBox 40931801 524093198141 IN IP4 0.0.0.0\r\n s= RTSP Session\r\n i= VBox Live Video\r\n c=IN IP4 192. 168. 1.200\r\n t=0 0\r\na二range npt=now—\r\n a二control:*\r\n m二video 0 RTP/AVP 96\r\n b=AS:20\r\n
a二rtpmap:96 MP4V-ES/1000\r\n
a二fmtp:96profile-level-id二8;config二000001b008000001b50900000100 00000120008440fa282c2090a31f; decode —buf=12586\r\n a二range:叩t二now-\r\n a=framerate:5\r\n a=framesize:96 176—144\r\n a=corrtrol: trackID=l\r\n
步驟S402,流媒體服務(wù)器向編碼器發(fā)送回復(fù)200 OK消息 具體實(shí)施例中,200 OK消息包含的信息如下。 RTSP/1. 0 200 0K\r\n
Server: VServer/1.0. 1 (Build/20061113; Platform/Win32; Release/StarValley;)\r\n Cseq: 10\r\n Session: 23254\r\n\r\n 步驟S403-406,同上面過(guò)程。
圖5為流媒體服務(wù)器對(duì)編碼器進(jìn)行遠(yuǎn)程控制的基本交互步驟流程圖。
編碼器支持流媒體服務(wù)器通過(guò)RTSP協(xié)議對(duì)它進(jìn)行遠(yuǎn)程控制,控制的內(nèi)容 主要是視頻編碼參數(shù)。
步驟S501,流媒體服務(wù)器發(fā)送GET_PARAMETER消息給編碼器,獲取編碼 器的配置參數(shù)或運(yùn)行參數(shù)。
具體實(shí)施例中,GET—PARAMETER消息包含的信息如下。
rtsp:〃192. 168. 1. 200/mobile/0/4F5A5730054C660D/R4020F7kg0018Muw RTSP/1. 0\r\n
CSeq: 5\r\n
Content-Type: application/xmlparam\r\n Content—Length: 72Session: 23254\r\n User-agent: VServer/l. 0. l\r\n\r\n media, sessionl, video. framerate\r\n media, session5. video. framerate\r\n media, sessionl. video. bitmte\r\n media, session5. video. bitrate\r\n
步驟S502,編碼器讀取配置參數(shù),通過(guò)200 OK消息將配置參數(shù)或運(yùn)行參 數(shù)返回給流媒體服務(wù)器。
具體實(shí)施例中,200 OK消息包含的信息如下。 RTSP/1.0 200 0K\r\n Cseq: 5\r\n
Content-Type: application/xmlparam\r\n Content-Length: 103\r\n User—Agent: Vbox—100\r\n Session: 23254\r\n\r\n media, sessionl. video, framerate: 25\r\n media, session5.video, framerate: 12\r\n media, sessionl. video, bitrate: 256\r\n media, session5. video, bitrate: 64\r\n
步驟S503,流媒體服務(wù)器發(fā)送SET_PARAMETER消息給編碼器,該消息中 攜帶配置參數(shù)或運(yùn)行參數(shù),或通知編碼器執(zhí)行的遠(yuǎn)程控制動(dòng)作。
具體實(shí)施例中,SET—PARAMETER消息包含的信息如下。
rtsp:〃192. 168. 1. 200/mobile/0/4F5A5730054C660D/R4020F7kg0018Muw RTSP/1. 0\r\n
CSeq: 6\r\n
Content-Type: applicat ion/xmlparam\r\n
Content—Length: 72
Session: 23254\r\n
User-agent: VServer/1.0. l\r\n\r\n
media, sessionl. video, framerate: 20\r\nmedia, session5. video, framerate: 6\r\n media, sessionl. video, bitrate: 192\r\n media, session5. video, bitmte: 40\r\n
步驟S504,編碼器接收SET—PARAMETER消息,并應(yīng)用其中的新的配置參 數(shù)或運(yùn)行參數(shù),或執(zhí)行遠(yuǎn)程控制動(dòng)作,返回200 OK給流媒體服務(wù)器。 具體實(shí)施例中,200 OK消息包含的信息如下。 RTSP/1. 0 200 0K\r\n Cseq.. 6\r\n
User-Agent: Vbox-100\r\n Session: 23254\r\n\r\n
配置參數(shù)包括視頻編碼格式、視頻編碼碼率、視頻編碼幀率、音頻編碼碼 率、音頻編碼格式中一種或多種。
運(yùn)行參數(shù)包括設(shè)備工作模式、設(shè)備時(shí)鐘、錄像開關(guān)、報(bào)警開關(guān)中的一種或 多種。
遠(yuǎn)程控制動(dòng)作包括設(shè)備重啟動(dòng)、啟動(dòng)錄像、停止錄像、報(bào)警布防、報(bào)警撤 防、云臺(tái)轉(zhuǎn)動(dòng)、焦距拉伸中的一種或多種。
本領(lǐng)域的技術(shù)人員在不脫離權(quán)利要求書確定的本發(fā)明的精神和范圍的條 件下,還可以對(duì)以上內(nèi)容進(jìn)行各種各樣的修改。因此本發(fā)明的范圍并不僅限于 以上的說(shuō)明,而是由權(quán)利要求書的范圍來(lái)確定的。
權(quán)利要求
1. 一種基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的方法,客戶端和流媒體服務(wù)器間依據(jù)RTSP協(xié)議進(jìn)行交互,其特征在于,包括步驟1,編碼器向所述流媒體服務(wù)器發(fā)送消息,通知所述流媒體服務(wù)器所述編碼器上線,所述流媒體服務(wù)器確認(rèn)所述編碼器上線;步驟2,所述流媒體服務(wù)器向所述編碼器發(fā)起媒體會(huì)話協(xié)商,在所述流媒體服務(wù)器和所述編碼器間建立會(huì)話;步驟3,在客戶端請(qǐng)求播放時(shí),所述流媒體服務(wù)器向播放對(duì)應(yīng)的編碼器發(fā)送消息請(qǐng)求開始播放,所述編碼器向所述流媒體服務(wù)器發(fā)送媒體流,所述流媒體服務(wù)器將接收到的所述編碼器發(fā)送的媒體流轉(zhuǎn)發(fā)給所述客戶端;步驟4,在客戶端停止播放時(shí),所述流媒體服務(wù)器向播放對(duì)應(yīng)的編碼器發(fā)送消息,所述編碼器接收到所述消息后停止媒體流的傳輸。
2. 如權(quán)利要求1所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的方法,其特征在于,所述步驟l進(jìn)一步為步驟21,所述編碼器向所述流媒體服務(wù)器發(fā)送ANNOUNCE消息,通知所述 流媒體服務(wù)器所述編碼器上線,所述ANNOUNCE消息中包含會(huì)話描述信息;步驟22,所述流媒體服務(wù)器對(duì)所述編碼器進(jìn)行認(rèn)證,認(rèn)證通過(guò)后回復(fù)確 認(rèn)消息,確認(rèn)所述編碼器上線。
3. 如權(quán)利要求1所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的方法,其特征 在于,所述步驟3進(jìn)一步為步驟31,在客戶端請(qǐng)求播放時(shí),所述流媒體服務(wù)器檢査到播放對(duì)應(yīng)編碼 器已就緒后,向所述編碼器發(fā)送PLAY消息,以啟動(dòng)播放;步驟32,所述編碼器接收到所述PLAY消息后,向所述流媒體服務(wù)器傳送 發(fā)送媒體流;步驟33,所述流媒體服務(wù)器將接收到的所述編碼器發(fā)送的媒體流轉(zhuǎn)發(fā)給 所述客戶端。
4. 如權(quán)利要求1所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的方法,其特征 在于,所述步驟4進(jìn)一步為步驟41,在客戶端停止播放時(shí),所述流媒體服務(wù)器檢査到?jīng)]有其他客戶端正在接收播放對(duì)應(yīng)的編碼器發(fā)送的媒體流后,發(fā)送PAUSE消息給所述編碼器,以通知停止播放;步驟42,所述編碼器收到PAUSE消息后,向所述流媒體服務(wù)器回復(fù)確認(rèn) 消息,并停止發(fā)送媒體流。
5. 如權(quán)利要求2所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的方法,其特征 在于,所述步驟2后還包括步驟51,所述編碼器向所述流媒體服務(wù)器按預(yù)設(shè)周期發(fā)送心跳消息,如 果發(fā)送失敗,則斷開同所述流媒體服務(wù)器的當(dāng)前連接,重新連接所述流媒體服 務(wù)器;步驟52,如果所述流媒體服務(wù)器在預(yù)設(shè)時(shí)長(zhǎng)內(nèi)沒(méi)有檢測(cè)到編碼器的心跳 消息,斷開同所述編碼器的連接,標(biāo)記所述編碼器為離線。
6. 如權(quán)利要求5所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的方法,其特征 在于,所述預(yù)設(shè)時(shí)長(zhǎng)為所述預(yù)設(shè)周期的時(shí)間長(zhǎng)度的兩倍或兩倍以上。
7. 如權(quán)利要求1所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的方法,其特征 在于,所述步驟2進(jìn)一步為步驟71,所述流媒體服務(wù)器向所述編碼器發(fā)送DESCRIBE請(qǐng)求消息;步驟72,所述編碼器向所述流媒體服務(wù)器回復(fù)DESCRIBE響應(yīng)消息,其中 包括SDP會(huì)話描述;步驟73,所述流媒體服務(wù)器針對(duì)所述會(huì)話中的一個(gè)或多個(gè)媒體流分別發(fā) 送SETUP消息,所述SETUP消息中包括對(duì)應(yīng)媒體流傳輸?shù)膮?shù);步驟74,所述編碼器向所述流媒體服務(wù)器回復(fù)SETUP消息響應(yīng),所述SETUP 消息響應(yīng)中包括所述流媒體服務(wù)器和所述編碼器的流媒體傳輸?shù)膮?shù)。
8. 如權(quán)利要求1所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的方法,其特征 在于,所述步驟l后還包括步驟81,所述流媒體服務(wù)器向編碼器發(fā)送SET—PARAMETER消息,以設(shè)置 所述編碼器的配置參數(shù)或運(yùn)行參數(shù)。
9. 如權(quán)利要求1所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的方法,其特征 在于,所述步驟l后還包括步驟91,所述流媒體服務(wù)器向所述編碼器發(fā)送GET—PARAMETER消息,以 獲取所述編碼器的配置參數(shù)或運(yùn)行參數(shù)。
10. 如權(quán)利要求8或9所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的方法, 其特征在于,所述配置參數(shù)包括視頻編碼格式、視頻編碼碼率、視頻編碼幀率、音頻編 碼碼率、音頻編碼格式中一種或多種。
11. 如權(quán)利要求8或9所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的方法, 其特征在于,所述運(yùn)行參數(shù)包括設(shè)備工作模式、設(shè)備時(shí)鐘、錄像開關(guān)、報(bào)警開關(guān)中的一 種或多種。
12. 如權(quán)利要求1所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的方法,其特 征在于,所述步驟l后還包括步驟121,所述流媒體服務(wù)器向編碼器發(fā)送SET一PARAMETER消息,以通知 所述編碼器執(zhí)行遠(yuǎn)程控制動(dòng)作。
13. 如權(quán)利要求12所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的方法,其特 征在于,所述遠(yuǎn)程控制動(dòng)作包括設(shè)備重啟動(dòng)、啟動(dòng)錄像、停止錄像、報(bào)警布防、 報(bào)警撤防、云臺(tái)轉(zhuǎn)動(dòng)、焦距拉伸中的一種或多種。
14. 如權(quán)利要求2所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的方法,其特 征在于,所述ANNOUNCE消息包括本地媒體流地址信息和本地網(wǎng)頁(yè)訪問(wèn)地址信 息,以確定從互聯(lián)網(wǎng)或局域網(wǎng)中通過(guò)點(diǎn)對(duì)點(diǎn)方式訪問(wèn)編碼器媒體流或網(wǎng)頁(yè)的 URL地址。
15. —種基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的系統(tǒng),包括編碼器、客戶端、 同所述客戶端間依據(jù)RTSP協(xié)議進(jìn)行交互的流媒體服務(wù)器,所述編碼器和所述 客戶端分別通過(guò)網(wǎng)絡(luò)同所述流媒體服務(wù)器連接,其特征在于,所述流媒體服務(wù)器用于在所述編碼器上線時(shí)接收所述編碼器發(fā)送的消息 確認(rèn)所述編碼器上線;向所述編碼器發(fā)起媒體會(huì)話協(xié)商,同所述編碼器間建立 會(huì)話;在客戶端請(qǐng)求播放時(shí),向播放對(duì)應(yīng)的編碼器發(fā)送消息請(qǐng)求開始播放,并 將所述編碼器發(fā)送的媒體流轉(zhuǎn)發(fā)給所述客戶端;在客戶端停止播放時(shí),向播放 對(duì)應(yīng)的編碼器發(fā)送消息以停止媒體流的傳輸;所述編碼器用于向所述流媒體服務(wù)器發(fā)送消息,以通知所述流媒體服務(wù)器 所述編碼器上線;同所述流媒體服務(wù)器間建立會(huì)話;在所述流媒體服務(wù)器請(qǐng)求 開始播放時(shí),將媒體流上行發(fā)送給所述流媒體服務(wù)器;在接收到所述流媒體服務(wù)器向其發(fā)送的停止播放媒體流的消息時(shí),停止發(fā)送媒體流。
16. 如權(quán)利要求15所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的系統(tǒng),其特 征在于,所述編碼器在向所述流媒體服務(wù)器發(fā)送消息,以通知所述流媒體服務(wù)器所 述編碼器上線時(shí)進(jìn)一步用于向所述流媒體服務(wù)器發(fā)送ANNOUNCE消息,通知所 述流媒體服務(wù)器所述編碼器上線,所述ANNOUNCE消息中包含會(huì)話描述信息;所述流媒體服務(wù)器在確認(rèn)所述編碼器上線時(shí)進(jìn)一步用于對(duì)所述編碼器進(jìn) 行認(rèn)證,認(rèn)證通過(guò)后回復(fù)確認(rèn)消息,確認(rèn)所述編碼器上線。
17. 如權(quán)利要求15所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的系統(tǒng),其特 征在于,所述流媒體服務(wù)器在客戶端請(qǐng)求播放時(shí),進(jìn)一步用于檢查到播放對(duì)應(yīng)編碼 器已就緒后,向所述編碼器發(fā)送PLAY消息,以啟動(dòng)播放;將接收到的所述編 碼器發(fā)送的媒體流轉(zhuǎn)發(fā)給所述客戶端;所述編碼器進(jìn)一步用于接收到所述PLAY消息后,向所述流媒體服務(wù)器傳 送發(fā)送媒體流。
18. 如權(quán)利要求15所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的系統(tǒng),其特 征在于,所述流媒體服務(wù)器在客戶端停止播放時(shí),進(jìn)一步用于檢査到?jīng)]有其他客戶 端正在接收播放對(duì)應(yīng)的編碼器發(fā)送的媒體流后,發(fā)送PAUSE消息給所述編碼 器,以通知停止播放;所述編碼器進(jìn)一步用于在接收到PAUSE消息后,向所述流媒體服務(wù)器回復(fù) 確認(rèn)消息,并停止發(fā)送媒體流。
19. 如權(quán)利要求16所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的系統(tǒng),其特 征在于,所述編碼器還用于在同所述流媒體服務(wù)器建立完會(huì)話后,向所述流媒體服 務(wù)器按預(yù)設(shè)周期發(fā)送心跳消息,如果發(fā)送失敗,則斷開同所述流媒體服務(wù)器的 當(dāng)前連接,重新連接所述流媒體服務(wù)器;所述流媒體服務(wù)器還用于在同所述編碼器建立完會(huì)話后,如果在預(yù)設(shè)時(shí)長(zhǎng) 內(nèi)沒(méi)有檢測(cè)到編碼器的心跳消息,則斷開同所述編碼器的連接,標(biāo)記所述編碼 器為離線。
20. 如權(quán)利要求19所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的系統(tǒng),其特 征在于,所述預(yù)設(shè)時(shí)長(zhǎng)為所述預(yù)設(shè)周期的時(shí)間長(zhǎng)度的兩倍或兩倍以上。
21. 如權(quán)利要求15所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的系統(tǒng),其特 征在于,所述流媒體服務(wù)器在向所述編碼器發(fā)起媒體會(huì)話協(xié)商,同所述編碼器間建 立會(huì)話時(shí)進(jìn)一步用于向所述編碼器發(fā)送DESCRIBE請(qǐng)求消息;在接收到所述編 碼器回應(yīng)后針對(duì)所述會(huì)話中的一個(gè)或多個(gè)媒體流分別發(fā)送SETUP消息,所述 SETUP消息中包括對(duì)應(yīng)媒體流傳輸?shù)膮?shù);所述編碼器在同所述流媒體服務(wù)器間建立會(huì)話時(shí)進(jìn)一步用于接收到所述 流媒體服務(wù)器向其發(fā)送的DESCRIBE請(qǐng)求消息后,向所述流媒體服務(wù)器回復(fù) DESCRIBE響應(yīng)消息,其中包括SDP會(huì)話描述;接收到所述流媒體服務(wù)器向其 發(fā)送的SETUP消息后,向所述流媒體服務(wù)器回復(fù)SETUP消息響應(yīng),所述SETUP 消息響應(yīng)中包括所述流媒體服務(wù)器和所述編碼器的流媒體傳輸?shù)膮?shù)。
22. 如權(quán)利要求15所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的系統(tǒng),其特 征在于,所述流媒體服務(wù)器還用于向編碼器發(fā)送SET—PARAMETER消息,以設(shè)置所述 編碼器的配置參數(shù)或運(yùn)行參數(shù)。
23. 如權(quán)利要求15所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的系統(tǒng),其特 征在于,所述流媒體服務(wù)器還用于向編碼器發(fā)送GET—PARAMETER消息,以獲取 所述編碼器的配置參數(shù)或運(yùn)行參數(shù)。
24. 如權(quán)利要求22或23所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的系統(tǒng), 其特征在于,所述配置參數(shù)包括視頻編碼格式、視頻編碼碼率、視頻編碼幀率、音頻編 碼碼率、音頻編碼格式中一種或多種。
25. 如權(quán)利要求22或23所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的系統(tǒng), 其特征在于,所述運(yùn)行參數(shù)包括設(shè)備工作模式、設(shè)備時(shí)鐘、錄像開關(guān)、報(bào)警開關(guān)中的一 種或多種。
26. 如權(quán)利要求15所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的系統(tǒng),其特 征在于,所述流媒體服務(wù)器還用于向編碼器發(fā)送SET一PARAMETER消息,以通知所述編碼器執(zhí)行遠(yuǎn)程控制動(dòng)作。
27. 如權(quán)利要求26所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的系統(tǒng),其特 征在于,所述遠(yuǎn)程控制動(dòng)作包括設(shè)備重啟動(dòng)、啟動(dòng)錄像、停止錄像、報(bào)警布防、 報(bào)警撤防、云臺(tái)轉(zhuǎn)動(dòng)、焦距拉伸中的一種或多種。
28. 如權(quán)利要求16所述的基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的系統(tǒng),其特 征在于,所述ANNOUNCE消息包括本地媒體流地址信息和本地網(wǎng)頁(yè)訪問(wèn)地址信 息,以確定從互聯(lián)網(wǎng)或局域網(wǎng)中通過(guò)點(diǎn)對(duì)點(diǎn)方式訪問(wèn)編碼器媒體流或網(wǎng)頁(yè)的 URL地址。
全文摘要
本發(fā)明涉及基于RTSP協(xié)議的網(wǎng)絡(luò)流媒體直播的方法和系統(tǒng),方法包括,步驟1,編碼器向流媒體服務(wù)器發(fā)送消息,通知流媒體服務(wù)器編碼器上線,流媒體服務(wù)器確認(rèn)編碼器上線;步驟2,流媒體服務(wù)器向編碼器發(fā)起媒體會(huì)話協(xié)商,在流媒體服務(wù)器和編碼器間建立會(huì)話;步驟3,在客戶端請(qǐng)求播放時(shí),流媒體服務(wù)器向播放對(duì)應(yīng)的編碼器發(fā)送消息請(qǐng)求開始播放,編碼器向流媒體服務(wù)器發(fā)送媒體流,流媒體服務(wù)器將接收到的編碼器發(fā)送的媒體流轉(zhuǎn)發(fā)給客戶端;步驟4,在客戶端停止播放時(shí),流媒體服務(wù)器向播放對(duì)應(yīng)的編碼器發(fā)送消息,編碼器接收到消息后停止媒體流的傳輸。本發(fā)明能夠使流媒體直播應(yīng)用更容易實(shí)現(xiàn),并能更好的適應(yīng)實(shí)際的網(wǎng)絡(luò)狀況。
文檔編號(hào)H04L29/06GK101442537SQ20081022626
公開日2009年5月27日 申請(qǐng)日期2008年11月11日 優(yōu)先權(quán)日2008年11月11日
發(fā)明者力 丁, 晨 范 申請(qǐng)人:北京星谷科技有限公司