国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      根據(jù)rtp包生成iso媒體文件的方法及其讀取方法

      文檔序號(hào):7643281閱讀:178來源:國知局
      專利名稱:根據(jù)rtp包生成iso媒體文件的方法及其讀取方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種流媒體技術(shù),具體說,涉及一種根據(jù)RTP包生成ISO 媒體文件的方法。
      背景技術(shù)
      在固網(wǎng)流媒體和移動(dòng)流媒體中,需要流媒體服務(wù)器把直播編碼器傳下來 的RTP數(shù)據(jù)包按照一定的策略轉(zhuǎn)存為符合標(biāo)準(zhǔn)的ISO媒體文件格式發(fā)布, 供以后點(diǎn)播。轉(zhuǎn)存媒體文件非常關(guān)鍵的一個(gè)步驟就是要把RTP的負(fù)載數(shù)據(jù), 復(fù)原成原始的媒體數(shù)據(jù)和流化數(shù)據(jù)。一般的做法是對(duì)于具體的編碼格式,按照其流化標(biāo)準(zhǔn)定義,解析RTP 負(fù)載數(shù)據(jù)中的流化信息,復(fù)原出真實(shí)的媒體樣本,然后生成對(duì)應(yīng)的流化樣本 數(shù)據(jù)。RTP負(fù)載數(shù)據(jù)由流化信息和采樣數(shù)據(jù)兩部分組成。其中流化信息不屬 于媒體樣本數(shù)據(jù),所以以直接存儲(chǔ)在媒體文件的流化樣本數(shù)據(jù)中,RTP負(fù)載 中的采樣數(shù)據(jù)可以包括一個(gè)或多個(gè)媒體樣本,或者一個(gè)媒體樣本的一部分, 這些數(shù)據(jù)應(yīng)該保存在媒體樣本的數(shù)據(jù)中,流化樣本中不再保存這些數(shù)據(jù),而 是按照文件定義的結(jié)構(gòu)保存指向?qū)?yīng)媒體樣本的索引。由于現(xiàn)有技術(shù)中的支持的編碼格式比較多,每種編碼的流化標(biāo)準(zhǔn)不同, 而且流化的方式比較靈活,所以根據(jù)RTP數(shù)據(jù)包負(fù)載數(shù)據(jù)復(fù)原原始的媒體 樣本比較繁瑣,而且很難做到正確復(fù)原所有的媒體樣本的問題,此外這種作 法也存在擴(kuò)展性問題。發(fā)明內(nèi)容本發(fā)明所解決的技術(shù)問題是提供一種根據(jù)RTP包生成ISO媒體文件的 方法,不依賴于具體的編碼格式及其流化標(biāo)準(zhǔn),不解析RTP負(fù)載數(shù)據(jù),直接生成虛擬的媒體樣本,并生成其對(duì)應(yīng)的流化樣本,而且具有良好的擴(kuò)展性, 可以比較容易地兼容以后擴(kuò)充的編碼格式。技術(shù)方案如下根據(jù)RTP包生成ISO媒體文件的方法,步驟如下(1) 確定流化樣本的邊界;(2) 生成虛擬媒體樣本的采樣數(shù)據(jù);(3) 確定虛擬媒體樣本的序號(hào);(4) 生成流化樣本的數(shù)據(jù)。進(jìn)一步,步驟(1 )具體為根據(jù)RTP包頭的mark位確定當(dāng)前的流化 樣本的邊界。進(jìn)一步,步驟(l)中,所述流化樣本包括至少一個(gè)RTP數(shù)據(jù)包。進(jìn)一步,步驟(l)中,根據(jù)RTP時(shí)戳發(fā)生的變化確定當(dāng)前流化樣本的 邊界。進(jìn)一步,步驟(2)具體為將所述流化樣本中包括的所有RTP負(fù)載數(shù) 據(jù)作為虛擬媒體樣本的采樣數(shù)據(jù)。進(jìn)一步,步驟(2)中,所述RTP負(fù)載數(shù)據(jù)包括流化信息和采樣數(shù)據(jù)。進(jìn)一步,步驟(3)具體為對(duì)媒體樣本統(tǒng)一編號(hào),得到所述虛擬媒體 樣本的序號(hào)。進(jìn)一步,步驟(4)中,所述流化樣本的數(shù)據(jù)包括RTP負(fù)載數(shù)據(jù)的入口。進(jìn)一步包括步驟(5):按照ISO媒體文件格式的規(guī)定生成媒體文件。進(jìn)一步包括步驟(6):流媒體服務(wù)器讀取生成的媒體文件。本發(fā)明所解決的另一個(gè)技術(shù)問題是提供一種流媒體服務(wù)器讀取生成的 媒體文件的方法,可以很好地保留原有的RTP數(shù)據(jù)格式。4支術(shù)方案如下(1) 讀取流化軌索引;(2) 根據(jù)流化軌索引到流化軌對(duì)應(yīng)的數(shù)據(jù)區(qū)讀取流化樣本的數(shù)據(jù),讀出每個(gè)RTP包頭和RTP負(fù)載數(shù)據(jù)的索引;(3 )根據(jù)RTP負(fù)載數(shù)據(jù)的索引讀取對(duì)應(yīng)媒體軌索引,得出對(duì)應(yīng)媒體樣 本的數(shù)據(jù)位置和長度;(4)根據(jù)媒體軌索引讀取媒體樣本的數(shù)據(jù),生成RTP數(shù)據(jù)包。利用本發(fā)明方法,可以不依賴于具體的編碼格式及其流化標(biāo)準(zhǔn),不解析 RTP負(fù)載數(shù)據(jù),直接生成虛擬的媒體樣本,并生成其對(duì)應(yīng)的流化樣本,按照 ISO媒體文件格式規(guī)定生成媒體文件。轉(zhuǎn)存后的媒體文件可以提供給通用的 流媒體服務(wù)器提供服務(wù),流媒體服務(wù)器讀取轉(zhuǎn)存后的媒體文件發(fā)出的RTP 負(fù)載數(shù)據(jù)與轉(zhuǎn)存之前的RTP負(fù)載數(shù)據(jù)完全相同。與現(xiàn)有技術(shù)相比,簡化了 處理流程,可以不關(guān)心具體的編碼格式,基本上保存了原有RTP的負(fù)栽數(shù) 據(jù),可以真實(shí)地再現(xiàn)原有的RTP數(shù)據(jù)。而且這種方法具有良好的擴(kuò)展性, 可以比較容易地兼容以后擴(kuò)充的編碼格式。附困說明圖l是《RFC3016》中的流化格式定義;圖2是本發(fā)明方法的流程圖;圖3是媒體文件流化軌和媒體軌的恢復(fù)流程圖;圖4是《RFC3640》中對(duì)RTP負(fù)載數(shù)據(jù)的定義;圖5是媒體文件流化軌和媒體軌的恢復(fù)流程圖。
      具體實(shí)施方式
      本發(fā)明能夠方便準(zhǔn)確地把RTP數(shù)據(jù)包恢復(fù)成ISO媒體文件中媒體軌 (media track)和流化軌(hint track)數(shù)據(jù),支持通過流服務(wù)器播放。ISO 媒體文件包括但不限于ISO 14496-12中定義的基礎(chǔ)媒體文件格式、 IS014496-14定義的MP4文件格式、IS014496-15定義的AVC文件格式、3GPP TS26.244定義的3GPP文件格式,以及3GPP2C.S0050-0定義的3GPP2文件格式。本發(fā)明技術(shù)方案的核心是將一個(gè)流化樣本所包括的所有RTP負(fù)載數(shù)據(jù) (包括流化信息和采樣數(shù)據(jù))虛擬成一個(gè)^某體樣本,流化樣本的所有入口數(shù) 據(jù)指向同一個(gè)虛擬媒體樣本數(shù)據(jù)。這種方法生成的虛擬媒體樣本和流化樣本——對(duì)應(yīng),具有相同的樣本序號(hào)和間隔。下面參照附圖,對(duì)本發(fā)明的優(yōu)選實(shí)施例作詳細(xì)描述。以《RFC3016》流化標(biāo)準(zhǔn)來描述虛擬媒體樣本生成的過程。在《RFC3016》 中對(duì)MPEG4視頻編碼格式的流化做了規(guī)定。如

      圖1所示,是比較典型的MPEG4視頻的RTP結(jié)構(gòu)定義。RTP數(shù)據(jù)包由RTP頭(RTP Header)和RTP負(fù)載構(gòu)成,RTP頭為標(biāo)準(zhǔn) RTP Header結(jié)構(gòu);RTP負(fù)栽由MPEG4 VOP Header和VOP Data Fragment組成。結(jié)合圖2和圖3所示,按照定義的流化格式生成一組RTP數(shù)據(jù)包。 流化過程為1、 確定流化樣本的邊界。一個(gè)流化樣本包括在幾個(gè)RTP數(shù)據(jù)包中,以mark位置1作為流化樣 本的邊界。考慮到網(wǎng)絡(luò)丟包的情況,把時(shí)戳發(fā)生跳轉(zhuǎn)也作為流化樣本的邊界。 一個(gè)流化樣本包括n個(gè)(n〉-l ) RTP數(shù)據(jù)包。根據(jù)RTP包頭的mark位置1確定當(dāng)前處理的流化樣本,該流化樣本包 括3個(gè)RTP數(shù)據(jù)包,RTP數(shù)據(jù)包序號(hào)分別為11、 12和13。2、 生成虛擬媒體樣本的采樣數(shù)據(jù)。將一個(gè)流化樣本中所包括的所有RTP負(fù)栽數(shù)據(jù)看作一個(gè)虛擬^ 某體樣本 的采樣數(shù)據(jù)。生成的虛擬媒體樣本數(shù)據(jù)為負(fù)載11+負(fù)載12+負(fù)載13,長度為Ll+L2 + L3等同于真實(shí)的媒體樣本VOP HeaderfVOP fragment(l)+VOP fragment(2)+VOP fragment(3)。3、 確定虛擬媒體樣本的序號(hào)。對(duì)媒體樣本統(tǒng)一編號(hào),得出此虛擬媒體樣本的序號(hào),依次累加即可。假設(shè)當(dāng)前的虛擬媒體樣本的序號(hào)為m 。4、 生成流化樣本的數(shù)據(jù)。流化樣本有n個(gè)入口 ,每個(gè)入口都以ISO 14496-12中定義的數(shù)據(jù)結(jié)構(gòu)2形式存在,即都是指向?qū)?yīng)媒體軌的樣本數(shù)據(jù)。每個(gè)入口對(duì)應(yīng)同一個(gè)虛擬媒 體樣本的不同數(shù)據(jù)段。生成的流化樣本有3個(gè)RTP包,每個(gè)RTP包的RTP負(fù)載數(shù)據(jù)有一個(gè)入 口,為RTP負(fù)載數(shù)據(jù)入口。第1個(gè)RTP負(fù)載數(shù)據(jù)入口 從虛擬媒體樣本(序號(hào)為m)的數(shù)據(jù)0開 始,長度為Ll。第2個(gè)RTP負(fù)載數(shù)據(jù)入口從虛擬媒體樣本(序號(hào)為m)的數(shù)據(jù)L1開 始,長度為L2。第3個(gè)RTP負(fù)載數(shù)據(jù)入口 從虛擬媒體樣本(序號(hào)為m)的數(shù)據(jù)(L1+L2) 開始,長度為L3。對(duì)于此類RTP負(fù)栽完全由媒體數(shù)據(jù)組成的情況,生成的虛擬媒體樣本 完全等同于真實(shí)的媒體樣本,此時(shí)生成的媒體文件不但支持流化播放,還支 持一般的本地播放。5、 按照ISO媒體文件格式的規(guī)定生成媒體文件。將生成的虛擬媒體樣本和流化樣本分別組成媒體軌、流化軌及其索引, 按照ISO媒體文件格式生成正確的媒體文件?!禦FC3640》中對(duì)AAC音頻編碼格式的流化做了規(guī)定。如圖4所示,對(duì)AAC音頻的RTP結(jié)構(gòu)作了定義。RTP數(shù)據(jù)包由RTP頭(RTPHeader)和RTP負(fù)栽構(gòu)成,RTP頭為標(biāo)準(zhǔn) RTP Header結(jié)構(gòu);RTP負(fù)載由多個(gè)AUHeader和AU數(shù)據(jù)組成。如圖5所示,按照圖示中定義的流化格式生成一組RTP數(shù)據(jù)包。流化過程為1、確定流化樣本的邊界。一個(gè)流化樣本包括在幾個(gè)RTP數(shù)據(jù)包中,以mark位置1作為流化樣本 的邊界??紤]到網(wǎng)絡(luò)丟包的情況,把時(shí)戳發(fā)生跳轉(zhuǎn)也作為流化樣本的邊界。 一個(gè)流化4羊本包4舌n個(gè)(n >=1 ) RTP數(shù)據(jù)包。才艮據(jù)RTP包頭的mark位確定當(dāng)前處理的流化樣本,該流化樣本包括3 個(gè)RTP數(shù)據(jù)包,RTP數(shù)據(jù)包序號(hào)為21。2、 生成虛擬媒體樣本的采樣數(shù)據(jù)。將一個(gè)流化軌樣本中所包括的所有RTP負(fù)載數(shù)據(jù)看作一個(gè)虛擬媒體樣 本的采樣數(shù)據(jù)。生成的虛擬媒體樣本數(shù)據(jù)為負(fù)載21,長度為Ll。其中 包括了流化信息和兩個(gè)真實(shí)媒體樣本AU1和AU2的數(shù)據(jù)。3、 確定虛擬媒體樣本的序號(hào)。虛擬媒體樣本統(tǒng)一編號(hào),得出此虛擬媒體樣本的序號(hào),依次累加即可, 假設(shè)當(dāng)前的虛擬々某體樣本的序號(hào)為m。4、 生成流化樣本的數(shù)據(jù)。流化樣本有n個(gè)入口 ,每個(gè)入口都以ISO 14496-12中定義的數(shù)據(jù)結(jié)構(gòu)2 形式存在,即都是指向?qū)?yīng)媒體軌的樣本數(shù)據(jù)。每個(gè)入口對(duì)應(yīng)同一個(gè)虛擬媒 體樣本的不同數(shù)據(jù)段。生成的流化樣本有1個(gè)RTP包,RTP包的負(fù)栽數(shù)據(jù)只有一個(gè)入口 ,為 RTP負(fù)載數(shù)據(jù)入口。RTP負(fù)栽數(shù)據(jù)入口從序號(hào)為m的虛擬媒體樣本的數(shù)據(jù)0開始,長度 為Ll。對(duì)于此類RTP負(fù)栽不完全由媒體數(shù)據(jù)組成,還包括某些流化信息的情 況,生成的虛擬媒體樣本不等同于真實(shí)的媒體樣本,此時(shí)生成的媒體文件支 持流化播放。5、 按照ISO媒體文件格式的規(guī)定生成媒體文件。將生成的虛擬媒體樣本和流化樣本分別組成媒體軌和流化軌,及其索 引,按照ISO媒體文件格式生成正確的媒體文件。現(xiàn)有技術(shù)中通常的做法是解析負(fù)載中的AUHeaderLen和每個(gè)AUHeader,分離出此RTP包中所包括的媒體樣本個(gè)數(shù)和采樣數(shù)據(jù),復(fù)原媒 體樣本。生成的流化樣本有1個(gè)RTP數(shù)據(jù)包,RTP包的RTP負(fù)載數(shù)據(jù)至少 有3個(gè)入口 。其中,入口 1用于保存流化信息,包括AUHeaderLen和每個(gè)AUHeader。 這個(gè)入口可能有多個(gè),根據(jù)流化信息的長度而定,每個(gè)入口最多只能保存 14個(gè)字節(jié)。入口 2從々某體樣本(AU1的序號(hào))的數(shù)據(jù)0開始,長度為AUl 的采樣數(shù)據(jù)長度。入口 3從媒體樣本(AU2的序號(hào))的數(shù)據(jù)0開始,長度 為AU2的采樣數(shù)據(jù)長度。如果采用的是帶交織的流化方式,還需要緩沖n個(gè)RTP數(shù)據(jù)包,根據(jù) RTP的時(shí)戳和負(fù)載中的流化信息,對(duì)媒體樣本進(jìn)行排序,排序后才能最終確 定J 某體樣本的序號(hào),也才能開始生成對(duì)應(yīng)的流化樣本數(shù)據(jù)。由此可見,對(duì)于 這種編碼格式來說,采用本發(fā)明中所介紹的方法可以大大的降低實(shí)現(xiàn)的復(fù)雜 度。流媒體服務(wù)器讀取生成的媒體文件的順序?yàn)?(1)讀取流化軌的索引。(2 )根據(jù)索引到流化軌對(duì)應(yīng)的數(shù)據(jù)區(qū)讀取流化樣本數(shù)據(jù),讀出每個(gè)RTP 包頭和RTP負(fù)載數(shù)據(jù)的索引。(3 )根據(jù)RTP負(fù)載數(shù)據(jù)的索引讀取對(duì)應(yīng)媒體軌索引,得出對(duì)應(yīng)媒體樣 本的數(shù)據(jù)位置和長度。(4)根據(jù)索引讀取媒體樣本數(shù)據(jù),生成完整的RTP數(shù)據(jù)包。由此流程可以看出,服務(wù)器不關(guān)心媒體軌數(shù)據(jù)和真實(shí)的采樣數(shù)據(jù)有何直 接關(guān)系,所以本發(fā)明方法可以很好地保留原有的RTP數(shù)據(jù)格式。
      權(quán)利要求
      1. 一種根據(jù)RTP包生成ISO媒體文件的方法,步驟如下(1)確定流化樣本的邊界;(2)生成虛擬媒體樣本的采樣數(shù)據(jù);(3)確定虛擬媒體樣本的序號(hào);(4)生成流化樣本的數(shù)據(jù)。
      2、 根據(jù)權(quán)利要求1所述的根據(jù)RTP包生成ISO媒體文件的方法,其特 征在于,步驟(1)具體為根據(jù)RTP包頭的mark位確定當(dāng)前的流化樣本 的邊界。
      3、 根據(jù)權(quán)利要求2所述的根據(jù)RTP包生成ISO媒體文件的方法,其特 征在于,步驟(l)中,所述流化樣本包括至少一個(gè)RTP數(shù)據(jù)包。
      4、 根據(jù)權(quán)利要求1所述的根據(jù)RTP包生成ISO媒體文件的方法,其特 征在于,步驟(l)進(jìn)一步包括,根據(jù)RTP時(shí)戳發(fā)生的變化確定當(dāng)前流化樣 本的邊界。
      5、 根據(jù)權(quán)利要求1所述的根據(jù)RTP包生成ISO媒體文件的方法,其特 征在于,步驟(2)具體為將所述流化樣本中包括的所有RTP負(fù)載數(shù)據(jù)作 為虛擬媒體樣本的采樣數(shù)據(jù)。
      6、 根據(jù)權(quán)利要求1所述的根據(jù)RTP包生成ISO媒體文件的方法,其特 征在于,步驟(3)具體為媒體樣本統(tǒng)一編號(hào),得到所述虛擬媒體樣本的 序號(hào)。
      7、 根據(jù)權(quán)利要求1所述的根據(jù)RTP包生成ISO媒體文件的方法,其特 征在于,步驟(4)中,所述流化樣本的數(shù)據(jù)包括RTP負(fù)載數(shù)據(jù)的入口。
      8、 根據(jù)權(quán)利要求1所述的根據(jù)RTP包生成ISO媒體文件的方法,其特 征在于,進(jìn)一步包括步驟(5):按照ISO媒體文件格式的規(guī)定生成媒體文件。
      9、 根據(jù)權(quán)利要求8所述的根據(jù)RTP包生成ISO媒體文件的方法,其特 征在于,進(jìn)一步包括步驟(6):流媒體服務(wù)器讀取生成的媒體文件。
      10、 一種流媒體服務(wù)器讀取生成的媒體文件的方法,步驟如下(1) 讀取流化軌索引;(2) 根據(jù)流化軌索引到流化軌對(duì)應(yīng)的數(shù)據(jù)區(qū)讀取流化樣本的數(shù)據(jù),讀 出每個(gè)RTP包頭和RTP負(fù)載數(shù)據(jù)的索引;(3 )根據(jù)RTP負(fù)載數(shù)據(jù)的索引讀取對(duì)應(yīng)媒體軌索引,得出對(duì)應(yīng)媒體樣 本的數(shù)據(jù)位置和長度;(4)根據(jù)媒體軌索引讀取媒體樣本的數(shù)據(jù),生成RTP數(shù)據(jù)包。
      全文摘要
      本發(fā)明公開了一種根據(jù)RTP包生成ISO媒體文件的方法,步驟如下確定流化樣本的邊界;生成虛擬媒體樣本的采樣數(shù)據(jù);確定虛擬媒體樣本的序號(hào);生成流化樣本的數(shù)據(jù)。進(jìn)一步包括按照ISO媒體文件格式的規(guī)定生成媒體文件;流媒體服務(wù)器讀取生成的媒體文件。本發(fā)明還公開了一種流媒體服務(wù)器讀取生成的媒體文件的方法。與現(xiàn)有技術(shù)相比,本發(fā)明簡化了處理流程,可以不關(guān)心具體的編碼格式,基本上保存了原有RTP的負(fù)載數(shù)據(jù),可以真實(shí)地再現(xiàn)原有的RTP數(shù)據(jù),而且這種方法具有良好的擴(kuò)展性,可以比較容易地兼容以后擴(kuò)充的編碼格式。
      文檔編號(hào)H04L29/06GK101222480SQ20071000124
      公開日2008年7月16日 申請日期2007年1月9日 優(yōu)先權(quán)日2007年1月9日
      發(fā)明者王志英, 阮亞平 申請人:中興通訊股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1