本發(fā)明涉及網(wǎng)絡(luò)多媒體中轉(zhuǎn)服務(wù),特別是涉及一種用于音視頻多媒體數(shù)據(jù)中轉(zhuǎn)服務(wù)的數(shù)據(jù)傳輸方法、媒體流構(gòu)建單元、轉(zhuǎn)發(fā)服務(wù)器和系統(tǒng)。
背景技術(shù):
伴隨著人們平日出行或工作地的不定,越來越多的人群無法在同一地區(qū)或同一網(wǎng)絡(luò)下獲取多媒體數(shù)據(jù),此時(shí),需要利用多媒體中轉(zhuǎn)服務(wù),提供接收方和發(fā)送方的多媒體數(shù)據(jù)傳輸支持。
目前媒體接收方和媒體發(fā)送方之間進(jìn)行媒體流中轉(zhuǎn)時(shí),往往由于采用中轉(zhuǎn)通道連接請求,服務(wù)器的處理延時(shí),以及高碼率數(shù)據(jù)等情況,導(dǎo)致轉(zhuǎn)發(fā)的速度在200ms以上,除去網(wǎng)絡(luò)延時(shí),服務(wù)器延時(shí)也會(huì)達(dá)到100ms以上。使媒體接收方和媒體發(fā)送方得延遲很高,嚴(yán)重影響音視頻傳輸?shù)男Ч?/p>
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的第一個(gè)技術(shù)問題是:提供一種用于多媒體中轉(zhuǎn)服務(wù)的數(shù)據(jù)傳輸方法,以解決現(xiàn)有技術(shù)中由于采用中轉(zhuǎn)通道處理連接請求,需要服務(wù)器對數(shù)據(jù)進(jìn)行解析判斷,導(dǎo)致請求處理延遲,從而影響媒體流中轉(zhuǎn)速度的問題;
本發(fā)明要解決的第二個(gè)技術(shù)問題是:提供一種用于多媒體中轉(zhuǎn)服務(wù)的數(shù)據(jù)傳輸系統(tǒng),以解決現(xiàn)有技術(shù)中對于同一媒體數(shù)據(jù)請求重復(fù)使用內(nèi)存,導(dǎo)致資源利用率低,資源分配耗時(shí)的問題。
為解決上述技術(shù)問題,本發(fā)明采用下述技術(shù)方案:
一種用于多媒體中轉(zhuǎn)服務(wù)的數(shù)據(jù)傳輸方法,該方法的步驟包括:
S1、至少一個(gè)媒體接收方向服務(wù)器發(fā)送媒體請求;
S2、服務(wù)器應(yīng)每個(gè)媒體接收方的請求利用一對綁定端口分別與媒體發(fā)送方和媒體接收方建立通信連接;
S3、媒體發(fā)送方根據(jù)媒體請求,通過服務(wù)器向媒體接收方發(fā)送媒體流;
S4、基于引用計(jì)數(shù)對至少一個(gè)媒體請求方和數(shù)據(jù)流所占用的內(nèi)存空間進(jìn)行管理。
優(yōu)選地,所述步驟S2包括:
S21、服務(wù)器將所述一對綁定的端口中的用于發(fā)送的端口與媒體請求消息一同發(fā)送至媒體發(fā)送方;
S22、媒體發(fā)送方接收媒體請求消息,并與所述用于發(fā)送的端口建立連接;
S23、服務(wù)器將所述一對綁定的端口中的用于接收的端口與應(yīng)答消息一同發(fā)送至媒體接收方;
S24、媒體接收方接收應(yīng)答消息,并與所述用于接收的端口建立連接。
優(yōu)選地,所述媒體流的構(gòu)建步驟包括
構(gòu)建具有多個(gè)固定大小內(nèi)存塊的內(nèi)存池;
將每一幀信息分解為至少一個(gè)不大于內(nèi)存塊容量的數(shù)據(jù)包,并為每一個(gè)數(shù)據(jù)包分配且僅分配一個(gè)內(nèi)存塊;
將多個(gè)數(shù)據(jù)包通過鏈表方式組成一幀數(shù)據(jù),并由至少一個(gè)由多個(gè)數(shù)據(jù)包組成的幀數(shù)據(jù)組成媒體流。
優(yōu)選地,所述內(nèi)存池為數(shù)據(jù)包分配內(nèi)存塊的步驟包括:判斷數(shù)據(jù)包的信息是否為新的一幀;若該數(shù)據(jù)包為新的一幀信息的數(shù)據(jù)包,則將該數(shù)據(jù)包標(biāo)記為新的一幀信息開始,并從該數(shù)據(jù)包開始為這一幀內(nèi)的所有數(shù)據(jù)包分配內(nèi)存塊,直至該幀信息結(jié)束;若該數(shù)據(jù)包是已經(jīng)存在的幀信息的數(shù)據(jù)包,則將該數(shù)據(jù)包插入至該已經(jīng)存在的這一幀的數(shù)據(jù)包的尾部。
優(yōu)選地,所述步驟S4包括:
S41、根據(jù)媒體接收方的媒體請求確定相應(yīng)的媒體流,并中轉(zhuǎn)傳輸
S42、若在數(shù)據(jù)傳輸網(wǎng)絡(luò)中,對于某媒體流每增加一個(gè)媒體接收方的媒體請求,則在該媒體流的上記錄需要傳輸?shù)膸?jì)數(shù)加1;若媒體發(fā)送方通過服務(wù)器向媒體接收方完成一次某媒體流的傳輸,則在該媒體流的上記錄需要傳輸?shù)膸?jì)數(shù)減1;
S43、判斷某媒體流的幀計(jì)數(shù)是否為0,若幀計(jì)數(shù)為零,則清空媒體流中所有幀數(shù)據(jù)所占用的內(nèi)存塊空間,并將內(nèi)存塊返回內(nèi)存池,若幀計(jì)數(shù)不為零,則繼續(xù)保持該媒體流中所有幀數(shù)據(jù)繼續(xù)占用該內(nèi)存塊空間,并繼續(xù)為媒體接收方傳輸媒體流。
一種用于多媒體中轉(zhuǎn)服務(wù)的媒體流構(gòu)建單元,該單元包括:
內(nèi)存構(gòu)建模塊,構(gòu)建具有多個(gè)固定大小內(nèi)存塊的內(nèi)存池;
幀信息處理模塊,將每一幀信息分解為至少一個(gè)不大于內(nèi)存塊容量的數(shù)據(jù)包,并為每一個(gè)數(shù)據(jù)包分配且僅分配一個(gè)內(nèi)存塊;
構(gòu)建模塊,將多個(gè)數(shù)據(jù)包通過鏈表方式組成一幀數(shù)據(jù),并由至少一個(gè)由多個(gè)數(shù)據(jù)包組成的幀數(shù)據(jù)組成媒體流。
優(yōu)選地,所述媒體流構(gòu)建單元進(jìn)一步包括:
分配判斷模塊:判斷數(shù)據(jù)包的信息是否為新的一幀;若該數(shù)據(jù)包為新的一幀信息的數(shù)據(jù)包,則將該數(shù)據(jù)包標(biāo)記為新的一幀信息開始,并從該數(shù)據(jù)包開始為這一幀內(nèi)的所有數(shù)據(jù)包分配內(nèi)存塊,直至該幀信息結(jié)束;若該數(shù)據(jù)包是已經(jīng)存在的幀信息的數(shù)據(jù)包,則將該數(shù)據(jù)包插入至該已經(jīng)存在的這一幀的數(shù)據(jù)包的尾部。
一種用于多媒體中轉(zhuǎn)服務(wù)的轉(zhuǎn)發(fā)服務(wù)器,該轉(zhuǎn)發(fā)服務(wù)器包括
如上所述媒體流構(gòu)建單元;
通信建立單元,應(yīng)每個(gè)媒體接收方的請求利用一對綁定端口分別與媒體發(fā)送方和媒體接收方建立通信連接;
管理單元,基于引用計(jì)數(shù)對至少一個(gè)媒體請求方和數(shù)據(jù)流所占用的內(nèi)存空間進(jìn)行管理。
優(yōu)選地,所述管理單元包括:
數(shù)據(jù)查找模塊,根據(jù)媒體接收方的媒體請求確定相應(yīng)的媒體流,并中轉(zhuǎn)傳輸
計(jì)數(shù)模塊,數(shù)據(jù)傳輸網(wǎng)絡(luò)中,若對于某媒體流每增加一個(gè)媒體接收方的媒體請求,則在該媒體流的上記錄需要傳輸?shù)膸?jì)數(shù)加1;若媒體發(fā)送方通過服務(wù)器向媒體接收方完成一次某媒體流的傳輸,則在該媒體流的上記錄需要傳輸?shù)膸?jì)數(shù)減1;
判斷模塊,判斷某媒體流的幀計(jì)數(shù)是否為0,若幀計(jì)數(shù)為零,則清空媒體流中所有幀數(shù)據(jù)所占用的內(nèi)存塊空間,并將內(nèi)存塊返回內(nèi)存池,若幀計(jì)數(shù)不為零,則繼續(xù)保持該媒體流中所有幀數(shù)據(jù)繼續(xù)占用該內(nèi)存塊空間,并繼續(xù)為媒體接收方傳輸媒體流
一種用于多媒體中轉(zhuǎn)服務(wù)的數(shù)據(jù)傳輸系統(tǒng),該系統(tǒng)包括:
媒體接收端,根據(jù)用戶需求,發(fā)送媒體請求;
如上所述的轉(zhuǎn)發(fā)服務(wù)器;
媒體接收端,應(yīng)媒體請求,提供相應(yīng)的媒體數(shù)據(jù)。
本發(fā)明的有益效果如下:
本方案通過為媒體接收方和媒體發(fā)送方配置綁定接口,可以簡化服務(wù)器的通道連接判斷,不需要進(jìn)行數(shù)據(jù)解析就能判斷媒體流的方向;本方案通過對媒體流數(shù)據(jù)分解存儲(chǔ),并基于引用計(jì)數(shù)對媒體流占用的內(nèi)存空間進(jìn)行管理,減小了同一數(shù)據(jù)對內(nèi)存空間的多次使用,提高媒體流的轉(zhuǎn)發(fā)速度,降低服務(wù)器的延時(shí)時(shí)間,提高了資源利用率,減少了資源的分配耗時(shí)。本方案可以將媒體轉(zhuǎn)發(fā)的時(shí)間從現(xiàn)有技術(shù)中的200ms縮短至50ms,如在高性能服務(wù)器上甚至可以縮短至10ms以內(nèi)。
附圖說明
下面結(jié)合附圖對本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)的說明;
圖1示出本方案所述數(shù)據(jù)傳輸方法的工作示意圖;
圖2示出本方案所述內(nèi)存池為數(shù)據(jù)包分配內(nèi)存塊的示意圖;
圖3示出本方案所述基于引用計(jì)數(shù)數(shù)據(jù)流所占用的內(nèi)存空間進(jìn)行管理的示意圖。
具體實(shí)施方式
為了更清楚地說明本發(fā)明,下面結(jié)合優(yōu)選實(shí)施例和附圖對本發(fā)明做進(jìn)一步的說明。附圖中相似的部件以相同的附圖標(biāo)記進(jìn)行表示。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,下面所具體描述的內(nèi)容是說明性的而非限制性的,不應(yīng)以此限制本發(fā)明的保護(hù)范圍。
如圖1所示,本發(fā)明公開了一種用于多媒體中轉(zhuǎn)服務(wù)的數(shù)據(jù)傳輸方法,該方法的步驟包括:
步驟S1、至少一個(gè)媒體接收方向服務(wù)器發(fā)送媒體請求。
在數(shù)據(jù)中轉(zhuǎn)傳輸過程中,媒體請求方針對某一媒體數(shù)據(jù)向中轉(zhuǎn)傳輸網(wǎng)絡(luò)發(fā)送相應(yīng)的媒體請求,等待中轉(zhuǎn)服務(wù)器為其分配通信端口和媒體發(fā)送方的數(shù)據(jù)連接。
步驟S2、服務(wù)器應(yīng)每個(gè)媒體接收方的請求利用一對綁定端口分別與媒體發(fā)送方和媒體接收方建立通信連接。
接到媒體接收方的媒體請求后,服務(wù)器將一對綁定的端口中的用于發(fā)送的端口與媒體請求消息一同發(fā)送至媒體發(fā)送方;媒體發(fā)送方接收媒體請求消息,并與所述用于發(fā)送的端口建立連接;與此同時(shí),服務(wù)器將所述一對綁定的端口中的用于接收的端口與應(yīng)答消息一同發(fā)送至媒體接收方;媒體接收方接收應(yīng)答消息,并與所述用于接收的端口建立連接。
步驟S3、媒體發(fā)送方根據(jù)媒體請求,通過服務(wù)器向媒體接收方發(fā)送媒體流。
媒體發(fā)送方通過中轉(zhuǎn)服務(wù)器與媒體接收方建立通信連接,媒體發(fā)送方根據(jù)媒體接收方發(fā)送的媒體請求,提供相應(yīng)的媒體數(shù)據(jù),并發(fā)送至中轉(zhuǎn)服務(wù)器,中轉(zhuǎn)服務(wù)器接收到待中轉(zhuǎn)傳輸?shù)拿襟w數(shù)據(jù)后,通過構(gòu)建的具有多個(gè)固定小大內(nèi)存塊的內(nèi)存池為媒體數(shù)據(jù)分配儲(chǔ)存空間。對于待中轉(zhuǎn)傳輸?shù)拿襟w數(shù)據(jù)需要將媒體數(shù)據(jù)的每一幀信息分解為至少一個(gè)不大于內(nèi)存塊容量的數(shù)據(jù)包,并為每一個(gè)數(shù)據(jù)包分配且僅分配一個(gè)內(nèi)存塊;將多個(gè)數(shù)據(jù)包通過鏈表方式組成一幀數(shù)據(jù),并由至少一個(gè)由多個(gè)數(shù)據(jù)包組成的幀數(shù)據(jù)組成媒體流。中轉(zhuǎn)服務(wù)器將該媒體流發(fā)送至媒體接收方。其中,如圖2所示,對于內(nèi)存池為數(shù)據(jù)包分配內(nèi)存塊的步驟包括:判斷數(shù)據(jù)包的信息是否為新的一幀;若該數(shù)據(jù)包為新的一幀信息的數(shù)據(jù)包,則將上一幀的內(nèi)存分配操作結(jié)束,將該數(shù)據(jù)包標(biāo)記為新的一幀信息開始,并從該數(shù)據(jù)包開始為這一幀內(nèi)的所有數(shù)據(jù)包分配內(nèi)存塊,直至該幀信息結(jié)束;若該數(shù)據(jù)包是已經(jīng)存在的幀信息的數(shù)據(jù)包,則將該數(shù)據(jù)包插入至該已經(jīng)存在的這一幀的數(shù)據(jù)包的尾部。
步驟S4、基于引用計(jì)數(shù)對至少一個(gè)媒體請求方和數(shù)據(jù)流所占用的內(nèi)存空間進(jìn)行管理。
中轉(zhuǎn)服務(wù)器根據(jù)媒體接收方的媒體請求尋找相應(yīng)的媒體流;若在數(shù)據(jù)中轉(zhuǎn)傳輸網(wǎng)絡(luò)中,對于某媒體流每增加一個(gè)媒體接收方的媒體請求,則在該媒體流的上記錄需要傳輸?shù)膸?jì)數(shù)加1;若媒體發(fā)送方通過服務(wù)器向媒體接收方完成一次某媒體流的傳輸,則在該媒體流的上記錄需要傳輸?shù)膸?jì)數(shù)減1。如圖3所示,在傳輸過程中,需進(jìn)一步判斷某媒體流的幀計(jì)數(shù)是否為0,若幀計(jì)數(shù)為零,則清空媒體流中所有幀數(shù)據(jù)所占用的內(nèi)存塊空間,并將內(nèi)存塊返回內(nèi)存池,若幀計(jì)數(shù)不為零,則繼續(xù)保持該媒體流中所有幀數(shù)據(jù)繼續(xù)占用該內(nèi)存塊空間,并繼續(xù)為媒體接收方傳輸媒體流。
本發(fā)明進(jìn)一步公開了一種用于多媒體中轉(zhuǎn)服務(wù)的媒體流構(gòu)建單元該單元包括:用于構(gòu)建具有多個(gè)固定大小內(nèi)存塊的內(nèi)存池的內(nèi)存構(gòu)建模塊;用于將每一幀信息分解為至少一個(gè)不大于內(nèi)存塊容量的數(shù)據(jù)包,并為每一個(gè)數(shù)據(jù)包分配且僅分配一個(gè)內(nèi)存塊的幀信息處理模塊;以及,用于將多個(gè)數(shù)據(jù)包通過鏈表方式組成一幀數(shù)據(jù),并由至少一個(gè)由多個(gè)數(shù)據(jù)包組成的幀數(shù)據(jù)組成媒體流的構(gòu)建模塊。為了降低內(nèi)存的重復(fù)使用,提高內(nèi)存的有效使用率,所述媒體流構(gòu)建單元進(jìn)一步設(shè)置有:分配判斷模塊,該模塊用于判斷數(shù)據(jù)包的信息是否為新的一幀;若該數(shù)據(jù)包為新的一幀信息的數(shù)據(jù)包,則將上一幀的內(nèi)存分配操作結(jié)束,將該數(shù)據(jù)包標(biāo)記為新的一幀信息開始,并從該數(shù)據(jù)包開始為這一幀內(nèi)的所有數(shù)據(jù)包分配內(nèi)存塊,直至該幀信息結(jié)束;若該數(shù)據(jù)包是已經(jīng)存在的幀信息的數(shù)據(jù)包,則將該數(shù)據(jù)包插入至該已經(jīng)存在的這一幀的數(shù)據(jù)包的尾部。
本發(fā)明進(jìn)一步公開了一種用于多媒體中轉(zhuǎn)服務(wù)的轉(zhuǎn)發(fā)服務(wù)器,該轉(zhuǎn)發(fā)服務(wù)器包括:如上所述媒體流構(gòu)建單元;通信建立單元,應(yīng)每個(gè)媒體接收方的請求利用一對綁定端口分別與媒體發(fā)送方和媒體接收方建立通信連接;以及,管理單元,基于引用計(jì)數(shù)對至少一個(gè)媒體請求方和數(shù)據(jù)流所占用的內(nèi)存空間進(jìn)行管理。其中,所述管理單元包括:數(shù)據(jù)查找模塊,根據(jù)媒體接收方的媒體請求尋找相應(yīng)的媒體流;計(jì)數(shù)模塊,數(shù)據(jù)傳輸網(wǎng)絡(luò)中,若對于某媒體流每增加一個(gè)媒體接收方的媒體請求,則在該媒體流的上記錄需要傳輸?shù)膸?jì)數(shù)加1;若媒體發(fā)送方通過服務(wù)器向媒體接收方完成一次某媒體流的傳輸,則在該媒體流的上記錄需要傳輸?shù)膸?jì)數(shù)減1;以及,判斷模塊,判斷某媒體流的幀計(jì)數(shù)是否為0,若幀計(jì)數(shù)為零,則清空媒體流中所有幀數(shù)據(jù)所占用的內(nèi)存塊空間,并將內(nèi)存塊返回內(nèi)存池,若幀計(jì)數(shù)不為零,則繼續(xù)保持該媒體流中所有幀數(shù)據(jù)繼續(xù)占用該內(nèi)存塊空間,并繼續(xù)為媒體接收方傳輸媒體流
本發(fā)明進(jìn)一步公開了一種用于多媒體中轉(zhuǎn)服務(wù)的數(shù)據(jù)傳輸系統(tǒng),該系統(tǒng)包括:媒體接收端,根據(jù)用戶需求,發(fā)送媒體請求;如上所述的轉(zhuǎn)發(fā)服務(wù)器;以及,媒體接收端,應(yīng)媒體請求,提供相應(yīng)的媒體數(shù)據(jù)。
下面通過一組實(shí)施例對本發(fā)明做進(jìn)一步說明:
本實(shí)例中,所述媒體發(fā)送方主要是承擔(dān)媒體采集和發(fā)送的一方,負(fù)責(zé)采集、編碼并且打包通過網(wǎng)絡(luò)發(fā)送媒體數(shù)據(jù)。所述轉(zhuǎn)發(fā)服務(wù):根據(jù)發(fā)送方的請求為媒體分配接收數(shù)據(jù)端口,并且將媒體流進(jìn)行轉(zhuǎn)發(fā)。媒體接收方主要是發(fā)送媒體請求和接收媒體流的一方。所述內(nèi)存池:預(yù)先在中轉(zhuǎn)服務(wù)器中分配好的一系列指定大小的內(nèi)存塊。媒體流是通過一幀一幀的數(shù)據(jù)組成,每一幀數(shù)據(jù)又是由多個(gè)數(shù)據(jù)包組成。
如圖1所示,以兩個(gè)接收方為例對本方案進(jìn)行分析。接收方1向中轉(zhuǎn)服務(wù)器發(fā)送媒體請求,服務(wù)器分別為媒體發(fā)送方和媒體接收方1分配綁定的端口1和端口2,即端口1作為媒體發(fā)送方上傳媒體流的端口,端口2作為接收方1發(fā)送媒體流的端口。服務(wù)器向媒體發(fā)送方發(fā)送媒體請求消息,并攜帶端口1,媒體發(fā)送方接收到媒體請求消息,并跟端口1建立連接且開始發(fā)送媒體數(shù)據(jù)。服務(wù)器向接收方1發(fā)送應(yīng)答,并攜帶媒體發(fā)送端口2,接收方1與服務(wù)器端口2建立連接。
中轉(zhuǎn)服務(wù)器通過構(gòu)建的具有多個(gè)1500字節(jié)小大內(nèi)存塊的內(nèi)存池為媒體數(shù)據(jù)分配儲(chǔ)存空間。對于待中轉(zhuǎn)傳輸?shù)拿襟w數(shù)據(jù)需要將媒體數(shù)據(jù)的每一幀信息分解為至少一個(gè)不大于內(nèi)存塊容量的數(shù)據(jù)包,并為每一個(gè)數(shù)據(jù)包分配且僅分配一個(gè)內(nèi)存塊;將多個(gè)數(shù)據(jù)包通過鏈表方式組成一幀數(shù)據(jù),并由至少一個(gè)由多個(gè)數(shù)據(jù)包組成的幀數(shù)據(jù)組成媒體流。中轉(zhuǎn)服務(wù)器應(yīng)與媒體流相對應(yīng)的媒體請求,將媒體流發(fā)送至對應(yīng)的媒體接收方。此時(shí)還需要進(jìn)一步判斷數(shù)據(jù)包的信息是否為新的一幀;若該數(shù)據(jù)包為新的一幀信息的數(shù)據(jù)包,則將上一幀的內(nèi)存分配操作結(jié)束,將該數(shù)據(jù)包標(biāo)記為新的一幀信息開始,并從該數(shù)據(jù)包開始為這一幀內(nèi)的所有數(shù)據(jù)包分配內(nèi)存塊,直至該幀信息結(jié)束;若該數(shù)據(jù)包是已經(jīng)存在的幀信息的數(shù)據(jù)包,則將該數(shù)據(jù)包插入至該已經(jīng)存在的這一幀的數(shù)據(jù)包的尾部。通過新舊幀的判斷可以減小了同一數(shù)據(jù)對內(nèi)存空間的多次使用,提高媒體流的轉(zhuǎn)發(fā)速度。
中轉(zhuǎn)服務(wù)器基于引用計(jì)數(shù)對媒體流進(jìn)行管理,若中轉(zhuǎn)服務(wù)器接收到請求傳輸同一媒體流的媒體請求,則在該媒體流數(shù)據(jù)的引用計(jì)數(shù)加1。因此,在中轉(zhuǎn)服務(wù)器通過端口2向接收方1發(fā)送媒體流時(shí),服務(wù)器查找要符合媒體請求的媒體流,并將該媒體流的引用計(jì)數(shù)加1。與此同時(shí),中轉(zhuǎn)服務(wù)器接收到媒體接收方2項(xiàng)服務(wù)器發(fā)送得媒體請求,請求的發(fā)送方和媒體數(shù)據(jù)與接收方1相同,此時(shí),中轉(zhuǎn)服務(wù)器為媒體接收方2分配媒體發(fā)送端口3,服務(wù)器向媒體接收方2發(fā)送應(yīng)答,并攜帶媒體發(fā)送端口3,媒體接收方2與服務(wù)器端口3建立連接,由于之前媒體發(fā)送方1已經(jīng)與中轉(zhuǎn)服務(wù)器建立了通信連接,所以此時(shí),媒體接收方2與媒體發(fā)送方所用的端口也形成了一對綁定端口,通過這對綁定端口可以確定媒體數(shù)據(jù)的方向。同時(shí),由于媒體接收方2也是對媒體接收方1請求的媒體發(fā)送方和媒體流進(jìn)行媒體請求,因此,服務(wù)器查找到符合媒體接收方2媒體請求的該媒體流,并將該媒體流的引用計(jì)數(shù)再加1。中轉(zhuǎn)服務(wù)器通過端口3向接收方2發(fā)送媒體。若隨后,媒體接收方1的媒體流傳輸結(jié)束,那么此時(shí),中轉(zhuǎn)服務(wù)器則由于完成了一次對該媒體流的傳輸,而對該媒體流的引用計(jì)數(shù)減一。與此同時(shí),需進(jìn)一步判斷該媒體流的幀計(jì)數(shù)是否為0,若幀計(jì)數(shù)為零,則清空媒體流中所有幀數(shù)據(jù)所占用的內(nèi)存塊空間,并將內(nèi)存塊返回內(nèi)存池,若幀計(jì)數(shù)不為零,則繼續(xù)保持該媒體流中所有幀數(shù)據(jù)繼續(xù)占用該內(nèi)存塊空間,并繼續(xù)為媒體接收方傳輸媒體流。通過引用計(jì)數(shù)對媒體流管理,可以有效的減少內(nèi)存拷貝產(chǎn)生的耗時(shí)。
顯然,本發(fā)明的上述實(shí)施例僅僅是為清楚地說明本發(fā)明所作的舉例,而并非是對本發(fā)明的實(shí)施方式的限定,對于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其它不同形式的變化或變動(dòng),這里無法對所有的實(shí)施方式予以窮舉,凡是屬于本發(fā)明的技術(shù)方案所引伸出的顯而易見的變化或變動(dòng)仍處于本發(fā)明的保護(hù)范圍之列。