專利名稱:媒體數(shù)據(jù)控制方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā) 明涉及多媒體數(shù)據(jù)處理領(lǐng)域,特別是涉及媒體數(shù)據(jù)控制方法及裝置。
背景技術(shù):
NAT (Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)是一種將私網(wǎng)地址轉(zhuǎn)換成公網(wǎng)地址的技術(shù),需要將“私網(wǎng)IP地址+端口號”轉(zhuǎn)換成“公網(wǎng)IP地址+端口號”。通過NAT技術(shù),能夠很好地解決IP地址不足的問題。在多媒體應(yīng)用中,一個媒體內(nèi)容可能包含多種數(shù)據(jù)類型(例如音頻、視頻及字幕等等),傳輸時,通常采用地址復(fù)用的方式,即不同類型的數(shù)據(jù)公用一個I P地址,但是使用不同的UDP端口,以此來區(qū)分不同的數(shù)據(jù)類型。這樣,當(dāng)在私網(wǎng)與公網(wǎng)之間進行通信時,需要進行NAT轉(zhuǎn)換的“私網(wǎng)IP地址+端口號”的數(shù)目,就與媒體內(nèi)容中包含的數(shù)據(jù)類型的數(shù)目相同。隨著SVC (Scalable Video Coding,可擴展視頻編碼)及 MVC(Multi_view VideoCoding,多視視頻編碼)等技術(shù)的出現(xiàn),一種數(shù)據(jù)類型下又可能包含多種特性的數(shù)據(jù)(例如,在基于SVC的應(yīng)用中,同樣是視頻數(shù)據(jù),可能從不同幀率、不同分辨率、不同質(zhì)量等方面又分為不同特性的視頻數(shù)據(jù),等等)。這就需要對各種數(shù)據(jù)類型的各種特性的數(shù)據(jù)進行區(qū)分。一種簡單的區(qū)分方式仍然可以通過不同的端口號進行區(qū)分,但是,只要各種不同特性的數(shù)據(jù)對應(yīng)的端口號不同,就要分別進行NAT轉(zhuǎn)換,因此會造成需要進行NAT轉(zhuǎn)換的“私網(wǎng)IP地址+端口號”數(shù)目會非常多,也即NAT的開銷會比較大。因此,在另一種方式下,是一種類型下的不同特性的數(shù)據(jù)對應(yīng)相同的I P地址及UDP端口號,從語法表示上對不同特性的數(shù)據(jù)加以區(qū)分。這就意味著,同一種類型下不同特性的數(shù)據(jù)通過同一個媒體流進行傳輸。然而,現(xiàn)有技術(shù)中,只能實現(xiàn)以媒體流為單位的控制。因此,在將同一種類型下不同特性的數(shù)據(jù)通過同一個媒體流進行傳輸?shù)那闆r下,如果在實際應(yīng)用中需要對不同特性數(shù)據(jù)進行獨立控制,則現(xiàn)有技術(shù)無法實現(xiàn)。
發(fā)明內(nèi)容
本發(fā)明提供媒體數(shù)據(jù)控制方法及裝置,能夠在將同一種類型下不同特性的數(shù)據(jù)通過同一個媒體流進行傳輸?shù)那闆r下,實現(xiàn)對不同特性數(shù)據(jù)的獨立控制。本發(fā)明一方面提供了一種媒體數(shù)據(jù)控制方法,包括接收終端發(fā)送的控制請求消息,所述控制請求消息中攜帶有子流的標(biāo)識信息,以及所述子流所屬媒體流的統(tǒng)一資源標(biāo)識符URI ;獲取所述子流的標(biāo)識信息以及所述子流所屬媒體流的URI ;根據(jù)所述子流的標(biāo)識信息以及所述子流所屬媒體流的URI,確定所述子流對應(yīng)的媒體數(shù)據(jù);基于所述媒體數(shù)據(jù),對所述子流執(zhí)行終端請求的控制操作。本發(fā)明另一方面提供了一種媒體數(shù)據(jù)控制裝置,包括第一消息接收單元,用于接收終端發(fā)送的控制請求消息,所述控制請求消息中攜帶有子流的標(biāo)識信息,以及所述子流所屬媒體流的統(tǒng)一資源標(biāo)識符URI ;信息獲取單元,用于獲取所述子流的標(biāo)識信息以及所述子流所屬媒體流的URI ;數(shù)據(jù)確定單元,用于根據(jù)所述子流的標(biāo)識信息以及所述子流所屬媒體流的URI,確定所述子流對應(yīng)的媒體數(shù)據(jù);媒體控制單元,用于基于所述媒體數(shù)據(jù),對所述子流執(zhí)行終端請求的控制操作。本發(fā)明再一方面提供了一種媒體數(shù)據(jù)控制方法,包括獲取子流的標(biāo)識信息以及所述子流所屬媒體流的統(tǒng)一資源標(biāo)識符URI ;向服務(wù)器發(fā)送攜帶有所述子流的標(biāo)識信息,以及所述子流所屬媒體流的URI的控制請求消息;接收到服務(wù)器返回的響應(yīng)消息后,對所述子流進行相應(yīng)的控制操作。
本發(fā)明又一方面提供了一種媒體數(shù)據(jù)控制裝置,包括子流信息獲取單元,用于獲取子流的標(biāo)識信息以及所述子流所屬媒體流的統(tǒng)一資源標(biāo)識符URI ;消息發(fā)送單元,用于向服務(wù)器發(fā)送攜帶有所述子流的標(biāo)識信息,以及所述子流所屬媒體流的URI的控制請求消息;操作執(zhí)行單元,用于接收到服務(wù)器返回的響應(yīng)消息后,對所述子流進行相應(yīng)的控制操作。根據(jù)本發(fā)明提供的具體實施例,本發(fā)明公開了以下技術(shù)效果本發(fā)明實施例中,通過在終端發(fā)送的控制請求消息中攜帶子流的標(biāo)識信息以及子流所屬媒體流的URI,使得服務(wù)器在收到終端的控制請求消息時,能夠獲取到這兩個信息,進而就可以根據(jù)這兩個信息獲取到終端請求的子流對應(yīng)的媒體數(shù)據(jù),然后就可以基于該媒體數(shù)據(jù),對終端請求的子流進行相應(yīng)的控制操作,例如,包括播放、暫停等等。因此,通過本發(fā)明實施例,可以使得即使在將同一種類型下不同特性的數(shù)據(jù)通過同一個媒體流進行傳輸?shù)那闆r下,也能夠?qū)崿F(xiàn)對不同特性數(shù)據(jù)的獨立控制。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是本發(fā)明實施例提供的方法的流程圖;圖2是本發(fā)明實施例提供的方法的第一示意圖;圖3是本發(fā)明實施例提供的方法的第二示意圖;圖4是本發(fā)明實施例提供的方法的第三示意圖;圖5是本發(fā)明實施例提供的裝置的示意圖;圖6是本發(fā)明實施例提供的另一方法的流程圖;圖7是本發(fā)明實施例提供的另一裝置的示意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
參見圖1,本發(fā)明實施例提供的媒體控制方法包括以下步驟SlOl :接收終端發(fā)送的控制請求消息,所述控制請求消息中攜帶有子流的標(biāo)識信息,以及所述子流所屬媒體流的URI (Uniform Resource Identif ier,統(tǒng)一資源標(biāo)識符);需要說明的是,本發(fā)明實施例可以與RTSP協(xié)議相結(jié)合使用,其中的控制請求消息可以是RTSP PLAY請求消息或RTSP PAUSE請求消息等等。S102 :獲取所述子流的標(biāo)識信息以及所述子流所屬媒體流的URI ;S103 :根據(jù)所述子 流的標(biāo)識信息以及所述子流所屬媒體流的URI,確定所述子流對應(yīng)的媒體數(shù)據(jù);子流是媒體流的一部分,并且子流可以獨立解碼。不同子流具備不同的媒體特征(媒體特征指幀率、分辨率、碼率、或者視角等),因此可以提供不同的觀看效果。例如,媒體內(nèi)容中的視頻可以采用SVC進行編碼。從時間、空間、質(zhì)量等角度上進行劃分,編碼后的碼流包含多層(分為基本層和增強層,基本層只有一個,增強層可以是多個)。其中,基本層可以獨立解碼,解碼后獲得的視頻可能幀率較低、分辨率較低、或者質(zhì)量較低,可以用于在帶寬受限或者帶寬不穩(wěn)定的應(yīng)用環(huán)境中,滿足基本的觀看需求。增強層不能獨立解碼,必須與和基本層及它之前的增強層(之前的增強層通常是指編碼時依賴的層,相應(yīng)的,解碼時也需要依賴該層才能進行解碼)聯(lián)合在一起解碼,用于提高觀看效果,具體可以是從時間、空間、或者質(zhì)量上對基本層提供的觀看效果進行提高。SVC編碼后輸出的碼流可以通過一個媒體流傳輸,即通過一個媒體流傳輸多層碼流。其中,子流由一個或者多個層組成并且可以獨立解碼,即單獨的基本層,或者基本層與一個或多個增強層的組合,都可以構(gòu)成該媒體流中的子流。當(dāng)然,需要說明的是,基本層并不是與任意的增強層組合都可以構(gòu)成一個子流,只有能夠獨立解碼的組合才可以構(gòu)成子流。例如,SVC碼流包括基本層、增強層A和增強層B,對于增強層A和增強層B,基本層+增強層A+增強層B能夠獨立解碼,則該組合可以構(gòu)成一個子流;而基本層+增強層B不能夠獨立解碼,則該組合不可以構(gòu)成一個子流。又如,如果媒體內(nèi)容中的視頻是多視視頻(多視視頻是指由所處幾何位置不同的多個攝像機輸出的多路視頻,每一路視頻簡稱為一個視,這里的攝像機可以是虛擬的攝像機),可以采用MVC對多視視頻進行編碼得到碼流,編碼過程中可以選擇其中一路視頻作為基本視,對基本視編碼時不需要進行視間預(yù)測,因此可以獨立解碼。其它視用于提供視角上的可擴展性,編碼時需要進行視間預(yù)測,因此不能獨立解碼,只能和基本視及它編碼時所依賴的視聯(lián)合在一起解碼。MVC編碼后輸出的碼流可以通過一個媒體流傳輸,即通過一個媒體流傳輸多視。其中,子流由一個或者多個視組成并且可以獨立解碼,即單獨的基本視,或者基本視與其他視中的一個或多個的組合,都可以構(gòu)成該媒體流中的子流。當(dāng)然,需要說明的是,基本視并不是與任意的其他視組合都可以構(gòu)成子流,只有能夠獨立解碼的組合才可以構(gòu)成子流。例如,MVC碼流包括基本視、其他視A和其他視B。對于其他視A和其他視B,基本視+其他視A+其他視B能夠獨立解碼,則該組合可以構(gòu)成一個子流;而基本視+其他視B不能夠獨立解碼,則該組合不可以構(gòu)成一個子流。另外,MVC還支持時間可伸縮性,即還可以從時間角度上進行劃分,將每個視的碼流分為多層。此時子流的構(gòu)成還需要考慮時間可伸縮性引入的解碼依賴關(guān)系。即某個其它視的某個時間級別的層(簡稱時間層),要和基本視及它編碼時所依賴的視中時間級別相同或者更低的層聯(lián)合在一起解碼。無論是SVC還是MVC,不同的子流提供不同的觀看效果,同時,對帶寬等通信環(huán)境的要求、對終端能力的要求也會不同。因此,如果能夠?qū)崿F(xiàn)基于子流的單獨控制,則用戶或者終端可以根據(jù)當(dāng)前的帶寬條件、終端能力等因素選擇性地接收子流,從而有利于在播放效果與播放流暢度之間達到均衡。在本發(fā)明實施例中,為了實現(xiàn)基于子流的控制,需要終端在該控制請求中攜帶子流的標(biāo)識信息,以及所述子流所屬媒體流的URI。其中,子流的標(biāo)識信息是指,在子流對應(yīng)的媒體流中能夠唯一標(biāo)識一個子流的信息,下面對此進行介紹。例如,在SVC 中,可以米用 dependency_id (D)、temporal_id (T)、quality_id (Q)來標(biāo)識不同的層。其中,dependency_id為依賴標(biāo)識,temporal _id為時間標(biāo)識,quality_id為質(zhì)量標(biāo)識。因此,終端就可以在控制請求消息中攜帶具體的(D,T,Q)的值作為子流的標(biāo)識信息,相應(yīng)的,服務(wù)器在根據(jù)媒體流URI找到媒體流對應(yīng)的數(shù)據(jù)之后,就可以進一步根據(jù)具體的(D,T,Q)的值,找到子流對應(yīng)的數(shù)據(jù)。在MVC中,子流可以采用temporal_id、view_id標(biāo)識不同視的不同時間層。其中,temporal_id為時間標(biāo)識,view_id為視標(biāo)識。因此,終端就可以在控制請求消息中攜帶具體的temporal-id和view_id的值作為子流的標(biāo)識信息,相應(yīng)的,服務(wù)器在根據(jù)媒體流URI找到媒體流對應(yīng)的數(shù)據(jù)之后,就可以進一步根據(jù)解析出的temporal-id和view_id的值,找到子流對應(yīng)的數(shù)據(jù)。總之,無論在SVC還是MVC下,終端都可以通過在控制消息中攜帶子流的標(biāo)識信息及子流所屬媒體流的URI,以便使得服務(wù)器獲知終端想要控制的是哪個媒體流的哪個子流。其中,關(guān)于子流的標(biāo)識信息及子流所屬的媒體流的URI,終端可以首先獲取媒體內(nèi)容的描述信息,從描述信息中獲取。其中,終端獲取媒體內(nèi)容的描述信息的途徑可以有多種。例如,可以預(yù)先通過HTTP協(xié)議向存儲有媒體內(nèi)容的描述信息的服務(wù)器發(fā)起獲取媒體描述信息的HTTP請求,從服務(wù)器獲取該描述信息、或者預(yù)先接收攜帶有媒體內(nèi)容的描述信息的電子郵件,從電子郵件中獲取該描述信息,當(dāng)然,還可以向服務(wù)器發(fā)起獲取媒體描述信息的RTSP請求,從服務(wù)器獲取該描述信息。例如,在終端發(fā)起控制請求之前,可以首先向服務(wù)器發(fā)送描述信息請求消息,所述描述信息請求消息為RTSP Describe請求消息,服務(wù)器在收到該消息之后,就可以向終端返回媒體內(nèi)容的描述信息,該描述信息中就可以包括媒體流的個數(shù)、各媒體流的URI、各媒體流遞送采用的協(xié)議、傳輸協(xié)議參數(shù)、媒體編碼信息等等,此外還可以包括媒體流中所有子流的聲明信息。因此,通過解析該服務(wù)器返回的該響應(yīng)消息,終端就可以獲取到媒體流的URI,以及媒體流的子流的聲明信息,進而從子流的聲明信息中就可以獲取到各子流的標(biāo)識信息。具體實現(xiàn)時,可以將子流的聲明信息作為媒體描述信息的一部分,并將媒體描述信息制作成SDP文件。在SDP文件中,為了讓終端知道SVC碼流中包含哪些層,服務(wù)器可以通過SDP文件中的參數(shù)向終端聲明SVC碼流中各個層的(D,T,Q)值(或者layer_id值,layer_id為層標(biāo)識),并指明哪些層可以組合為子流,這樣終端就可以直接將需要的子流對應(yīng)的各個層的(D,T,Q)值或者layer_id值作為子流標(biāo)識信息發(fā)送給服務(wù)器,相應(yīng)的,月艮務(wù)器解析出的子流對應(yīng)的各個層的(D,T,Q)值或者layer_id值。在解析出(D,T,Q)值或者layer_id值之后,服務(wù)器分別按照各層的(D,T,Q)值或者layer_id值去獲取各層對應(yīng)的數(shù)據(jù)即可。此外,在實際應(yīng)用中,還可以采用另一種方式實現(xiàn),具體可以是在SDP文件中的參數(shù)中,通過屬性行a = fmtp中的參數(shù)sprop-operat ion-point-info攜帶一組操作點描述矢量,一個操作點描述矢量用來聲明一個操作點。操作點描述矢量的格式可以為<layer-ID, temporal-ID, dependency-ID, quality-ID, profiIe-level-ID,avg-framerate, width, height, avg-bitrate, max_bitrate>0 其中 layer-ID 為操作點的層標(biāo)識,temporal-ID為操作點的時間標(biāo)識,dependency-ID為操作點的依賴標(biāo)識,quality-ID為操作點的質(zhì)量標(biāo)識,profile-level-ID為操作點的層級標(biāo)識,avg-framerate為操作點的平均巾貞率,width為操作點對應(yīng)的視頻巾貞的寬度,height為操作點對應(yīng)的視頻巾貞的高度,avg-bitrate為操作點的平均碼率,max-bitrate為操作點的最大碼率。
其中,操作點的layer_ID、t emporal-ID>dependency-ID>quality-ID 的值分別等于操作點對應(yīng)的解碼依賴性最高的層的layer_id、temporal_id、dependency_id、quality_id 的值。可見,操作點既可以用 dependency_id(D)、temporal_id(T)、quality_id(Q)的組合進行標(biāo)識,也可以用layer_id進行標(biāo)識,并且,一個layer_id對應(yīng)著一個D、T、Q的組合。操作點對應(yīng)的是相應(yīng)的層和它之前的所有層,也即所有(D,T,Q)的值分別小于等于該操作點的(D,T,Q)的值的NAL(Network Abstraction Layer,網(wǎng)絡(luò)提取層)包組成的碼流。因此,一個操作點對應(yīng)著一個能夠獨立解碼并且具備特定媒體特征的碼流,也就是說,一個操作點對應(yīng)著一個子流。這樣,如果終端需要對某子流進行控制,則直接將對應(yīng)的操作點的(D,T,Q)值或者layer-ID值作為子流的標(biāo)識信息發(fā)送給服務(wù)器即可。相應(yīng)的,服務(wù)器解析出的是操作點的(D,T,Q)值或者I ayer-ID值。其中,如果解析出的是操作點的(D,T,Q)值,則服務(wù)器就可以直接將(D,T,Q)的取值分別小于等于服務(wù)器解析出的(D,T,Q)的取值的NAL包構(gòu)成子流對應(yīng)的媒體數(shù)據(jù);例如,服務(wù)器從終端的控制請求消息中解析出的(D,T,Q)值是(1,1,0),則服務(wù)器可以將(D,T,Q)值為(1,1,0)、(1,0,0), (0,1,0), (0,0,0)的NAL包取出,構(gòu)成子流的媒體數(shù)據(jù)。或者,如果服務(wù)器解析出的是操作點的Iayer-ID值,則可以首先將I ayer-ID的取值轉(zhuǎn)換為(D,T,Q)值,然后再將(D,T,Q)的取值小于等于服務(wù)器解析出的(D,T,Q)的取值的NAL包構(gòu)成子流對應(yīng)的媒體數(shù)據(jù)。服務(wù)器通過查詢Iayer-ID與(D,T,Q)之間的對應(yīng)關(guān)系,將Iayer-ID的取值轉(zhuǎn)換為(D,T,Q)值。該Iayer-ID與(D,T,Q)的對應(yīng)關(guān)系可以是預(yù)先存儲在服務(wù)器上的,例如,可以存放在上述SDP文件中,也可以存放在 SVC 碼流的 scalability information SEI message 中。對于MVC而言,為了向終端聲明MVC碼流中包含哪些子流,服務(wù)器同樣可以通過SDP文件中的參數(shù)向終端聲明MVC碼流中包含的視的view_id值以及每個視的時間層的temporaljd值,并指明哪些視的哪些時間層可以組合為子流。這樣終端就可以直接將需要的子流對應(yīng)的各個視的各個時間層的temporal_id和view_id值作為子流標(biāo)識信息發(fā)送給服務(wù)器,相應(yīng)的,服務(wù)器也可以在解析出temporal_id和view_id之后,分別去獲取各視的各個時間層對應(yīng)的數(shù)據(jù)即可。在實際應(yīng)用中,也可以通過SDP文件中的參數(shù)向終端聲明MVC碼流中包含哪些操作點。具體方式可以是通過屬性行a = fmt p中的參數(shù)sprop-mvc-operation-point-info攜帶一組操作點描述矢量,一個操作點描述矢量用來聲明一個操作點。操作點描述矢量的格式為〈operation-point_id, temporal-id, num-target-output-views,l*target-output-view-id, profile—level_id, avg-framerate, avg-bitrate,max-bitrate>。其中operation-point-id為操作點的標(biāo)識,temporal-ID為操作點的時間標(biāo)識,num-target-output-views為操作點的目標(biāo)輸出視的個數(shù),view-id為操作點的目標(biāo)輸出視的標(biāo)識,profile-level-ID為操作點的層級標(biāo)識,avg-framerate為操作點的平均幀率,width為操作點對應(yīng)的視頻幀的寬度,height為操作點對應(yīng)的視頻幀的高度,avg-bitrate為操作點的平均碼率,max-bitrate為操作點的最大碼率。其中,操作點的temporal-id、target-output-view-id分別等于該操作點對應(yīng)的所有視的所有時間層中時間級別最高的層的temporaljd、該操作點對應(yīng)的目標(biāo)輸出視的 view_id??梢姡僮鼽c既可以用 temporal_id 和一組 view_id(target output view的view_id)進行標(biāo)識,也可以用operation_point_id進行標(biāo)識。但操作點對應(yīng)的是所有temporal_id的取值(對應(yīng)著巾貞率)小于等于該temporal_id值 ,并且view_id的取值等于該組view_id值中的任一個,或者該組view_id值對應(yīng)的任一 view解碼所依賴(直接依賴或者間接依賴)的所有view的view_id值中的任一個的NAL包組成的碼流,因此,一個操作點對應(yīng)著一個能夠獨立解碼并且具備特定媒體特征的碼流,也就是說,一個操作點對應(yīng)的一個子流,因此,終端也可以將子流對應(yīng)的操作點的temporal_id和一組view_id(targetoutput view的view_id)或者operation-point-id作為子流標(biāo)識信息攜帶在控制請求消息中。當(dāng)然,由于服務(wù)器最終還是要根據(jù)具體的temporal-id及view_id值來查找子流對應(yīng)的具體數(shù)據(jù),因此,當(dāng)終端將operation_point_id作為子流標(biāo)識信息時,服務(wù)器進一步根據(jù) operation_point_id 與 temporal_id 和 target_output_view_id 組合的對應(yīng)關(guān)系確定操作點對應(yīng)的temporal_id與一組target output view的view_id。這種對應(yīng)關(guān)系可以有多種獲取方法。如,可以從對應(yīng)的SDP文件中的子流聲明信息中獲取,也可以通過服務(wù)器上存放的MVC碼流中的view scalability info SEI message中獲取。為了確定子流對應(yīng)的媒體數(shù)據(jù),服務(wù)器還需要進一步根據(jù)view之間的解碼依賴關(guān)系,確定該組target outputviews解碼依賴(直接依賴或者間接依賴)的view的view_id。解碼依賴關(guān)系可以根據(jù)MVC文件中的元數(shù)據(jù)(MVC碼流以文件的形式存放在服務(wù)器上,文件中除了 MVC碼流外,還有用于描述MVC文件的元數(shù)據(jù))獲取,如根據(jù)ViewIdentifierBox獲取。相應(yīng)媒體資源中所有包頭中的temporal_id的取值小于等于獲得的temporal_id的值,且view_id的取值等于服務(wù)器獲得的一組 view_id 的值(target output view 的 view_id 的值、target outputview解碼依賴的view的view_id的值)中的某個取值的NAL包構(gòu)成子流對應(yīng)的媒體數(shù)據(jù)。當(dāng)然,如果不是以SDP文件格式發(fā)送描述信息,則可以為服務(wù)器生成一個攜帶媒體流中的子流聲明信息的頭域,并在對描述信息請求消息的響應(yīng)消息中攜帶該頭域,這樣,終端可以通過解析該響應(yīng)消息的頭域,獲知子流聲明信息。具體的,所述描述信息請求消息為RTSP Describe請求消息,所述對描述信息請求消息的響應(yīng)消息為RTSP Describe的成功響應(yīng)消息。服務(wù)器通過RTSPDescribe的成功響應(yīng)消息中的頭域攜帶子流聲明信息時,對于一個包含子流的媒體流,其子流聲明信息由可以包括子流所屬的媒體流的URI和一組操作點描述矢量(可以與前文所述的操作點描述矢量一致),每個操作點描述矢量都聲明一個操作點(每個操作點對應(yīng)一個子流)。若有多個媒體流中包含子流時,該頭域中攜帶的是一組子流聲明信息,分別對應(yīng)不同的媒體流。不同媒體流的子流聲明信息之間采用特殊字符進行分隔,以便于服務(wù)器區(qū)分,這可以通過語法上的定義來實現(xiàn)。在互聯(lián)網(wǎng)標(biāo)準(zhǔn)中通常采用ABNF來描述語法定義,具體通過ABNF描述攜帶子流聲明信息的頭域的語法定義如下所述。其中,通過“分號”分隔不同媒體流的子流聲明信息,這樣,當(dāng)終端解析該頭域時,可以根據(jù)“分號”來區(qū)分出一個個的媒體流對應(yīng)的子流聲明信息。
substream-info = “substream-info,,HCOLON [substream-info-spec
*{semi substream-spec)]substream-info-spec = stream-url substream-type I * descriptor-vectorstream-url = <as defined in draft-ietf-mmusic-rfc2326bis-27>substream-type = “type” EQUAL substream-type-value substream-type-value =“SVC” / “MVC” / substream-type-value-extsubstream-type-value-ext = token
descriptor-vector = RAQUOT layer—id—value COMMA temporal—id—value
COMMA dependency—id—value COMMA quality—id—value COMMA profile—level—id—value COMMA avgframeratevalue
COMMA width—value COMMA height—value COMMAavg—bitrate—value COMMA max—bitrate—value LAQUAT/ RAQUOT operation_point_id_value COMMAtemporal—id—value
COMMA num—target—output—views—value
I* (COMMA target—output—view—id—value)
COMMA profile—level—id—valueCOMMA avg framerate value
COMMA avg—bitrate—value COMMA max—bitrate—value LAQUAT
/ descriptor-vector-ext layer—id—value = 1*4DIGIT; 0-2047 dependency—id—value = DIGIT ; 0 7 temporal—id—value = DIGIT ; 0 7 quality—id—value = 1*2DIGIT; 0~15 profile—level—id—value = *HEX avg—frame—rate—vale = * DIGIT width—value = * DIGIT height—value = *DIGIT avg—bitrate—value = * DIGIT max—bitrate—value = * DIGIT operation_point—id—value = 1*5DIGIT; 0-65535 num—target—output—views—value = P4DIGIT; 0-1023 target—output—view—id—value = 1*4DIGIT; 0-1024 descriptor-vector-ext = token HCOLON = *(SP/HT)":M SWS SWS = [LWS] ; Separating White Space LWS = [CRLF] 1*( SP / HT ); Line-breaking White Space
權(quán)利要求
1.一種媒體數(shù)據(jù)控制方法,其特征在于,包括 接收終端發(fā)送的控制請求消息,所述控制請求消息中攜帶有子流的標(biāo)識信息,以及所述子流所屬媒體流的統(tǒng)一資源標(biāo)識符URI ;獲取所述子流的標(biāo)識信息以及所述子流所屬媒體流的URI ; 根據(jù)所述子流的標(biāo)識信息以及所述子流所屬媒體流的URI,確定所述子流對應(yīng)的媒體數(shù)據(jù); 基于所述媒體數(shù)據(jù),對所述子流執(zhí)行終端請求的控制操作。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,當(dāng)所述控制請求消息為基于單個媒體流的單獨控制請求消息時,所述子流的標(biāo)識信息通過所述控制請求消息的頭域攜帶,所述子流所屬媒體流的URI通過所述控制請求消息的request-uri字段攜帶;或當(dāng)所述控制請求消息為基于單個媒體流的單獨控制請求消息時,所述子流的標(biāo)識信息及所述子流所屬媒體流的URI均通過所述控制請求消息的request-uri字段攜帶;或當(dāng)所述控制請求消息為基于多個媒體流的合控制請求消息時,所述子流的標(biāo)識信息及所述子流所屬媒體流的URI均通過所述控制請求消息的頭域攜帶。
3.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述接收終端發(fā)送的控制請求消息之前還包括 接收終端發(fā)送的描述信息請求消息; 向所述終端返回攜帶有子流聲明信息的響應(yīng)消息,以便所述終端通過所述子流聲明信息獲取所述子流的標(biāo)識信息。
4.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述獲取所述子流的標(biāo)識信息之后,該方法還包括 確定所述控制請求消息中攜帶的子流的標(biāo)識信息錯誤,向所述終端返回攜帶有子流聲明信息的響應(yīng)消息,以便所述終端根據(jù)所述響應(yīng)消息中攜帶的子流聲明信息重新獲取子流的標(biāo)識信息,并重新發(fā)送控制請求消息。
5.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述控制請求消息中還攜帶有子流控制特征標(biāo)簽,所述方法還包括 獲取所述子流控制特征標(biāo)簽; 如果能正確識別所述子流控制特征標(biāo)簽,則繼續(xù)執(zhí)行所述獲取所述子流的標(biāo)識信息以及所述子流所屬媒體流的URI及后續(xù)操作,否則拒絕所述控制請求,向終端返回攜帶有不支持子流控制的信息的響應(yīng)消息。
6.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述接收所述終端發(fā)送的控制請求消息之前還包括 接收所述終端發(fā)送的RTSP SETUP請求消息,所述RTSP SETUP請求消息中攜帶有子流控制特征標(biāo)簽; 獲取所述子流控制特征標(biāo)簽; 如果能正確識別所述子流控制特征標(biāo)簽,則向終端返回攜帶有支持子流控制的信息的響應(yīng)消息,以便所述終端發(fā)起子流控制;否則,向終端返回攜帶有不支持子流控制的信息的響應(yīng)消息。
7.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述控制請求消息中還攜帶有子流的編碼類型信息,還包括 根據(jù)所述子流的編碼類型信息獲取所述子流的編碼類型并根據(jù)所述編碼類型確定所述子流標(biāo)識信息對應(yīng)的子流。
8.一種媒體數(shù)據(jù)控制裝置,其特征在于,包括 第一消息接收單元,用于接收終端發(fā)送的控制請求消息,所述控制請求消息中攜帶有子流的標(biāo)識信息,以及所述子流所屬媒體流的統(tǒng)一資源標(biāo)識符URI ;信息獲取單元,用于獲取所述子流的標(biāo)識信息以及所述子流所屬媒體流的URI ; 數(shù)據(jù)確定單元,用于根據(jù)所述子流的標(biāo)識信息以及所述子流所屬媒體流的URI,確定所述子流對應(yīng)的媒體數(shù)據(jù); 媒體控制單元,用于基于所述媒體數(shù)據(jù),對所述子流執(zhí)行終端請求的控制操作。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,還包括 第二消息接收單元,用于接收終端發(fā)送的描述信息請求消息; 第一響應(yīng)單元,用于向所述終端返回攜帶有子流聲明信息的響應(yīng)消息,以便所述終端通過所述子流聲明信息獲取所述子流的標(biāo)識信息。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,還包括 錯誤控制單元,用于確定所述控制請求消息中攜帶的子流的標(biāo)識信息錯誤,向所述終端返回攜帶有子流聲明信息的響應(yīng)消息,以便所述終端根據(jù)所述響應(yīng)消息中攜帶的子流聲明信息重新獲取子流的標(biāo)識信息,并重新發(fā)送控制請求消息。
11.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述控制請求消息中還攜帶有子流控制特征標(biāo)簽;所述裝置還包括 第一子流控制特征標(biāo)簽獲取單元,用于獲取所述子流控制特征標(biāo)簽; 第一控制單元,用于如果能正確識別所述子流控制特征標(biāo)簽,,則觸發(fā)所述消息解析單元繼續(xù)執(zhí)行所述獲取所述子流的標(biāo)識信息以及所述子流所屬媒體流的URI及后續(xù)操作,否則拒絕所述控制請求,向終端返回攜帶有不支持子流控制的信息的響應(yīng)消息。
12.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括 第二子流控制特征標(biāo)簽獲取單元,用于接收所述終端發(fā)送的RTSP SETUP請求消息,所述RTSP SETUP請求消息中攜帶有子流控制特征標(biāo)簽;獲取所述子流控制特征標(biāo)簽; 第二控制單元,用于如果能正確識別所述子流控制特征標(biāo)簽,則向終端返回攜帶有支持子流控制的信息的響應(yīng)消息,以便所述終端發(fā)起子流控制;否則,向終端返回攜帶有不支持子流控制的信息的響應(yīng)消息。
13.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述控制請求消息中還攜帶有子流的編碼類型信息,還包括 編碼類型獲取單元,用于根據(jù)所述子流的編碼類型信息獲取所述子流的編碼類型,以便根據(jù)所述編碼類型確定所述子流標(biāo)識信息對應(yīng)的子流。
14.一種媒體數(shù)據(jù)控制方法,其特征在于,包括 獲取子流的標(biāo)識信息以及所述子流所屬媒體流的統(tǒng)一資源標(biāo)識符URI ; 向服務(wù)器發(fā)送攜帶有所述子流的標(biāo)識信息,以及所述子流所屬媒體流的URI的控制請求消息; 接收到服務(wù)器返回的響應(yīng)消息后,對所述子流進行相應(yīng)的控制操作。
15.根據(jù)權(quán)利要求14所述的方法,其特征在于,當(dāng)所述控制請求消息為基于單個媒體流的單獨控制請求消息時,所述子流的標(biāo)識信息通過所述控制請求消息的頭域攜帶,所述子流所屬媒體流的URI通過所述控制請求消息的request-uri字段攜帶;或當(dāng)所述控制請求消息為基于單個媒體流的單獨控制請求消息時,所述子流的標(biāo)識信息及所述子流所屬媒體流的URI均通過所述控制請求消息的request-uri字段攜帶;或當(dāng)所述控制請求消息為基于多個媒體流的合控制請求消息時,所述子流的標(biāo)識信息及所述子流所屬媒體流的URI均通過所述控制請求消息的頭域攜帶。
16.根據(jù)權(quán)利要求14或15所述的方法,其特征在于,所述獲取子流的標(biāo)識信息以及所述子流所屬媒體流的URI包括 向所述服務(wù)器發(fā)送描述信息請求消息; 從所述服務(wù)器返回的攜帶有子流聲明信息的響應(yīng)消息中,獲取所述子流的標(biāo)識信息以及所述子流所屬媒體流的URI。
17.根據(jù)權(quán)利要求14或15所述的方法,其特征在于,還包括 如果在發(fā)送所述控制請求消息之后,接收到服務(wù)器返回的攜帶有子流聲明信息的響應(yīng)消息,則根據(jù)所述響應(yīng)消息中攜帶的子流聲明信息重新獲取子流的標(biāo)識信息,并重新發(fā)送控制請求消息。
18.根據(jù)權(quán)利要求14或15所述的方法,其特征在于,所述控制請求消息中還攜帶有子流控制特征標(biāo)簽,以便當(dāng)所述服務(wù)器不支持子流控制時,向終端返回攜帶有不支持子流控制的信息的響應(yīng)消息。
19.根據(jù)權(quán)利要求14或15所述的方法,其特征在于,向服務(wù)器發(fā)送攜帶有所述子流的標(biāo)識信息,以及所述子流所屬媒體流的URI的控制請求消息之前,還包括 向所述服務(wù)器發(fā)送RTSP SETUP請求消息,并在所述RTSP SETUP請求消息中攜帶子流控制特征標(biāo)簽,以便當(dāng)所述服務(wù)器不支持子流控制時,向終端返回攜帶有不支持子流控制的信息的響應(yīng)消息。
20.根據(jù)權(quán)利要求14或15所述的方法,其特征在于,所述控制請求消息中還攜帶有子流的編碼類型信息,以便所述服務(wù)器根據(jù)所述子流的編碼類型信息獲取所述子流的編碼類型,根據(jù)所述編碼類型確定所述子流標(biāo)識信息對應(yīng)的子流。
21.一種媒體數(shù)據(jù)控制裝置,其特征在于,包括 子流信息獲取單元,用于獲取子流的標(biāo)識信息以及所述子流所屬媒體流的統(tǒng)一資源標(biāo)識符URI ; 消息發(fā)送單元,用于向服務(wù)器發(fā)送攜帶有所述子流的標(biāo)識信息,以及所述子流所屬媒體流的URI的控制請求消息; 操作執(zhí)行單元,用于接收到服務(wù)器返回的響應(yīng)消息后,對所述子流進行相應(yīng)的控制操作。
22.根據(jù)權(quán)利要求21所述的裝置,其特征在于,當(dāng)所述控制請求消息為基于單個媒體流的單獨控制請求消息時,所述子流的標(biāo)識信息通過所述控制請求消息的頭域攜帶,所述子流所屬媒體流的URI通過所述控制請求消息的request-uri字段攜帶;或當(dāng)所述控制請求消息為基于單個媒體流的單獨控制請求消息時,所述子流的標(biāo)識信息及所述子流所屬媒體流的URI均通過所述控制請求消息的request-uri字段攜帶;或當(dāng)所述控制請求消息為基于多個媒體流的合控制請求消息時,所述子流的標(biāo)識信息及所述子流所屬媒體流的URI均通過所述控制請求消息的頭域攜帶。
23.根據(jù)權(quán)利要求21或22所述的裝置,其特征在于,所述子流信息獲取單元包括 描述信息請求消息發(fā)送子單元,用于向所述服務(wù)器發(fā)送描述信息請求消息; 獲取子單元,用于從所述服務(wù)器返回的攜帶有子流聲明信息的響應(yīng)消息中,獲取所述子流的標(biāo)識信息以及所述子流所屬媒體流的URI。
24.根據(jù)權(quán)利要求21或22所述的裝置,其特征在于,還包括 重新發(fā)送單元,用于如果在發(fā)送所述控制請求消息之后,接收到服務(wù)器返回的攜帶有子流聲明信息的響應(yīng)消息,則根據(jù)所述響應(yīng)消息中攜帶的子流聲明信息重新獲取子流的標(biāo)識信息,并重新發(fā)送控制請求消息。
25.根據(jù)權(quán)利要求21或22所述的裝置,其特征在于,所述控制請求消息中還攜帶有子流控制特征標(biāo)簽,以便當(dāng)所述服務(wù)器不支持子流控制時,向終端返回攜帶有不支持子流控制的信息的響應(yīng)消息。
26.根據(jù)權(quán)利要求21或22所述的裝置,其特征在于,還包括 RTSP SETUP請求消息發(fā)送單元,用于向所述服務(wù)器發(fā)送RTSP SETUP請求消息,并在所述RTSP SETUP請求消息中攜帶子流控制特征標(biāo)簽,以便當(dāng)所述服務(wù)器不支持子流控制時,向終端返回攜帶有不支持子流控制的信息的響應(yīng)消息。
27.根據(jù)權(quán)利要求21或22所述的裝置,其特征在于,所述控制請求消息中還攜帶有子流的編碼類型信息,以便所述服務(wù)器根據(jù)所述子流的編碼類型信息獲取所述子流的編碼類型,根據(jù)所述編碼類型確定所述子流標(biāo)識信息對應(yīng)的子流。
全文摘要
本發(fā)明公開了媒體數(shù)據(jù)控制方法及裝置,其中一種方法包括接收終端發(fā)送的控制請求消息,所述控制請求消息中攜帶有子流的標(biāo)識信息,以及所述子流所屬媒體流的統(tǒng)一資源標(biāo)識符URI;獲取所述子流的標(biāo)識信息以及所述子流所屬媒體流的URI;根據(jù)所述子流的標(biāo)識信息以及所述子流所屬媒體流的URI,確定所述子流對應(yīng)的媒體數(shù)據(jù);基于所述媒體數(shù)據(jù),對所述子流執(zhí)行終端請求的控制操作。通過本發(fā)明,能夠在將同一種類型下不同特性的數(shù)據(jù)通過同一個媒體流進行傳輸?shù)那闆r下,實現(xiàn)對不同特性數(shù)據(jù)的獨立控制。
文檔編號H04L29/06GK102857478SQ20111018211
公開日2013年1月2日 申請日期2011年6月30日 優(yōu)先權(quán)日2011年6月30日
發(fā)明者張園園, 樂培玉, 石騰, 惠宇 申請人:華為技術(shù)有限公司