欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種多媒體流的識別方法、裝置及設(shè)備的制作方法

文檔序號:7777967閱讀:192來源:國知局
一種多媒體流的識別方法、裝置及設(shè)備的制作方法
【專利摘要】本發(fā)明實施例提供了一種多媒體流的識別方法、裝置及設(shè)備,根據(jù)獲取的RTSP包中攜帶的、用于標(biāo)識傳輸多媒體流所采用的傳輸機(jī)制的傳輸機(jī)制參數(shù)值,確定是否采用TCP協(xié)議傳輸所述多媒體流;當(dāng)確定采用TCP協(xié)議傳輸多媒體流時,根據(jù)獲取的RTSP包中攜帶的、用于標(biāo)識不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道參數(shù)值,確定不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道標(biāo)識;在接收多媒體流時,根據(jù)接收的多媒體流在傳輸時使用的傳輸通道的通道標(biāo)識,識別接收的多媒體流的類型。實現(xiàn)了對基于TCP傳輸?shù)牧髅襟w數(shù)據(jù)包進(jìn)行識別。本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域。
【專利說明】一種多媒體流的識別方法、裝置及設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通信【技術(shù)領(lǐng)域】,尤其涉及一種多媒體流的識別方法、裝置及設(shè)備?!颈尘凹夹g(shù)】
[0002]現(xiàn)有技術(shù)中的多媒體流的傳輸方式為:將音頻、視頻、以及多媒體文件按照指定格式生成多個壓縮包,并按照流的方式進(jìn)行傳輸。接收到多媒體流的用戶,不必等待整個多媒體流傳輸完畢,就能夠在多媒體流傳輸?shù)倪^程中,解壓并播放音頻、視頻、以及多媒體文件,實現(xiàn)了多媒體數(shù)據(jù)的實時傳輸。
[0003]目前,常用的與多媒體流傳輸相關(guān)的網(wǎng)絡(luò)協(xié)議主要包括如下幾種:實時傳輸協(xié)議(RTP, Real-time Transport Protocol)、實時傳輸控制協(xié)議(RTCP, Real-time TransportControl Protocol)、以及實時流協(xié)議(RTSP, Real Time Streaming Protocol)。
[0004]RTP被定義為傳輸音頻、視頻、以及多媒體文件等實時數(shù)據(jù)的傳輸協(xié)議,與傳統(tǒng)的注重高可靠的數(shù)據(jù)傳輸?shù)膫鬏攲訁f(xié)議相比,RTP更加側(cè)重數(shù)據(jù)傳輸?shù)膶崟r性。因此,RTP本身并不能為按順序傳送多媒體數(shù)據(jù)包提供可靠的傳輸機(jī)制,也不提供流量控制或擁塞控制,而是由RTCP提供這些服務(wù)。在RTP會話期間,各參與者周期性地傳送RTCP包。RTCP包中含有已發(fā)送的數(shù)據(jù)包的數(shù)量、丟失的數(shù)據(jù)包的數(shù)量等統(tǒng)計資料,因此,服務(wù)器可以利用這些信息動態(tài)地改變傳輸速率,甚至改變有效載荷類型。RTP和RTCP配合使用,能以有效的反饋和最小的開銷使傳輸效率最佳化。RTSP是應(yīng)用層協(xié)議,常與RTP結(jié)合使用,在多媒體流傳輸?shù)膯与A段負(fù)責(zé)服務(wù)器和客戶端之間的、與傳輸相關(guān)參數(shù)的協(xié)商。
[0005]但是,Internet環(huán)境是復(fù)雜多變的,流媒體文件在傳輸過程中,容易出現(xiàn)分片、丟包、亂序等現(xiàn)象,導(dǎo)致客戶端在對接收到多媒體流進(jìn)行播放時,出現(xiàn)唇音不同步、卡頓、馬賽克等現(xiàn)象。因此,在多媒體流傳輸?shù)闹虚g節(jié)點(diǎn)(例如:路由器)上提前識別多媒體數(shù)據(jù)包,并對識別出的多媒體數(shù)據(jù)包中的多媒體數(shù)據(jù)進(jìn)行重新排序和音視頻同步等處理,能夠避免在客戶端播放多媒體流時出現(xiàn)的上述問題。
[0006]現(xiàn)有技術(shù)中,RTP通?;赨DP進(jìn)行傳輸,因此,現(xiàn)有技術(shù)中能夠識別的流媒體數(shù)據(jù)包,通常是基于UDP進(jìn)行傳輸?shù)?,又由于UDP是不可靠的傳輸協(xié)議,越來越多的多媒體流開始基于TCP進(jìn)行傳輸,因此,對基于TCP傳輸?shù)牧髅襟w數(shù)據(jù)包進(jìn)行識別成為亟待解決的問題。

【發(fā)明內(nèi)容】

[0007]本發(fā)明實施例提供了一種多媒體流的識別方法、裝置及設(shè)備,用以解決現(xiàn)有技術(shù)中無法對基于TCP傳輸?shù)牧髅襟w數(shù)據(jù)包進(jìn)行識別的問題。
[0008]基于上述問題,本發(fā)明實施例提供的一種多媒體流的識別方法,包括:
[0009]根據(jù)獲取的實時流協(xié)議RTSP包中攜帶的、用于標(biāo)識傳輸多媒體流所采用的傳輸機(jī)制的傳輸機(jī)制參數(shù)值,確定是否采用TCP協(xié)議傳輸所述多媒體流;
[0010]當(dāng)確定采用TCP協(xié)議傳輸所述多媒體流時,根據(jù)所述獲取的RTSP包中攜帶的、用于標(biāo)識不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道參數(shù)值,確定所述不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道標(biāo)識,其中,多媒體流的類型包括視頻數(shù)據(jù)流、音頻數(shù)據(jù)流、視頻控制流、以及音頻控制流;
[0011]在接收多媒體流時,根據(jù)接收的多媒體流在傳輸時使用的傳輸通道的通道標(biāo)識,識別接收的多媒體流的類型。
[0012]本發(fā)明實施例提供的一種多媒體流的識別裝置,包括:
[0013]傳輸機(jī)制確定模塊,用于根據(jù)獲取的實時流協(xié)議RTSP包中攜帶的、用于標(biāo)識傳輸多媒體流所采用的傳輸機(jī)制的傳輸機(jī)制參數(shù)值,確定是否采用TCP協(xié)議傳輸所述多媒體流;
[0014]通道標(biāo)識確定模塊,用于當(dāng)確定采用TCP協(xié)議傳輸所述多媒體流時,根據(jù)所述獲取的RTSP包中攜帶的、用于標(biāo)識不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道參數(shù)值,確定所述不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道標(biāo)識,其中,多媒體流的類型包括視頻數(shù)據(jù)流、音頻數(shù)據(jù)流、視頻控制流、以及音頻控制流;
[0015]多媒體類型確定模塊,用于在接收多媒體流時,根據(jù)接收的多媒體流在傳輸時使用的傳輸通道的通道標(biāo)識,識別接收的多媒體流的類型。
[0016]本發(fā)明實施例提供的一種多媒體流的識別設(shè)備,包括:上述的多媒體流的識別裝置。
[0017]本發(fā)明實施例的有益效果包括:
[0018]本發(fā)明實施例提供的一種多媒體流的識別方法、裝置及設(shè)備,根據(jù)獲取的RTSP包中攜帶的、用于標(biāo)識傳輸多媒體流所采用的傳輸機(jī)制的傳輸機(jī)制參數(shù)值,確定是否采用TCP協(xié)議傳輸所述多媒體流;當(dāng)確定采用TCP協(xié)議傳輸多媒體流時,根據(jù)獲取的RTSP包中攜帶的、用于標(biāo)識不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道參數(shù)值,確定不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道標(biāo)識;在接收多媒體流時,根據(jù)接收的多媒體流在傳輸時使用的傳輸通道的通道標(biāo)識,識別接收的多媒體流的類型。實現(xiàn)了對基于TCP傳輸?shù)牧髅襟w數(shù)據(jù)包進(jìn)行識別,因此,可以對識別出的多媒體流的類型為多媒體數(shù)據(jù)流中的多媒體數(shù)據(jù)進(jìn)行重新排序、音視頻同步等處理,避免了在客戶端播放多媒體流時出現(xiàn)唇音不同步、卡頓、馬賽克等問題。
【專利附圖】

【附圖說明】
[0019]圖1為本發(fā)明實施例提供的一種多媒體流的識別方法的流程圖;
[0020]圖2為本發(fā)明實施例1提供的一種多媒體流的識別方法的流程圖;
[0021]圖3為本發(fā)明實施例2提供的一種多媒體流的識別方法的流程圖;
[0022]圖4為本發(fā)明實施例3提供的一種多媒體流的識別方法的流程圖;
[0023]圖5為本發(fā)明實施例4提供的確定TCP載荷中包含的interleaved frame的方法的流程圖;
[0024]圖6a-圖6d為本發(fā)明實施例提供的通過軟件抓取的RTSP包以及RTP數(shù)據(jù)包圖;
[0025]圖7為本發(fā)明實施例提供的一種多媒體流的識別裝置的結(jié)構(gòu)示意圖。
【具體實施方式】[0026]本發(fā)明實施例提供了一種多媒體流的識別方法、裝置及設(shè)備,以下結(jié)合說明書附圖對本發(fā)明的優(yōu)選實施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。并且在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
[0027]本發(fā)明實施例提供一種多媒體流的識別方法,如圖1所示,包括:
[0028]S101、根據(jù)獲取的RTSP包中攜帶的、用于標(biāo)識傳輸多媒體流所采用的傳輸機(jī)制的傳輸機(jī)制參數(shù)值,確定是否采用TCP協(xié)議傳輸多媒體流。
[0029]S102、當(dāng)確定采用TCP協(xié)議傳輸所述多媒體流時,根據(jù)獲取的RTSP包中攜帶的、用于標(biāo)識不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道參數(shù)值,確定不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道標(biāo)識,其中,多媒體流的類型包括視頻數(shù)據(jù)流、音頻數(shù)據(jù)流、視頻控制流、以及音頻控制流。
[0030]S103、在接收多媒體流時,根據(jù)接收的多媒體流在傳輸時使用的傳輸通道的通道標(biāo)識,識別接收的多媒體流的類型。
[0031]進(jìn)一步地,本發(fā)明提供的一種多媒體流的識別方法可以應(yīng)用在多媒體流傳輸?shù)闹虚g節(jié)點(diǎn)(例如:路由器)上提前識別多媒體數(shù)據(jù)包。
[0032]進(jìn)一步地,在上述步驟SlOl之前,還可以包括判斷獲取的數(shù)據(jù)包是否為RTSP包的步驟。由于協(xié)議規(guī)定RTSP的對應(yīng)端口為554,當(dāng)獲取到目的端口為554的數(shù)據(jù)包時,可以確定該獲取的數(shù)據(jù)包為RTSP數(shù)據(jù)包。也就是說,可以通過RTSP對應(yīng)的端口,識別獲取的數(shù)據(jù)包是否為RTSP包。
[0033]進(jìn)一步地,上述獲取目的端口為554的數(shù)據(jù)包,是由于上述步驟SlOl中獲取的數(shù)據(jù)包為客戶端發(fā)送給服務(wù)器的RTSP包。例如下述應(yīng)用場景:當(dāng)客戶端通過網(wǎng)絡(luò)觀看視頻,點(diǎn)擊播放按鈕之后,客戶端會向視頻所在的服務(wù)器發(fā)送RTSP包,對后續(xù)傳輸多媒體流進(jìn)行傳輸參數(shù)協(xié)商,在位于多媒體流傳輸?shù)穆酚善魃汐@取該RTSP包,目的端口為554。
[0034]下面結(jié)合附圖,用具體實施例對本發(fā)明提供的方法及相關(guān)設(shè)備進(jìn)行詳細(xì)描述。
[0035]實施例1:
[0036]本發(fā)明實施例1,如圖2所示,具體包括如下步驟:
[0037]S201、判斷獲取的RTSP包中攜帶的方法標(biāo)識是否為設(shè)置(SETUP),若是,則進(jìn)入步驟S202 ;若否,則繼續(xù)對后續(xù)RTSP包進(jìn)行解析,本流程結(jié)束。
[0038]S202、若是,貝U進(jìn)一步判斷獲取的RTSP包中攜帶的傳輸(transport)參數(shù)的第一個參數(shù)值,是否為RTP/AVP/TCP,若是,則進(jìn)入步驟S203 ;若否,則繼續(xù)對后續(xù)RTSP數(shù)據(jù)包進(jìn)行解析,本流程結(jié)束。
[0039]本步驟中,方法標(biāo)識為SETUP的RTSP數(shù)據(jù)包中,攜帶了 transport參數(shù),transport參數(shù)的第一個參數(shù)值,表征了多媒體數(shù)據(jù)流的傳輸機(jī)制,即基于UDP傳輸還是基于TCP傳輸。
[0040]本步驟中,AVP為audio video profile的縮寫,中文解釋為:音視頻規(guī)格。
[0041]S203、確定采用TCP協(xié)議傳輸多媒體流。
[0042]S204、當(dāng)確定采用TCP協(xié)議傳輸所述多媒體流時,根據(jù)獲取的RTSP包中攜帶的、用于標(biāo)識不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道參數(shù)值,確定不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道標(biāo)識,其中,多媒體流的類型包括視頻數(shù)據(jù)流、視頻控制流、音頻數(shù)據(jù)流和音頻控制流。
[0043]進(jìn)一步地,視頻數(shù)據(jù)流和音頻數(shù)據(jù)流通??梢曰赗TP協(xié)議進(jìn)行傳輸,統(tǒng)稱為多媒體數(shù)據(jù)流,視頻控制流和音頻控制流通??梢曰赗TCP協(xié)議進(jìn)行傳輸,統(tǒng)稱為多媒體控制流。
[0044]S205、在接收多媒體流時,根據(jù)接收的多媒體流在傳輸時使用的傳輸通道的通道標(biāo)識,識別接收的多媒體流的類型。
[0045]實施例2:
[0046]本發(fā)明實施例2提供的一種多媒體流的識別方法,如圖3所示,具體包括如下步驟:
[0047]S301、根據(jù)獲取的RTSP包中攜帶的、用于標(biāo)識傳輸多媒體流所采用的傳輸機(jī)制的傳輸機(jī)制參數(shù)值,確定是否采用TCP協(xié)議傳輸多媒體流。
[0048]S302、當(dāng)確定采用TCP協(xié)議傳輸多媒體流時,獲取并記錄獲取的RTSP包攜帶的請求(Request)參數(shù)的軌道識別符(trackID)參數(shù)值,以及transport參數(shù)的交錯(interleaved)參數(shù)值。
[0049]本步驟中,transport參數(shù)的第三個參數(shù)為interleaved參數(shù),interleaved參數(shù)的參數(shù)值通常為兩個連續(xù)整數(shù),該兩個連續(xù)整數(shù)中,較小值標(biāo)識多媒體數(shù)據(jù)流(即RTP數(shù)據(jù)流)傳輸通道的通道標(biāo)識,較大值標(biāo)識多媒體控制流(即RTCP數(shù)據(jù)流)傳輸通道的通道標(biāo)識。
[0050]進(jìn)一步地,服務(wù)器可以將RTP數(shù)據(jù)和該RTP數(shù)據(jù)的控制數(shù)據(jù)(RTCP數(shù)據(jù))分別進(jìn)行傳輸,也可以在同一個數(shù)據(jù)包中進(jìn)行傳輸。但是,不論是分別進(jìn)行傳輸還是在同一個數(shù)據(jù)包中進(jìn)行傳輸,RTP數(shù)據(jù)和RTCP數(shù)據(jù)都有各自的傳輸通道,并在進(jìn)行多媒體數(shù)據(jù)傳輸之前,客戶端與服務(wù)器進(jìn)行參數(shù)協(xié)商時,為RTP數(shù)據(jù)和RTCP控制數(shù)據(jù)分配不同的傳輸通道,并通過interleaved參數(shù)攜帶傳輸通道的通道標(biāo)識。
[0051]S303、判斷是否存在在先獲取的RTSP包,其中,在先獲取的RTSP包為在獲取到上述獲取的RTSP包之前獲取到的、方法標(biāo)識為SETUP的RTSP包。若存在,則進(jìn)入步驟S304 ;否則,進(jìn)入步驟S307。
[0052]進(jìn)一步地,在傳輸多媒體數(shù)據(jù)時,可以只有視頻數(shù)據(jù),也可以既有視頻數(shù)據(jù)又有音頻數(shù)據(jù),可以通過trackID參數(shù)值標(biāo)識當(dāng)前協(xié)商的參數(shù)值為視頻數(shù)據(jù)的傳輸參數(shù)值還是音頻數(shù)據(jù)的傳輸參數(shù)值。根據(jù)RTSP協(xié)議的規(guī)定,當(dāng)同時傳輸視頻流和音頻流時,可以通過兩個RTSP包分別對視頻流和音頻流傳輸參數(shù)進(jìn)行設(shè)置,并且該兩個RTSP包分別攜帶的trackID中,較小trackID值所在RTSP包表征視頻流使用的傳輸參數(shù),較大trackID值所在RTSP包表征音頻流使用的傳輸參數(shù)。
[0053]進(jìn)一步地,由于在每個RTSP包中,僅包含一個trackID參數(shù)值,因此當(dāng)接收到一個方法標(biāo)識為SETUP的RTSP包時,可以將該RTSP包中的trackID參數(shù)值保存,并接收下一個方法標(biāo)識為SETUP的RTSP包,并將該下一個RTSP包中的trackID參數(shù)值保存,將兩個trackID參數(shù)值進(jìn)行比較,其中,較小trackID參數(shù)值所在的RTSP包中協(xié)商的傳輸參數(shù),為傳輸視頻流使用的傳輸參數(shù)(即較小trackID參數(shù)值所在的RTSP包中interleaved參數(shù)中,較小值為視頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識,較大值為視頻控制流使用的傳輸通道的通道標(biāo)識),較大trackID參數(shù)值所在的RTSP包中協(xié)商的傳輸參數(shù),為傳輸音頻流使用的傳輸參數(shù)(即較小trackID參數(shù)值所在的RTSP包中interleaved參數(shù)中,較小值為音頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識,較大值為音頻控制流使用的傳輸通道的通道標(biāo)識)。因此,通過將在先接收到的RTSP包以及在后接收到的RTSP包中分別包含的trackID參數(shù)值以及interleaved參數(shù)值相結(jié)合,就可以判斷出傳輸?shù)亩嗝襟w流中,音頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識、音頻控制流使用的傳輸通道的通道標(biāo)識、視頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識、以及視頻控制流使用的傳輸通道的通道標(biāo)識。
[0054]S304、若存在,則執(zhí)行比較操作,將上述獲取的RTSP包攜帶的trackID參數(shù)值與預(yù)先記錄的在先獲取的RTSP包攜帶的trackID參數(shù)值進(jìn)行比較。
[0055]進(jìn)一步地,在針對一次多媒體流傳輸進(jìn)行參數(shù)協(xié)商時,攜帶SETUP方法標(biāo)識的RTSP包可能存在一個或者兩個,當(dāng)存在一個攜帶SETUP方法標(biāo)識的RTSP包時,表征此次將要傳輸?shù)亩嗝襟w流為視頻流或者音頻流(一般單純的音頻流不使用RTP協(xié)議進(jìn)行傳輸),當(dāng)存在兩個攜帶SETUP方法標(biāo)識的RTSP包時,表征此次將要傳輸?shù)亩嗝襟w流包括視頻流和音頻流,該兩個攜帶SETUP方法標(biāo)識的RTSP包中,一個為針對視頻流傳輸參數(shù)的協(xié)商,另一個為針對音頻流傳輸參數(shù)的協(xié)商。該兩個攜帶SETUP方法標(biāo)識的RTSP包中,均攜帶有trackID參數(shù)值,當(dāng)接收到第一個攜帶SETUP方法標(biāo)識的RTSP包時,可以先將該第一個RTSP包中的trackID參數(shù)值存儲,若能接收到第二個攜帶SETUP方法標(biāo)識的RTSP包,則獲取該第二個RTSP包中的trackID參數(shù)值,并與第一個RTSP包中的trackID參數(shù)值進(jìn)行比較,其中,較小trackID值所屬的RTSP包為針對視頻流傳輸參數(shù)的設(shè)置,較大trackID值所屬的RTSP包為針對音頻流傳輸參數(shù)的設(shè)置。
[0056]S305、根據(jù)比較結(jié)果,將較小的trackID參數(shù)值所在的RTSP包中,攜帶的transport參數(shù)的interleaved參數(shù)值中,最小值確定為視頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識,最大值確定為視頻控制流使用的傳輸通道的通道標(biāo)識。
[0057]S306、將較大的trackID參數(shù)值所在的RTSP包中,攜帶的transport參數(shù)的interleaved參數(shù)值中,最小值確定為音頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識,最大值確定為音頻控制流使用的傳輸通道的通道標(biāo)識。進(jìn)入步驟S310。
[0058]步驟S305與步驟S306的執(zhí)行沒有嚴(yán)格的先后順序。
[0059]S307、獲取下一個方法標(biāo)識為SETUP的RTSP包。若能夠獲取到,則進(jìn)入步驟S308 ;否則,進(jìn)入步驟S309。
[0060]S308、若能夠獲取到下一個方法標(biāo)識為SETUP的RTSP包,則針對該下一個RTSP包和所述獲取的RTSP包,執(zhí)行S304中的比較操作。進(jìn)入步驟S310。
[0061]S309、若未能獲取到下一個方法標(biāo)識為SETUP的RTSP包,則將獲取的RTSP包中,攜帶的transport參數(shù)的interleaved參數(shù)值中,最小值確定為視頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識,最大值確定為視頻控制流使用的傳輸通道的通道標(biāo)識。
[0062]進(jìn)一步地,本步驟中,由于一般單純的音頻流不使用RTP協(xié)議進(jìn)行傳輸,因此,若未能獲取到下一個方法標(biāo)識為SETUP的RTSP包,則可以認(rèn)為傳輸?shù)亩嗝襟w流只有視頻流,而沒有音頻流,因此,可以直接將interleaved參數(shù)值中,最小值確定為視頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識,最大值確定為視頻控制流使用的傳輸通道的通道標(biāo)識。
[0063]S310、在接收多媒體流時,根據(jù)接收的多媒體流在傳輸時使用的傳輸通道的通道標(biāo)識,識別接收的多媒體流的類型。
[0064]本步驟中,可以通過判斷接收到的數(shù)據(jù)包的源端口是否為554來確定接收到的數(shù)據(jù)包是否為傳輸多媒體流的多媒體數(shù)據(jù)包。
[0065]實施例3:
[0066]本發(fā)明實施例3提供的一種多媒體流的識別方法,如圖4所示,具體包括如下步驟:
[0067]S401、根據(jù)獲取的RTSP包中攜帶的、用于標(biāo)識傳輸多媒體流所采用的傳輸機(jī)制的傳輸機(jī)制參數(shù)值,確定是否采用TCP協(xié)議傳輸多媒體流。
[0068]S402、當(dāng)確定采用TCP協(xié)議傳輸所述多媒體流時,根據(jù)獲取的RTSP包中攜帶的、用于標(biāo)識不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道參數(shù)值,確定不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道標(biāo)識。
[0069]S403、確定接收到的多媒體數(shù)據(jù)包的TCP載荷中包含的interleaved frame,其中,多媒體數(shù)據(jù)包為基于RTP傳輸?shù)臄?shù)據(jù)包或基于RTCP傳輸?shù)目刂瓢?br> [0070]進(jìn)一步地,本步驟中,多媒體數(shù)據(jù)包的TCP載荷中可以包含多個interleavedframe, interleaved frame指音/視頻數(shù)據(jù)包,以及音/視頻控制包在TCP報文內(nèi)混合傳輸。TCP載荷的第一個字節(jié)為第一個interleaved frame的第一個字節(jié),每個interleavedframe為4個字節(jié),第一個字節(jié)為該interleaved frame起始的魔數(shù)(Magic)( interleavedframe的唯一標(biāo)識符),即0x24,第二個字節(jié)為該interleaved frame引導(dǎo)的多媒體載荷使用的傳輸通道的通道標(biāo)識,第三個和第四個字節(jié)為該interleaved frame引導(dǎo)的多媒體載荷的長度,從第五個字節(jié)開始為該interleaved frame引導(dǎo)的多媒體載荷,該多媒體載荷之后為下一個該 interleaved frame。
[0071]S404、針對每個interleaved frame,從確定的各通道標(biāo)識中確定與該interleaved frame的第二個字節(jié)表征的通道標(biāo)識匹配的通道標(biāo)識。
[0072]S405、確定該interleaved frame引導(dǎo)的多媒體載荷的類型為上述匹配的通道標(biāo)識對應(yīng)的多媒體流的類型。
[0073]本步驟中,假設(shè)在步驟S402中確定出視頻數(shù)據(jù)流在傳輸時使用的傳輸通道的通道標(biāo)識為01,視頻控制流在傳輸時使用的傳輸通道的通道標(biāo)識為02,音頻數(shù)據(jù)流在傳輸時使用的傳輸通道的通道標(biāo)識為03,音頻控制流在傳輸時使用的傳輸通道的通道標(biāo)識為04,在步驟S404中,確定某個interleaved frame的第二個字節(jié)表征的通道標(biāo)識為01,則步驟S405中,可以確定該interleaved frame引導(dǎo)的多媒體載荷的類型為視頻數(shù)據(jù)流。
[0074]實施例4:
[0075]本發(fā)明實施例4,針對實施例3中,步驟S403、確定接收到的多媒體數(shù)據(jù)包的TCP載荷中包含的interleaved frame,提供了一種確定TCP載荷中包含的interleaved frame的方法,如圖5所示,具體包括如下步驟:
[0076]S501、當(dāng)接收到的多媒體數(shù)據(jù)包中TCP載荷的第一個字節(jié)為預(yù)設(shè)起始字節(jié)時,確定以該第一個字節(jié)為起始字節(jié)的interleaved frame為TCP載荷包含的第一個interleaved frame。
[0077]S502、將所述第一個 interleaved frame 作為當(dāng)前 interleaved frame,循環(huán)執(zhí)行如下步驟,順次遍歷每個interleaved frame,直到不存在未遍歷的interleaved frame為止:
[0078]S503、將上述TCP載荷的長度與包括當(dāng)前interleaved frame在內(nèi)的、已遍歷的interleaved frame分別引導(dǎo)的多媒體載荷長度之和相減。
[0079]其中,每個interleaved frame的第三個和第四個字節(jié)表征該interleaved frame引導(dǎo)的多媒體載荷的長度;
[0080]S504、判斷S503中相減得到的差值是否等于4與包括上述當(dāng)前interleavedframe在內(nèi)的、已遍歷的interleaved frame個數(shù)的乘積,若是,貝U進(jìn)入步驟S505 ;若否,貝丨J進(jìn)入步驟S506。
[0081]S505、當(dāng)相減得到的差值等于4與包括所述當(dāng)前interleaved frame在內(nèi)的、已遍歷的interleaved frame個數(shù)的乘積時,確定已遍歷完所述TCP載荷中包含的所有interleaved frame。本流程結(jié)束。
[0082]S506、根據(jù)上述當(dāng)前interleaved frame引導(dǎo)的多媒體載荷的長度,將緊鄰上述當(dāng)前interleaved frame引導(dǎo)的多媒體載荷之后的interleaved frame,更新為新的當(dāng)前interleaved frame。進(jìn)入步驟 S503。
[0083]本步驟中,TCP的載荷包括interleaved frame和interleaved frame引導(dǎo)的多媒體載荷,當(dāng)TCP僅包含一個interleaved frame時,TCP載荷的長度與interleaved frame引導(dǎo)的多媒體載荷的長度之間的差值為interleaved frame的長度,即4個字節(jié)。
[0084]當(dāng)TCP載荷的長度與TCP載荷中第一個interleaved frame引導(dǎo)的多媒體載荷的長度相減得到的差值大于4個字節(jié)時,確定所述TCP載荷中包含至少兩個interleavedframe,需要從第一個interleaved frame開始,順次確定每個interleaved frame的起始位置,這樣才能確定每個interleaved frame的第二個字節(jié),得到各interleaved frame引導(dǎo)的多媒體載荷的類型。
[0085]下面以一個具體的例子對本發(fā)明實施例提供的多媒體流的識別方法進(jìn)行說明。圖6a-圖6d為通過軟件抓取的RTSP包以及RTP數(shù)據(jù)包。
[0086]圖6a為當(dāng)客戶端向服務(wù)器發(fā)送RTSP包時,通過軟件抓取的RTSP包的內(nèi)容,如圖6a所示,RTSP包的目的端口為554,即“Dst Port:rtsp (554)”,RTSP包的方法標(biāo)識為 SETUP, Request 參數(shù)的 trackID 參數(shù)值為 1,即 “trackID=l”,transport 參數(shù)的第一個參數(shù)值為“RTP/AVP/TCP”,(其中,AVP為audio video profile,中文解釋為:音視頻規(guī)格))表征多媒體流基于TCP進(jìn)行傳輸,transport參數(shù)的interleaved參數(shù)值為0-1,即“ interleaved=0-l”。
[0087]圖6b為當(dāng)客戶端向服務(wù)器發(fā)送RTSP包時,在抓取到圖6a所示的RTSP包之后,抓取的RTSP包的內(nèi)容,如圖6b所示,RTSP包的目的端口(destination port)為554,即“DstPort:rtsp (554)”,RTSP包的方法標(biāo)識為SETUP, Request參數(shù)的trackID參數(shù)值為2,即“ trackID=2 ”, transport參數(shù)的第一個參數(shù)值為“ RTP/AVP/TCP ”,表征多媒體流基于TCP進(jìn)行傳輸,transport參數(shù)的interleaved參數(shù)值為2-3,即“interleaved=2_3”。將在先接收的RTSP包(如圖6a所示)與在后接收的RTSP包(如圖6b所示)相結(jié)合進(jìn)行解析,由于在先接收的RTSP包中trackID的值小于在后接收的RTSP包中trackID的值,因此可以確定在先接收的RTSP包是對傳輸視頻流的相關(guān)參數(shù)的協(xié)商,在后接收的RTSP包是對傳輸音頻流的相關(guān)參數(shù)的協(xié)商,也就是說,在先接收的RTSP包中,interleaved參數(shù)值為0-1,表征視頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識為0,視頻控制流使用的傳輸通道的通道標(biāo)識為1,在后接收的RTSP包中,interleaved參數(shù)值為2_3,表征音頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識為2,音頻控制流使用的傳輸通道的通道標(biāo)識為3。
[0088]圖6c為客戶端接收到的傳輸視頻數(shù)據(jù)流的數(shù)據(jù)包。如圖6c所示,該視頻流數(shù)據(jù)包源端口(source port)為 554,即 “src port:rtsp (554)”,TCP 載荷的長度為 580,即 “ Ien:580”, interleaved frame 中第一個字節(jié)為 0x24,即 “Magic:0x24”,第 二個字節(jié)為interleaved frame引導(dǎo)的多媒體載荷使用的傳輸通道的通道(Channel)標(biāo)識,即“Channel:0x00”,第三個字節(jié)和第四個字節(jié)為interleaved frame引導(dǎo)的多媒體載荷的長度(Length),即“Length:576byteS”,在接收到該數(shù)據(jù)包之后,根據(jù)TCP載荷長度與為interleaved frame引導(dǎo)的多媒體載荷的長度之差(580-576=4),確定該TCP載荷中只攜帶了一個interleaved frame,并且根據(jù)interleaved frame的第二個字節(jié)0x00,以及圖6a中RTSP包中解析出的視頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識為O,確定出interleavedframe引導(dǎo)的多媒體載荷為視頻數(shù)據(jù)流。
[0089]圖6d為客戶端接收到的傳輸視頻數(shù)據(jù)流的數(shù)據(jù)包。如圖6d所示,該視頻流數(shù)據(jù)包源端口為 554,即 “src port:rtsp (554)”,TCP 載荷的長度為 476,即 “l(fā)en:476”,TCP載荷中的第一個interleaved frame中第一個字節(jié)為0x24,即“Magic:0x24”,第二個字節(jié)為第一個interleaved frame引導(dǎo)的多媒體載荷使用的傳輸通道的通道標(biāo)識,即“Channel:0x02”,第三個字節(jié)和第四個字節(jié)為第一個interleaved frame引導(dǎo)的多媒體載荷的長度,即“Length:332byteS”,在接收到該數(shù)據(jù)包之后,根據(jù)TCP載荷長度與為interleaved frame引導(dǎo)的多媒體載荷的長度之差(476_332>4),確定該TCP載荷中攜帶了多個interleaved frame,根據(jù)第一個interleaved frame引導(dǎo)的多媒體載荷的長度332bytes,從第一個interleaved frame后的332字節(jié)之后的第一個字節(jié)為0x24,即“Magic:0x24”,確定該字節(jié)為第二個interleaved frame的起始字節(jié),第二個interleavedframe第二個字節(jié)為第二個interleaved frame引導(dǎo)的多媒體載荷使用的傳輸通道的通道標(biāo)識,即“Channel:0x00”,第一個interleaved frame的第三個字節(jié)和第四個字節(jié)為第一個interleaved frame引導(dǎo)的多媒體載荷的長度,即“Length:136bytes”,由于332bytes(第一個interleaved frame引導(dǎo)的多媒體載荷的長度)+136bytes (第二個interleavedframe引導(dǎo)的多媒體載荷的長度)+8bytes (兩個interleaved frame的長度)=476bytes(TCP載荷的長度),說明該TCP載荷包含兩個interleaved frame及其引導(dǎo)的多媒體載荷;
[0090]進(jìn)一步地,根據(jù)第一個interleaved frame的第二個字節(jié)0x02,以及圖6a中RTSP包中解析出的音頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識為2,確定出第一個interleavedframe引導(dǎo)的多媒體載荷為音頻數(shù)據(jù)流,根據(jù)第二個interleaved frame的第二個字節(jié)0x00,以及圖6a中RTSP包中解析出的視頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識為0,確定出第二個interleaved frame引導(dǎo)的多媒體載荷為視頻數(shù)據(jù)流。
[0091]基于同一發(fā)明構(gòu)思,本發(fā)明實施例還提供了一種多媒體流的識別裝置及設(shè)備,由于這些裝置和設(shè)備所解決問題的原理與前述多媒體流的識別方法相似,因此該裝置和設(shè)備的實施可以參見前述方法的實施,重復(fù)之處不再贅述。
[0092]本發(fā)明實施例提供了一種多媒體流的識別裝置,如圖7所示,包括如下模塊:
[0093]傳輸機(jī)制確定模塊701,用于根據(jù)獲取的實時流協(xié)議RTSP包中攜帶的、用于標(biāo)識傳輸多媒體流所采用的傳輸機(jī)制的傳輸機(jī)制參數(shù)值,確定是否采用TCP協(xié)議傳輸所述多媒體流;[0094]通道標(biāo)識確定模塊702,用于當(dāng)確定采用TCP協(xié)議傳輸所述多媒體流時,根據(jù)所述獲取的RTSP包中攜帶的、用于標(biāo)識不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道參數(shù)值,確定所述不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道標(biāo)識,其中,多媒體流的類型包括視頻數(shù)據(jù)流、音頻數(shù)據(jù)流、視頻控制流、以及音頻控制流;
[0095]多媒體類型確定模塊703,用于在接收多媒體流時,根據(jù)接收的多媒體流在傳輸時使用的傳輸通道的通道標(biāo)識,識別接收的多媒體流的類型。
[0096]進(jìn)一步地,所述傳輸機(jī)制確定模塊701具體用于判斷獲取的RTSP包中攜帶的方法標(biāo)識是否為設(shè)置SETUP ;若是,則進(jìn)一步判斷所述獲取的RTSP包中攜帶的傳輸transport參數(shù)的第一個參數(shù)值,是否為RTP/AVP/TCP ;若是,則確定采用TCP協(xié)議傳輸多媒體流。
[0097]進(jìn)一步地,所述通道標(biāo)識確定模塊702具體用于當(dāng)確定采用TCP協(xié)議傳輸所述多媒體流時,獲取并記錄所述獲取的RTSP包攜帶的Request參數(shù)的軌道識別符trackID參數(shù)值,以及transport參數(shù)的交錯interleaved參數(shù)值;判斷是否存在在先獲取的RTSP包,其中,所述在先獲取的RTSP包為在獲取到所述獲取的RTSP包之前獲取到的、方法標(biāo)識為SETUP的RTSP包;若存在,則執(zhí)行比較操作,將所述獲取的RTSP包攜帶的trackID參數(shù)值與預(yù)先記錄的所述在先獲取的RTSP包攜帶的trackID參數(shù)值進(jìn)行比較;根據(jù)比較結(jié)果,將較小的trackID參數(shù)值所在的RTSP包中,攜帶的transport參數(shù)的interleaved參數(shù)值中,最小值確定為視頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識,最大值確定為視頻控制流使用的傳輸通道的通道標(biāo)識;將較大的trackID參數(shù)值所在的RTSP包中,攜帶的transport參數(shù)的interleaved參數(shù)值中,最小值確定為音頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識,最大值確定為音頻控制流使用的傳輸通道的通道標(biāo)識。
[0098]進(jìn)一步地,所述通道標(biāo)識確定模塊702具體用于若不存在在先獲取的RTSP包,獲取下一個方法標(biāo)識為SETUP的RTSP包;若能夠獲取到下一個方法標(biāo)識為SETUP的RTSP包,則針對該下一個RTSP包和所述獲取的RTSP包,執(zhí)行所述比較操作。
[0099]進(jìn)一步地,所述通道標(biāo)識確定模塊702具體用于若未能獲取到下一個方法標(biāo)識為SETUP的RTSP包,則將所述獲取的RTSP包中,攜帶的transport參數(shù)的interleaved參數(shù)值中,最小值確定為視頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識,最大值確定為視頻控制流使用的傳輸通道的通道標(biāo)識。
[0100]進(jìn)一步地,所述多媒體類型確定模塊703具體用于確定接收到的多媒體數(shù)據(jù)包的TCP載荷中包含的交錯巾貞interleaved frame ;針對每個interleaved frame,從確定的各通道標(biāo)識中確定與該interleaved frame的第二個字節(jié)表征的通道標(biāo)識匹配的通道標(biāo)識;確定該interleaved frame引導(dǎo)的多媒體載荷的類型為所述匹配的通道標(biāo)識對應(yīng)的多媒體流的類型。
[0101]進(jìn)一步地,所述多媒體類型確定模塊703具體用于當(dāng)接收到的多媒體數(shù)據(jù)包中TCP載荷的第一個字節(jié)為預(yù)設(shè)起始字節(jié)時,確定以所述第一個字節(jié)為起始字節(jié)的interleaved frame為所述TCP載荷包含的第一個interleaved frame ;將所述第一個interleaved frame作為當(dāng)前interleaved frame,循環(huán)執(zhí)行如下步驟,順次遍歷每個interleaved frame,直到不存在未遍歷的interleaved frame為止:將所述TCP載荷的長度與包括當(dāng)前interleaved frame在內(nèi)的、已遍歷的interleaved frame分別引導(dǎo)的多媒體載荷長度之和相減,其中,每個interleaved frame的第三個和第四個字節(jié)表征該interleaved frame引導(dǎo)的多媒體載荷的長度;當(dāng)相減得到的差值等于4與包括所述當(dāng)前interleaved frame在內(nèi)的、已遍歷的interleaved frame個數(shù)的乘積時,確定已遍歷完所述TCP載荷中包含的所有interleaved frame ;否則,根據(jù)所述當(dāng)前interleaved frame引導(dǎo)的多媒體載荷的長度,將緊鄰所述當(dāng)前interleaved frame引導(dǎo)的多媒體載荷之后的interleaved frame,更新為當(dāng)前 interleaved frame。
[0102]本發(fā)明實施例提供了一種多媒體流的識別設(shè)備,包括:上述的多媒體流的識別裝置。
[0103]上述各單元的功能可對應(yīng)于圖1至圖5所示流程中的相應(yīng)處理步驟,在此不再贅述。
[0104]本發(fā)明實施例提供的一種多媒體流的識別方法、裝置及設(shè)備,根據(jù)獲取的RTSP包中攜帶的、用于標(biāo)識傳輸多媒體流所采用的傳輸機(jī)制的傳輸機(jī)制參數(shù)值,確定是否采用TCP協(xié)議傳輸所述多媒體流;當(dāng)確定采用TCP協(xié)議傳輸多媒體流時,根據(jù)獲取的RTSP包中攜帶的、用于標(biāo)識不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道參數(shù)值,確定不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道標(biāo)識;在接收多媒體流時,根據(jù)接收的多媒體流在傳輸時使用的傳輸通道的通道標(biāo)識,識別接收的多媒體流的類型。實現(xiàn)了對基于TCP傳輸?shù)牧髅襟w數(shù)據(jù)包進(jìn)行識別,因此,可以對識別出的多媒體流的類型為多媒體數(shù)據(jù)流中的多媒體數(shù)據(jù)進(jìn)行重新排序、音視頻同步等處理,避免了在客戶端播放多媒體流時出現(xiàn)唇音不同步、卡頓、馬賽克等問題。
[0105]通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明實施例可以通過硬件實現(xiàn),也可以借助軟件加必要的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明實施例的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是⑶-R0M,U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。
[0106]本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實施例的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。
[0107]本領(lǐng)域技術(shù)人員可以理解實施例中的裝置中的模塊可以按照實施例描述進(jìn)行分布于實施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可以進(jìn)一步拆分成多個子模塊。
[0108]上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
[0109]顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【權(quán)利要求】
1.一種多媒體流的識別方法,其特征在于,包括: 根據(jù)獲取的實時流協(xié)議RTSP包中攜帶的、用于標(biāo)識傳輸多媒體流所采用的傳輸機(jī)制的傳輸機(jī)制參數(shù)值,確定是否采用TCP協(xié)議傳輸所述多媒體流; 當(dāng)確定采用TCP協(xié)議傳輸所述多媒體流時,根據(jù)所述獲取的RTSP包中攜帶的、用于標(biāo)識不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道參數(shù)值,確定所述不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道標(biāo)識,其中,多媒體流的類型包括視頻數(shù)據(jù)流、音頻數(shù)據(jù)流、視頻控制流、以及音頻控制流; 在接收多媒體流時,根據(jù)接收的多媒體流在傳輸時使用的傳輸通道的通道標(biāo)識,識別接收的多媒體流的類型。
2.如權(quán)利要求1所述的方法,其特征在于,根據(jù)獲取的RTSP包中攜帶的、用于標(biāo)識傳輸多媒體流所采用的傳輸機(jī)制的傳輸機(jī)制參數(shù)值,確定是否采用TCP協(xié)議傳輸所述多媒體流,具體包括: 判斷獲取的RTSP包中攜帶的方法標(biāo)識是否為設(shè)置SETUP ; 若是,則進(jìn)一步判斷所述獲取的RTSP包中攜帶的傳輸transport參數(shù)的第一個參數(shù)值,是否為 RTP/AVP/TCP ; 若是,則確定采用TCP協(xié)議傳輸多媒體流。
3.如權(quán)利要求1所述的方法,其特征在于,根據(jù)所述獲取的RTSP包中攜帶的、用于標(biāo)識不同類型的多媒體流在傳 輸時分別使用的傳輸通道的通道參數(shù)值,確定所述不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道標(biāo)識,具體包括: 獲取并記錄所述獲取的RTSP包攜帶的請求Request參數(shù)的軌道識別符trackID參數(shù)值,以及transport參數(shù)的交錯interleaved參數(shù)值; 判斷是否存在在先獲取的RTSP包,其中,所述在先獲取的RTSP包為在獲取到所述獲取的RTSP包之前獲取到的、方法標(biāo)識為SETUP的RTSP包; 若存在,則執(zhí)行比較操作,將所述獲取的RTSP包攜帶的trackID參數(shù)值與預(yù)先記錄的所述在先獲取的RTSP包攜帶的trackID參數(shù)值進(jìn)行比較; 根據(jù)比較結(jié)果,將較小的trackID參數(shù)值所在的RTSP包中,攜帶的transport參數(shù)的interleaved參數(shù)值中,最小值確定為視頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識,最大值確定為視頻控制流使用的傳輸通道的通道標(biāo)識; 將較大的trackID參數(shù)值所在的RTSP包中,攜帶的transport參數(shù)的interleaved參數(shù)值中,最小值確定為音頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識,最大值確定為音頻控制流使用的傳輸通道的通道標(biāo)識。
4.如權(quán)利要求3所述的方法,其特征在于,若不存在在先獲取的RTSP包,還包括: 獲取下一個方法標(biāo)識為SETUPRTSP的RTSP包; 若能夠獲取到下一個方法標(biāo)識為SETUPRTSP的RTSP包,則針對該下一個RTSP包和所述獲取的RTSP包,執(zhí)行所述比較操作; 若未能獲取到下一個方法標(biāo)識為SETUP的RTSP包,則將所述獲取的RTSP包中,攜帶的transport參數(shù)的interleaved參數(shù)值中,最小值確定為視頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識,最大值確定為視頻控制流使用的傳輸通道的通道標(biāo)識。
5.如權(quán)利要求1-4任一項所述的方法,其特征在于,在接收多媒體流時,根據(jù)接收的多媒體流在傳輸時使用的傳輸通道的通道標(biāo)識,識別接收的多媒體流的類型,具體包括: 確定接收到的多媒體數(shù)據(jù)包的TCP載荷中包含的交錯幀interleaved frame ; 針對每個interleaved frame,從確定的各通道標(biāo)識中確定與該interleaved frame的第二個字節(jié)表征的通道標(biāo)識匹配的通道標(biāo)識; 確定該interleaved frame引導(dǎo)的多媒體載荷的類型為所述匹配的通道標(biāo)識對應(yīng)的多媒體流的類型。
6.如權(quán)利要求5所述的方法,其特征在于,確定接收到的多媒體數(shù)據(jù)包的TCP載荷中的interleaved frame,具體包括: 當(dāng)接收到的多媒體數(shù)據(jù)包中TCP載荷的第一個字節(jié)為預(yù)設(shè)起始字節(jié)時,確定以所述第一個字節(jié)為起始字節(jié)的interleaved frame為所述TCP載荷包含的第一個interleavedframe ; 將所述第一個interleaved frame作為當(dāng)前interleaved frame,循環(huán)執(zhí)行如下步驟,順次遍歷每個interleaved frame,直到不存在未遍歷的interleaved frame為止:將所述TCP載荷的長度與包括當(dāng)前interleaved frame在內(nèi)的、已遍歷的interleaved frame分別引導(dǎo)的多媒體載荷長度之和相減,其中,每個interleaved frame的第三個和第四個字節(jié)表征該interleaved frame引導(dǎo)的多媒體載荷的長度;當(dāng)相減得到的差值等于4與包括所述當(dāng)前interleave d frame在內(nèi)的、已遍歷的interleaved frame個數(shù)的乘積時,確定已遍歷完所述TCP載荷中包含的所有interleaved frame ;否則,根據(jù)所述當(dāng)前interleavedframe引導(dǎo)的多媒體載荷的長度,將緊鄰所述當(dāng)前interleaved frame引導(dǎo)的多媒體載荷之后的 interleaved frame,更新為當(dāng)前 interleaved frame。
7.一種多媒體流的識別裝置,其特征在于,包括: 傳輸機(jī)制確定模塊,用于根據(jù)獲取的實時流協(xié)議RTSP包中攜帶的、用于標(biāo)識傳輸多媒體流所采用的傳輸機(jī)制的傳輸機(jī)制參數(shù)值,確定是否采用TCP協(xié)議傳輸所述多媒體流; 通道標(biāo)識確定模塊,用于當(dāng)確定采用TCP協(xié)議傳輸所述多媒體流時,根據(jù)所述獲取的RTSP包中攜帶的、用于標(biāo)識不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道參數(shù)值,確定所述不同類型的多媒體流在傳輸時分別使用的傳輸通道的通道標(biāo)識,其中,多媒體流的類型包括視頻數(shù)據(jù)流、音頻數(shù)據(jù)流、視頻控制流、以及音頻控制流; 多媒體類型確定模塊,用于在接收多媒體流時,根據(jù)接收的多媒體流在傳輸時使用的傳輸通道的通道標(biāo)識,識別接收的多媒體流的類型。
8.如權(quán)利要求7所述的裝置,其特征在于,所述傳輸機(jī)制確定模塊具體用于判斷獲取的RTSP包中攜帶的方法標(biāo)識是否為設(shè)置SETUP ;若是,則進(jìn)一步判斷所述獲取的RTSP包中攜帶的傳輸transport參數(shù)的第一個參數(shù)值,是否為RTP/AVP/TCP ;若是,則確定采用TCP協(xié)議傳輸多媒體流。
9.如權(quán)利要求7所述的裝置,其特征在于,所述通道標(biāo)識確定模塊具體用于當(dāng)確定采用TCP協(xié)議傳輸所述多媒體流時,獲取并記錄所述獲取的RTSP包攜帶的Request參數(shù)的軌道識別符trackID參數(shù)值,以及transport參數(shù)的交錯interleaved參數(shù)值;判斷是否存在在先獲取的RTSP包,其中,所述在先獲取的RTSP包為在獲取到所述獲取的RTSP包之前獲取到的、方法標(biāo)識為SETUP的RTSP包;若存在,則執(zhí)行比較操作,將所述獲取的RTSP包攜帶的trackID參數(shù)值與預(yù)先記錄的所述在先獲取的RTSP包攜帶的trackID參數(shù)值進(jìn)行比較;根據(jù)比較結(jié)果,將較小的trackID參數(shù)值所在的RTSP包中,攜帶的transport參數(shù)的interleaved參數(shù)值中,最小值確定為視頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識,最大值確定為視頻控制流使用的傳輸通道的通道標(biāo)識;將較大的trackID參數(shù)值所在的RTSP包中,攜帶的transport參數(shù)的interleaved參數(shù)值中,最小值確定為音頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識,最大值確定為音頻控制流使用的傳輸通道的通道標(biāo)識。
10.如權(quán)利要求9所述的裝置,其特征在于,所述通道標(biāo)識確定模塊具體用于若不存在在先獲取的RTSP包,獲取下一個方法標(biāo)識為SETUP的RTSP包;若能夠獲取到下一個方法標(biāo)識為SETUP的RTSP包,則針對該下一個RTSP包和所述獲取的RTSP包,執(zhí)行所述比較操作;若未能獲取到下一個方法標(biāo)識為SETUP的RTSP包,則將所述獲取的RTSP包中,攜帶的transport參數(shù)的interleaved參數(shù)值中,最小值確定為視頻數(shù)據(jù)流使用的傳輸通道的通道標(biāo)識,最大值確定為視頻控制流使用的傳輸通道的通道標(biāo)識。
11.如權(quán)利要求7-10任一項所述的裝置,其特征在于,所述多媒體類型確定模塊具體用于確定接收到的多媒體數(shù)據(jù)包的TCP載荷中包含的交錯幀interleaved frame ;針對每個interleaved frame,從確定的各通道標(biāo)識中確定與該interleaved frame的第二個字節(jié)表征的通道標(biāo)識匹配的通道標(biāo)識;確定該interleaved frame引導(dǎo)的多媒體載荷的類型為所述匹配的通道標(biāo)識對應(yīng)的多媒體流的類型。
12.如權(quán)利要求11所述的裝置,其特征在于,所述多媒體類型確定模塊具體用于當(dāng)接收到的多媒體數(shù)據(jù)包中TCP載荷的第一個字節(jié)為預(yù)設(shè)起始字節(jié)時,確定以所述第一個字節(jié)為起始字節(jié)的interleaved frame為所述TCP載荷包含的第一個interleaved frame ;將所述第一個interleaved frame作為當(dāng)前interleaved frame,循環(huán)執(zhí)行如下步驟,順次遍歷每個interleaved frame,直到不存在未遍歷的interleaved frame為止:將所述TCP載荷的長度與包括當(dāng)前interleaved frame在內(nèi)的、已遍歷的interleaved frame分別引導(dǎo)的多媒體載荷長度之和相減,其中,每個interleaved frame的第三個和第四個字節(jié)表征該interleaved frame引導(dǎo)`的多媒體載荷的長度;當(dāng)相減得到的差值等于4與包括所述當(dāng)前interleaved frame在內(nèi)的、已遍歷的interleaved frame個數(shù)的乘積時,確定已遍歷完所述TCP載荷中包含的所有interleaved frame ;否則,根據(jù)所述當(dāng)前interleaved frame引導(dǎo)的多媒體載荷的長度,將緊鄰所述當(dāng)前interleaved frame引導(dǎo)的多媒體載荷之后的interleaved frame,更新為當(dāng)前 interleaved frame。
13.一種多媒體流的識別設(shè)備,其特征在于,包括:如權(quán)利要求7-12任一項所述的多媒體流的識別裝置。
【文檔編號】H04N21/6437GK103607663SQ201310616936
【公開日】2014年2月26日 申請日期:2013年11月27日 優(yōu)先權(quán)日:2013年11月27日
【發(fā)明者】楊泛舟 申請人:福建星網(wǎng)銳捷網(wǎng)絡(luò)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
岳西县| 大连市| 夏邑县| 盈江县| 壶关县| 台中市| 沁阳市| 安平县| 平利县| 察隅县| 准格尔旗| 措美县| 澄江县| 龙岩市| 北辰区| 中西区| 湖州市| 辛集市| 育儿| 都江堰市| 衡阳县| 岚皋县| 秭归县| 武鸣县| 瑞丽市| 玉山县| 海门市| 长乐市| 郓城县| 慈溪市| 阿图什市| 孝昌县| 济宁市| 兴化市| 托里县| 托里县| 驻马店市| 堆龙德庆县| 壤塘县| 宜宾县| 金寨县|