專利名稱:支持多個(gè)實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)源的智能流媒體服務(wù)器的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于網(wǎng)絡(luò)多媒體技術(shù)領(lǐng)域,尤其涉及一種支持多個(gè)實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)源的智能流媒體服務(wù)器的實(shí)現(xiàn)方法。
背景技術(shù):
在諸多的實(shí)時(shí)網(wǎng)絡(luò)流媒體應(yīng)用如網(wǎng)絡(luò)攝像機(jī)和即時(shí)通信中,基于點(diǎn)對(duì)點(diǎn)(peer-to-peer ,P2P)的網(wǎng)絡(luò)技術(shù)因?yàn)槠浞€(wěn)定的分散式結(jié)構(gòu)和較低的運(yùn)營成本而越來越普及。但是現(xiàn)有的點(diǎn)對(duì)點(diǎn)技術(shù)具有以下一些缺點(diǎn)(1)點(diǎn)對(duì)點(diǎn)連接建立的時(shí)間比較長;(2)因?yàn)榉阑饓蚓W(wǎng)絡(luò)地址翻譯器(NAT)的大量部署,點(diǎn)對(duì)點(diǎn)連接無法保證100%的連接成功;(3) 現(xiàn)在越來越普及的智能手機(jī)和平板電腦在不安裝額外的應(yīng)用程序情況下,無法支持特定程序的點(diǎn)對(duì)點(diǎn)連接?,F(xiàn)有的流媒體服務(wù)器大部分都是基于點(diǎn)播系統(tǒng)(VOD)模式,以靜態(tài)的存儲(chǔ)設(shè)備上的文件作為數(shù)據(jù)源。這種流媒體無法滿足實(shí)時(shí)多媒體應(yīng)用,主要體現(xiàn)在
(1)現(xiàn)有的主流流媒體服務(wù)器協(xié)議只能管理和發(fā)送靜態(tài)流媒體文件,而實(shí)時(shí)流媒體應(yīng)用中的數(shù)據(jù)源都是動(dòng)態(tài)產(chǎn)生的,如電腦攝像頭或者網(wǎng)絡(luò)攝像機(jī);
(2)現(xiàn)有的主流流媒體服務(wù)器通常都要求有特定的客戶端軟件,比較常用的flash軟件,而很多智能手機(jī)或者平板電腦(如iPad)中都無法支持;
(3)現(xiàn)有的主流流媒體服務(wù)器配置基本都很復(fù)雜,對(duì)服務(wù)器硬件的要求也很高,很難和實(shí)時(shí)流媒體應(yīng)用進(jìn)行整合。除了上述的主流流媒體服務(wù)器,市面上也有一些內(nèi)嵌在網(wǎng)絡(luò)攝像機(jī)中的輕型流媒體服務(wù)器能夠以超文本傳送協(xié)議(HTTP )發(fā)送流媒體數(shù)據(jù),但是這種流媒體服務(wù)器只能服務(wù)單一的數(shù)據(jù)源,無法作為真正的實(shí)用的流媒體服務(wù)器。而且,由于網(wǎng)絡(luò)攝像機(jī)通常都部署在防火墻或者NAT后面,所以通過HTTP協(xié)議很難訪問到這樣的流媒體服務(wù)器。
發(fā)明內(nèi)容
為解決上述現(xiàn)有技術(shù)中存在的問題,本發(fā)明提出一種支持多個(gè)實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)源的智能流媒體服務(wù)器的實(shí)現(xiàn)方法,該方法克服了現(xiàn)有技術(shù)中流媒體服務(wù)器配置復(fù)雜、無法滿足實(shí)時(shí)多媒體應(yīng)用、只能服務(wù)單一的數(shù)據(jù)源等缺陷。為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明采用的技術(shù)方案為一種支持多個(gè)實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)源的智能流媒體服務(wù)器的實(shí)現(xiàn)方法,包括視頻觀看終端、流媒體數(shù)據(jù)源、流媒體服務(wù)器、視頻源通信模塊、應(yīng)用服務(wù)器及應(yīng)用服務(wù)器通信模塊,具體工作過程為視頻觀看終端向應(yīng)用服務(wù)器發(fā)出訪問請(qǐng)求,經(jīng)過應(yīng)用服務(wù)器的身份認(rèn)證,取得相應(yīng)權(quán)限,并將這些數(shù)據(jù)通過進(jìn)程通信約定函數(shù)發(fā)送給視頻觀看終端;同時(shí),應(yīng)用服務(wù)器在收到視頻觀看終端的請(qǐng)求后指示被請(qǐng)求的視頻源去連接流媒體服務(wù)器并向流媒體服務(wù)器發(fā)送請(qǐng)求命令。流媒體服務(wù)器收到請(qǐng)求命令時(shí),檢查視頻觀看終端從已有的應(yīng)用服務(wù)器那里拿到的進(jìn)程通信約定函數(shù),并依據(jù)進(jìn)程通信約定函數(shù),從視頻源取得相關(guān)數(shù)據(jù)并轉(zhuǎn)發(fā)到對(duì)應(yīng)的視頻觀看終端。進(jìn)一步地,流媒體服務(wù)器采用基于引用計(jì)數(shù)的內(nèi)存緩沖池管理方法管理視頻數(shù)據(jù),該方法包括以下步驟
(1)當(dāng)流媒體數(shù)據(jù)源有數(shù)據(jù)來時(shí),流媒體服務(wù)器從空閑緩沖池中申請(qǐng)一個(gè)空閑緩沖區(qū)分配給請(qǐng)求的數(shù)據(jù)源;
(2)流媒體服務(wù)器將填充了數(shù)據(jù)的緩沖區(qū)添加到對(duì)應(yīng)的視頻觀看終端的發(fā)送隊(duì)列等待發(fā)送,由于同一個(gè)數(shù)據(jù)源可以被多個(gè)視頻觀看終端觀看,所以填充的緩沖區(qū)可能被加到多個(gè)發(fā)送隊(duì)列,每添加到一個(gè)隊(duì)列,其對(duì)應(yīng)的引用計(jì)數(shù)就被加1,而當(dāng)某個(gè)緩沖區(qū)從某個(gè)發(fā)送隊(duì)列發(fā)送出去后,其對(duì)應(yīng)的引用計(jì)數(shù)就減1,為0時(shí)該緩沖區(qū)就被放回到空閑緩沖池中; (3)當(dāng)流媒體數(shù)據(jù)源與某個(gè)視頻觀看終端的網(wǎng)絡(luò)帶寬不對(duì)稱時(shí),流媒體服務(wù)器根據(jù)該視頻觀看終端的實(shí)際速度自動(dòng)丟棄來不及發(fā)送的緩沖區(qū)。進(jìn)一步地,流媒體數(shù)據(jù)源可以為網(wǎng)絡(luò)攝像機(jī)、電腦攝像頭或其他流媒體文件。進(jìn)一步地,視頻觀看終端為智能手機(jī)或電腦。更進(jìn)一步地,視頻源通信模塊支持實(shí)時(shí)視頻流與抓拍格式連接視頻源。本發(fā)明采用的技術(shù)方案與現(xiàn)有技術(shù)相比,更能適用于公共網(wǎng)絡(luò)的應(yīng)用,解決互聯(lián)網(wǎng)連接不穩(wěn)定的問題,隨時(shí)取得最實(shí)時(shí)以及最穩(wěn)定的傳輸效果。采用基于引用計(jì)數(shù)的內(nèi)存緩沖池管理方法顯著減低了傳統(tǒng)的動(dòng)態(tài)分配內(nèi)存緩沖區(qū)的運(yùn)行開銷,同時(shí)也消除了對(duì)于單個(gè)視頻觀看終端能察看的數(shù)據(jù)源的個(gè)數(shù)限制。
圖I本發(fā)明支持多個(gè)實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)源的智能流媒體服務(wù)器系統(tǒng)框架 圖2為基于引用計(jì)數(shù)的內(nèi)存緩沖池管理方法的工作示意圖。
具體實(shí)施例方式本發(fā)明支持多個(gè)實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)源的智能流媒體服務(wù)器系統(tǒng)框架圖如圖I所示的,包括視頻觀看終端、流媒體數(shù)據(jù)源、流媒體服務(wù)器、視頻源通信模塊、應(yīng)用服務(wù)器及應(yīng)用服務(wù)器通信模塊。本發(fā)明中的視頻源通信模塊支持實(shí)時(shí)視頻流與抓拍格式連接視頻源;應(yīng)用服務(wù)器通信模塊與現(xiàn)有的應(yīng)用服務(wù)器模塊實(shí)現(xiàn)方式類似,用來連接已有的應(yīng)用服務(wù)器,例如XMPP服務(wù)器;流媒體數(shù)據(jù)源可以來自網(wǎng)絡(luò)攝像機(jī),或者裝有攝像頭的電腦,也可以是基于流媒體文件的實(shí)時(shí)流媒體數(shù)據(jù)源模擬器;對(duì)于流媒體服務(wù)器來說,流媒體數(shù)據(jù)源的類型是透明的,只要它們遵循同樣的通信協(xié)議;應(yīng)用服務(wù)器中有管理者建立的完整的用戶列表以及授權(quán)列表;本發(fā)明中的流媒體服務(wù)器不同于普通流媒體服務(wù)器,沒有存放用戶帳號(hào)以及權(quán)限的數(shù)據(jù)庫,視頻觀看終端的身份認(rèn)證和權(quán)限控制是在已有的應(yīng)用服務(wù)器如XMPP服務(wù)器上完成的。本發(fā)明的工作過程如下視頻觀看終端向應(yīng)用服務(wù)器發(fā)出訪問請(qǐng)求,經(jīng)過應(yīng)用服務(wù)器的身份認(rèn)證,取得相應(yīng)權(quán)限,并將這些數(shù)據(jù)通過進(jìn)程通信約定(Socket)函數(shù)發(fā)送給視頻觀看終端;同時(shí),應(yīng)用服務(wù)器在收到視頻觀看終端的請(qǐng)求后指示被請(qǐng)求的視頻源去連接流媒體服務(wù)器并向流媒體服務(wù)器發(fā)送請(qǐng)求命令。流媒體服務(wù)器收到請(qǐng)求命令時(shí),檢查視頻觀看終端從已有的應(yīng)用服務(wù)器那里拿到的進(jìn)程通信約定(Socket)函數(shù),并依據(jù)進(jìn)程通信約定(Socket)函數(shù),通過調(diào)用基于引用計(jì)數(shù)的內(nèi)存緩沖池的管理辦法從視頻源取得相關(guān)數(shù)據(jù)并轉(zhuǎn)發(fā)到對(duì)應(yīng)的視頻觀看終端。本發(fā)明流媒體服務(wù)器的基于引用計(jì)數(shù)的內(nèi)存緩沖池管理方法,其工作示意圖如圖2所示,圖2中上面的大橢圓部分表示的是系統(tǒng)的空閑緩沖池,存放當(dāng)前所有的空閑緩沖區(qū)。當(dāng)視頻數(shù)據(jù)源有數(shù)據(jù)來時(shí),便從空閑緩沖池中申請(qǐng)一個(gè)空閑緩沖區(qū)分配給請(qǐng)求的數(shù)據(jù)源,如圖2的中部所示,然后將填充了數(shù)據(jù)的緩沖區(qū)添加到對(duì)應(yīng)的視頻觀看終端的發(fā)送隊(duì)列等待發(fā)送,如圖2的下面部分所示。因?yàn)橥粋€(gè)數(shù)據(jù)源可以被多個(gè)視頻觀看終端觀看,所以填充的緩沖區(qū)可能被加到多個(gè)發(fā)送隊(duì)列,每添加到一個(gè)隊(duì)列,其對(duì)應(yīng)的引用計(jì)數(shù)就加1,而當(dāng)某個(gè)緩沖區(qū)從某個(gè)發(fā)送隊(duì)列發(fā)送出去后,其對(duì)應(yīng)的引用計(jì)數(shù)就減1,為0時(shí)該緩沖區(qū)就被放回到空閑緩沖池中。圖2中每個(gè)緩沖區(qū)小括號(hào)中的數(shù)字代表該緩沖區(qū)的引用計(jì)數(shù)。圖2中可以看出視頻觀看終端2的網(wǎng)絡(luò)下載速度比較慢,因?yàn)槠浒l(fā)送隊(duì)列中的等待發(fā)送的緩沖區(qū)比較多。這種數(shù)據(jù)源和視頻觀看終端的網(wǎng)絡(luò)帶寬不對(duì)稱性在現(xiàn)實(shí)中是很常見的,而基于引用計(jì)數(shù)的緩沖池的管理則可以根據(jù)視頻觀看終端的實(shí)際速度自動(dòng)丟棄來不 及發(fā)送的緩沖區(qū),從而達(dá)到對(duì)不同網(wǎng)絡(luò)狀況的視頻觀看終端實(shí)行不同的視頻幀率的控制。這種緩沖池的管理方式顯著減低了傳統(tǒng)的動(dòng)態(tài)分配內(nèi)存緩沖區(qū)的運(yùn)行開銷,同時(shí)也消除了對(duì)于單個(gè)視頻觀看終端能察看的數(shù)據(jù)源的個(gè)數(shù)限制。本發(fā)明流媒體服務(wù)器支持最常見的超文本傳送協(xié)議(HTTP),各種網(wǎng)頁瀏覽器都可以支持對(duì)于支持MJPEG的瀏覽器(如Firefox),流媒體服務(wù)器選擇視頻流(streaming)的方式;而對(duì)于無法支持MJPEG的瀏覽器(如IE或很多手機(jī)瀏覽器),流媒體服務(wù)器則選擇抓拍(snapshot)的方式。因?yàn)閹缀跛械木W(wǎng)絡(luò)設(shè)備基本都有網(wǎng)頁瀏覽器,所以幾乎所有的網(wǎng)絡(luò)終端在無需安裝額外的軟件的情況下都可以作為視頻觀看終端。
權(quán)利要求
1.一種支持多個(gè)實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)源的智能流媒體服務(wù)器的實(shí)現(xiàn)方法,包括視頻觀看終端、流媒體數(shù)據(jù)源、流媒體服務(wù)器、視頻源通信模塊、應(yīng)用服務(wù)器及應(yīng)用服務(wù)器通信模塊,其特征在于視頻觀看終端向應(yīng)用服務(wù)器發(fā)出訪問請(qǐng)求,經(jīng)過應(yīng)用服務(wù)器的身份認(rèn)證,取得相應(yīng)權(quán)限,并將這些數(shù)據(jù)通過進(jìn)程通信約定函數(shù)發(fā)送給視頻觀看終端;同時(shí),應(yīng)用服務(wù)器在收到視頻觀看終端的請(qǐng)求后指示被請(qǐng)求的視頻源去連接流媒體服務(wù)器并向流媒體服務(wù)器發(fā)送請(qǐng)求命令;流媒體服務(wù)器收到請(qǐng)求命令時(shí),檢查視頻觀看終端從已有的應(yīng)用服務(wù)器那里拿到的進(jìn)程通信約定函數(shù),并依據(jù)進(jìn)程通信約定函數(shù),從視頻源取得相關(guān)數(shù)據(jù)并轉(zhuǎn)發(fā)到對(duì)應(yīng)的視頻觀看終端。
2.如權(quán)利要求I所述的支持多個(gè)實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)源的智能流媒體服務(wù)器的實(shí)現(xiàn)方法,其特征在于所述流媒體服務(wù)器采用基于引用計(jì)數(shù)的內(nèi)存緩沖池管理方法管理視頻數(shù)據(jù),該方法包括以下步驟 (1)當(dāng)流媒體數(shù)據(jù)源有數(shù)據(jù)來時(shí),流媒體服務(wù)器從空閑緩沖池中申請(qǐng)一個(gè)空閑緩沖區(qū)分配給請(qǐng)求的數(shù)據(jù)源; (2)流媒體服務(wù)器將填充了數(shù)據(jù)的緩沖區(qū)添加到對(duì)應(yīng)的視頻觀看終端的發(fā)送隊(duì)列等待發(fā)送,由于同一個(gè)數(shù)據(jù)源可以被多個(gè)視頻觀看終端觀看,所以填充的緩沖區(qū)可能被加到多個(gè)發(fā)送隊(duì)列,每添加到一個(gè)隊(duì)列,其對(duì)應(yīng)的引用計(jì)數(shù)就被加1,而當(dāng)某個(gè)緩沖區(qū)從某個(gè)發(fā)送隊(duì)列發(fā)送出去后,其對(duì)應(yīng)的引用計(jì)數(shù)就減1,為O時(shí)該緩沖區(qū)就被放回到空閑緩沖池中; (3)當(dāng)流媒體數(shù)據(jù)源與某個(gè)視頻觀看終端的網(wǎng)絡(luò)帶寬不對(duì)稱時(shí),流媒體服務(wù)器根據(jù)該視頻觀看終端的實(shí)際速度自動(dòng)丟棄來不及發(fā)送的緩沖區(qū)。
3.如權(quán)利要求I所述的支持多個(gè)實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)源的智能流媒體服務(wù)器的實(shí)現(xiàn)方法,其特征在于所述流媒體數(shù)據(jù)源可以為網(wǎng)絡(luò)攝像機(jī)、電腦攝像頭或其他流媒體文件。
4.如權(quán)利要求I所述的支持多個(gè)實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)源的智能流媒體服務(wù)器的實(shí)現(xiàn)方法,其特征在于所述視頻觀看終端為智能手機(jī)或電腦。
5.如權(quán)利要求I所述的支持多個(gè)實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)源的智能流媒體服務(wù)器的實(shí)現(xiàn)方法,其特征在于所述視頻源通信模塊支持實(shí)時(shí)視頻流與抓拍格式連接視頻源。
全文摘要
本發(fā)明涉及一種支持多個(gè)實(shí)時(shí)動(dòng)態(tài)數(shù)據(jù)源的智能流媒體服務(wù)器的實(shí)現(xiàn)方法,包括視頻觀看終端、流媒體數(shù)據(jù)源、流媒體服務(wù)器、視頻源通信模塊、應(yīng)用服務(wù)器及應(yīng)用服務(wù)器通信模塊,本發(fā)明中的流媒體服務(wù)器不同于普通流媒體服務(wù)器,沒有存放用戶帳號(hào)以及權(quán)限的數(shù)據(jù)庫,視頻觀看終端的身份認(rèn)證和權(quán)限控制是在已有的應(yīng)用服務(wù)器上完成的。因此更能適用于公共網(wǎng)絡(luò)的應(yīng)用,解決互聯(lián)網(wǎng)連接不穩(wěn)定的問題,隨時(shí)取得最實(shí)時(shí)以及最穩(wěn)定的傳輸效果。同時(shí),本發(fā)明還提出了一種基于引用計(jì)數(shù)的內(nèi)存緩沖池的管理辦法,這種緩沖池的管理方式顯著減低了傳統(tǒng)的動(dòng)態(tài)分配內(nèi)存緩沖區(qū)的運(yùn)行開銷,同時(shí)也消除了對(duì)于單個(gè)視頻觀看終端能察看的數(shù)據(jù)源的個(gè)數(shù)限制。
文檔編號(hào)H04N21/643GK102802041SQ201210276568
公開日2012年11月28日 申請(qǐng)日期2012年8月6日 優(yōu)先權(quán)日2012年8月6日
發(fā)明者何建億 申請(qǐng)人:何建億