專利名稱:基于http協(xié)議的多子流流媒體傳輸系統(tǒng)及其傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是一種網(wǎng)絡(luò)信息傳輸技術(shù)領(lǐng)域的系統(tǒng)及方法,具體是一種基于HTTP 協(xié)議的多子流流媒體傳輸系統(tǒng)及其傳輸方法。
背景技術(shù):
視頻分享、網(wǎng)絡(luò)直播等網(wǎng)絡(luò)多媒體應(yīng)用已經(jīng)成為當(dāng)前互聯(lián)網(wǎng)上最重要的應(yīng)用之 一。流媒體傳輸技術(shù)是這些應(yīng)用的核心技術(shù)之一,它可以讓客戶端的播放器無(wú)需等待所有 節(jié)目?jī)?nèi)容都下載完畢就可以開始播放,比起先下載再播放的應(yīng)用模式來(lái)說(shuō)具有更好的用戶 體驗(yàn)。傳統(tǒng)的流媒體傳輸是基于專門的一些流媒體傳輸協(xié)議實(shí)現(xiàn)的。主流的協(xié)議包括 IETF制定的RTSP協(xié)議、微軟公司開發(fā)的匪S協(xié)議和Real Network公司開發(fā)的Real協(xié)議 等。這些協(xié)議的問(wèn)題是需要專門的流媒體服務(wù)器和專門的流媒體內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)來(lái)服 務(wù)大規(guī)模的客戶群。而基于HTTP協(xié)議的Web服務(wù)器和針對(duì)Web內(nèi)容的內(nèi)容分發(fā)網(wǎng)絡(luò)技術(shù) 和產(chǎn)品已經(jīng)十分成熟,價(jià)格相對(duì)專門的流媒體服務(wù)器和專門的流媒體內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN) 要低廉許多。另外,專用的流媒體傳輸協(xié)議在實(shí)際網(wǎng)絡(luò)環(huán)境中往往由于網(wǎng)絡(luò)通路中存在防 火墻、NAT路由器等原因,無(wú)法建立有效的傳輸數(shù)據(jù)的網(wǎng)絡(luò)通道。而HTTP協(xié)議目前在穿透 防火墻、NAT路由器等方面沒(méi)有任何障礙。因此能否基于HTTP協(xié)議和現(xiàn)成的Web服務(wù)器、 web內(nèi)容CDN基礎(chǔ)設(shè)施來(lái)實(shí)現(xiàn)流媒體傳輸越來(lái)越引起人們的重視?;谶@一思路,Apple公司提出了其稱為 HTTP Live Streaming (http //tools. ietf. org/html/draft-pantos-http-live-streaming-04)的流媒體傳輸方法,該方法將本 來(lái)連續(xù)的媒體流切分為若干相對(duì)較小的媒體文件,并相應(yīng)的生成一個(gè)索引文件,然后通過(guò) Web服務(wù)器將索引文件和媒體文件集合提供出來(lái);相應(yīng)的客戶端利用標(biāo)準(zhǔn)HTTP協(xié)議來(lái)從 Web服務(wù)器下載索引文件并根據(jù)索引文件提供的URL地址去下載下一個(gè)需要播放的時(shí)間片 段對(duì)應(yīng)的媒體文件。進(jìn)一步檢索發(fā)現(xiàn),中國(guó)專利申請(qǐng)?zhí)?00710145373. 8,記載了一種“支持手機(jī)超文本 傳輸流媒體業(yè)務(wù)的方法”以及Adobe公司提出的HTTP Dynamic Streaming (http //www. adobe, com/products/httpdynamicstreaming/)等。這些已有的方法可以較好的實(shí)現(xiàn)基于 標(biāo)準(zhǔn)HTTP協(xié)議、標(biāo)準(zhǔn)Web服務(wù)器和標(biāo)準(zhǔn)Web⑶N來(lái)提供流媒體傳輸服務(wù)。但是這些該方法 在用于多子流節(jié)目的傳輸時(shí)存在著明顯到的不足。上述多子流節(jié)目是指一個(gè)節(jié)目包含多個(gè)子流,比如一個(gè)典型的在線實(shí)時(shí)課堂直播 節(jié)目就可能包括一個(gè)現(xiàn)場(chǎng)麥克風(fēng)采集的教師授課聲音的音頻子流、一個(gè)面向教師的攝像 頭采集的教師視頻子流、一個(gè)面向現(xiàn)場(chǎng)學(xué)生的攝像頭采集的教室場(chǎng)景視頻子流和一個(gè)從教 師現(xiàn)場(chǎng)演示教案(如PPT)的PC上采集的講義視頻子流。由于在某個(gè)特定時(shí)刻,遠(yuǎn)程的學(xué) 生可能只關(guān)心這些子流中的若干子流,流媒體傳輸協(xié)議應(yīng)該能讓客戶端選擇只接收這些子 流中的一個(gè)子集。但目前提出的基于HTTP協(xié)議的流媒體傳輸協(xié)議卻無(wú)法做到這一點(diǎn)。即 使用戶只需要觀看其中的少數(shù)幾個(gè)子流,Web服務(wù)器也會(huì)把包含所有子流內(nèi)容的媒體數(shù)據(jù)
3發(fā)給客戶,客戶端的播放器最后把不需要播放的子流的數(shù)據(jù)丟棄掉。這顯然是對(duì)網(wǎng)絡(luò)帶寬 的浪費(fèi),對(duì)于通過(guò)手機(jī)上網(wǎng)來(lái)收看節(jié)目的用戶來(lái)說(shuō),由于手機(jī)數(shù)據(jù)網(wǎng)絡(luò)帶寬的稀缺性,這個(gè) 矛盾更加突出。
發(fā)明內(nèi)容
本發(fā)明針對(duì)現(xiàn)有技術(shù)存在的上述不足,提供一種基于HTTP協(xié)議的多子流流媒體 傳輸系統(tǒng)及其傳輸方法,將每個(gè)子流的媒體數(shù)據(jù)按照時(shí)間片單獨(dú)切分為若干獨(dú)立的片段文 件并存放在Web服務(wù)器上,用戶可以通過(guò)HTTP協(xié)議請(qǐng)求自己所需的子流集合對(duì)應(yīng)的片段文 件集合,發(fā)明既可以利用標(biāo)準(zhǔn)HTTP協(xié)議來(lái)傳輸流媒體,同時(shí)從服務(wù)器到客戶只傳輸每個(gè)客 戶需要的子流集合。本發(fā)明是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的本發(fā)明涉及一種基于HTTP協(xié)議的多子流流媒體傳輸系統(tǒng),包括子流分片模塊、 索引文件生成模塊、Web服務(wù)器模塊和客戶端模塊,其中子流分片模塊與Web服務(wù)器模塊 相連接并向其提供每個(gè)子流的片段文件,索引文件生成模塊與子流分片模塊和Web服務(wù)器 模塊相連接并根據(jù)子流分片模塊的分片情況來(lái)產(chǎn)生索引文件并提供給Web服務(wù)器模塊,客 戶端模塊與Web服務(wù)器模塊相連接并向其請(qǐng)求索引文件和子流片段文件。所述的子流分片模塊從一個(gè)多子流節(jié)目源中按照一定的時(shí)間間隔將每個(gè)子流的 數(shù)據(jù)分成若干片段,每個(gè)片段保存為符合某種多媒體文件存儲(chǔ)格式的分片文件。所述的索引文件生成模塊生成一個(gè)索引文件,該索引文件包括若干小節(jié),每個(gè)小 節(jié)對(duì)應(yīng)一個(gè)子流分片模塊切割子流時(shí)采用的時(shí)間間隔,其內(nèi)容包括該小節(jié)的時(shí)間信息和這 個(gè)小節(jié)對(duì)應(yīng)時(shí)間間隔上節(jié)目源輸出的每個(gè)子流的相應(yīng)片段文件的URL地址。所述的Web服務(wù)器模塊接收客戶通過(guò)HTTP協(xié)議發(fā)來(lái)的對(duì)索引文件和子流片段文 件的URL地址請(qǐng)求,并提供相應(yīng)的視頻分片文件。所述的客戶端模塊接收Web服務(wù)器發(fā)出的索引文件并從中提出所需的子流集合 對(duì)應(yīng)的分片文件的url,并向Web服務(wù)器請(qǐng)求這些文件。本發(fā)明涉及上述系統(tǒng)的多子流流媒體傳輸方法,包括如下步驟第一步、將節(jié)目源輸出的多個(gè)子流,按照時(shí)間間隔分切割為若干片段并保存為符 合某種多媒體文件存儲(chǔ)格式的分片文件,將這些分片文件存放在Web服務(wù)器可以訪問(wèn)的存 儲(chǔ)區(qū)域,每個(gè)分片文件對(duì)應(yīng)一個(gè)唯一的URL地址;第二步、生成一個(gè)索引文件,該索引文件包括若干小節(jié),每個(gè)小節(jié)對(duì)應(yīng)一個(gè)前述步 驟的時(shí)間間隔,其內(nèi)容包括該小節(jié)的時(shí)間信息和這個(gè)小節(jié)對(duì)應(yīng)時(shí)間間隔上節(jié)目源輸出的每 個(gè)子流的相應(yīng)片段文件的URL地址;第三步、通過(guò)HTTP協(xié)議向web服務(wù)器請(qǐng)求索引文件,然后根據(jù)需要播放的時(shí)間片, 從索引文件找出相應(yīng)的小節(jié),然后根據(jù)自己需要播放的子流的集合,獲取對(duì)應(yīng)片段文件的 URL地址集合,最后向Web服務(wù)器請(qǐng)求這些文件。所述的節(jié)目源為預(yù)先錄制好的媒體文件或多個(gè)媒體編碼器的實(shí)時(shí)輸出。所述的索引文件的每個(gè)小節(jié)包含的對(duì)應(yīng)時(shí)間間隔的時(shí)間信息是指每個(gè)小節(jié)的起 始時(shí)刻或者每個(gè)小節(jié)的時(shí)間跨度。本發(fā)明提出的基于HTTP協(xié)議的多子流流媒體傳輸系統(tǒng)和方法,既保留了基于HTTP協(xié)議傳輸流媒體的可以直接利用標(biāo)準(zhǔn)的Web服務(wù)器和Web CDN基礎(chǔ)設(shè)施以及易于穿越 防火墻和NAT路由器的優(yōu)點(diǎn),又允許每個(gè)客戶端讓服務(wù)器只發(fā)送自己需要的子流集合,從 而節(jié)省了帶寬的開銷。本發(fā)明的方法可以廣泛地應(yīng)用于包含多子流的流媒體服務(wù),比如遠(yuǎn) 程教育中課堂直播、多攝像機(jī)的全景現(xiàn)場(chǎng)直播。尤其注意到其實(shí)普通的視頻節(jié)目也是多子 流的一個(gè)特例,即包含一個(gè)聲音子流和一個(gè)視頻子流,當(dāng)用戶只希望聽到聲音或者只希望 看到視頻時(shí),本發(fā)明的方法也可以發(fā)揮作用。
圖1是本發(fā)明結(jié)構(gòu)示意圖。圖2是多子流分段文件集合的構(gòu)成示意3是實(shí)施例2結(jié)構(gòu)示意圖。圖4是實(shí)施例3結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面對(duì)本發(fā)明的實(shí)施例作詳細(xì)說(shuō)明,本實(shí)施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行 實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過(guò)程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施 例。實(shí)施例1如圖1所示,本實(shí)施例包括子流分片模塊1、索引文件生成模塊2、Web服務(wù)器模 塊3和客戶端模塊4,其中子流分片模塊1與Web服務(wù)器模塊3相連接并向其提供每個(gè)子 流的片段文件,索引文件生成模塊2與子流分片模塊1和Web服務(wù)器模塊3相連接并根據(jù) 子流分片模塊1的分片情況來(lái)產(chǎn)生索引文件,然后提供給Web服務(wù)器模塊3??蛻舳四K4 與Web服務(wù)器模塊3相連接并向其請(qǐng)求索引文件和子流片段文件。所述的子流分片模塊1從一個(gè)多子流節(jié)目源中按照一定的時(shí)間間隔將每個(gè)子流 的數(shù)據(jù)分成若干片段,每個(gè)片段保存為符合某種多媒體文件存儲(chǔ)格式的分片文件所述的索引文件生成模塊2生成一個(gè)索引文件;索引文件包括若干小節(jié);每個(gè)小 節(jié)對(duì)應(yīng)一個(gè)子流分片模塊11切割子流時(shí)采用的時(shí)間間隔,其內(nèi)容包括該小節(jié)的時(shí)間信息 和這個(gè)小節(jié)對(duì)應(yīng)時(shí)間間隔上節(jié)目源輸出的每個(gè)子流的相應(yīng)片段文件的URL地址所述的Web 服務(wù)器模塊3接收客戶通過(guò)HTTP協(xié)議發(fā)來(lái)的對(duì)索引文件和子流片段文件的請(qǐng)求,并提供相 應(yīng)的文件所述的客戶端模塊4向Web服務(wù)器請(qǐng)求索引文件,然后根據(jù)需要播放的時(shí)間片,從 索引文件找出相應(yīng)的小節(jié),然后根據(jù)自己需要播放的子流的集合,獲取對(duì)應(yīng)片段文件的URL 地址集合,最后向Web服務(wù)器請(qǐng)求這些文件如圖2所示,為一種根據(jù)本裝置的可能的實(shí)施例中對(duì)應(yīng)圖1中子流分片文件集合 的具體組成的例子。該實(shí)例中的節(jié)目源輸出A,B,C 3個(gè)子流,時(shí)間段i時(shí)A子流的數(shù)據(jù)被 存為片段文件(A,i),B子流的數(shù)據(jù)被存為片段文件(B,i),C子流的數(shù)據(jù)被存為片段文件 (C,i);時(shí)間段i+Ι時(shí)A子流的數(shù)據(jù)被存為片段文件(A,i+1),B子流的數(shù)據(jù)被存為片段文 件(B,i+Ι),C子流的數(shù)據(jù)被存為片段文件(C,i+Ι);依次類推。實(shí)施例2
5
如圖3所示,為一種根據(jù)本裝置的可能的實(shí)施例。其中圖1所示多子流節(jié)目源具 體體現(xiàn)為一個(gè)錄制好的多子流媒體文件101。實(shí)施例3如圖4所示,為另一種根據(jù)本裝置的可能的實(shí)施例。其中圖1所示多子流節(jié)目源 具體體現(xiàn)為由視頻子流A編碼器102、視頻子流B編碼器103、音頻子流C編碼器104。根據(jù)本裝置的具體實(shí)施例中索引文件的格式可以根據(jù)需要定義一種可能的基于 XML的格式可以如下每個(gè)小節(jié)用〈Fragment〉元素來(lái)表示,其duration屬性給出了本小 節(jié)對(duì)應(yīng)的時(shí)間片段的持續(xù)時(shí)間。〈Fragment〉元素下為每個(gè)子流創(chuàng)建一個(gè)<Substream>元 素,其streamed屬性標(biāo)識(shí)了該元素對(duì)應(yīng)哪個(gè)子流;根據(jù)這個(gè)屬性,客戶端可以知道不同 〈Fragment〉元素中的哪些<Substream>元素是對(duì)應(yīng)同一個(gè)子流的。<Substream>的內(nèi)容是 該時(shí)間段上對(duì)應(yīng)子流生成的片段文件的URL地址??蛻舳丝梢愿鶕?jù)此URL地址來(lái)向Web服 務(wù)器請(qǐng)求該文件。根據(jù)本裝置的具體實(shí)施例中子流片段文件采用的存儲(chǔ)格式可以采用任何可能的 媒體文件存儲(chǔ)格式。一種可能的格式例子為MPEG2 Transport Stream格式;需要注意的是 盡管該格式可以在一個(gè)文件中同時(shí)存儲(chǔ)多個(gè)子流的數(shù)據(jù),但是在這里我們只存儲(chǔ)一個(gè)單獨(dú) 的子流的數(shù)據(jù)。其它可以采用的媒體文件存儲(chǔ)格式的例子包括avi、mp4、ogg等。本裝置相對(duì)已有的基于HTTP協(xié)議的流媒體傳輸系統(tǒng)和方法的創(chuàng)新點(diǎn)在于將每個(gè) 子流單獨(dú)進(jìn)行分片、存儲(chǔ)和索引,從而可以讓客戶端選擇性的只請(qǐng)求需要的子流內(nèi)容。這在 節(jié)目源中包含多個(gè)子流,而客戶端同時(shí)只需要呈現(xiàn)一部分子流的內(nèi)容時(shí),可以有效的節(jié)省 網(wǎng)絡(luò)帶寬開銷。
權(quán)利要求
一種基于HTTP協(xié)議的多子流流媒體傳輸系統(tǒng),其特征在于,包括子流分片模塊、索引文件生成模塊、Web服務(wù)器模塊和客戶端模塊,其中子流分片模塊與Web服務(wù)器模塊相連接并向其提供每個(gè)子流的片段文件,索引文件生成模塊與子流分片模塊和Web服務(wù)器模塊相連接并根據(jù)子流分片模塊的分片情況來(lái)產(chǎn)生索引文件并提供給Web服務(wù)器模塊,客戶端模塊與Web服務(wù)器模塊相連接并向其請(qǐng)求索引文件和子流片段文件。
2.根據(jù)權(quán)利要求1所述的基于HTTP協(xié)議的多子流流媒體傳輸系統(tǒng),其特征是,所述的 子流分片模塊從一個(gè)多子流節(jié)目源中按照一定的時(shí)間間隔將每個(gè)子流的數(shù)據(jù)分成若干片 段,每個(gè)片段保存為符合某種多媒體文件存儲(chǔ)格式的分片文件。
3.根據(jù)權(quán)利要求1所述的基于HTTP協(xié)議的多子流流媒體傳輸系統(tǒng),其特征是,所述的 索引文件生成模塊生成一個(gè)索引文件,該索引文件包括若干小節(jié),每個(gè)小節(jié)對(duì)應(yīng)一個(gè)子流 分片模塊切割子流時(shí)采用的時(shí)間間隔,其內(nèi)容包括該小節(jié)的時(shí)間信息和這個(gè)小節(jié)對(duì)應(yīng)時(shí)間 間隔上節(jié)目源輸出的每個(gè)子流的相應(yīng)片段文件的URL地址。
4.根據(jù)權(quán)利要求1所述的基于HTTP協(xié)議的多子流流媒體傳輸系統(tǒng),其特征是,所述的 Web服務(wù)器模塊接收客戶通過(guò)HTTP協(xié)議發(fā)來(lái)的對(duì)索引文件和子流片段文件的URL地址請(qǐng) 求,并提供相應(yīng)的視頻分片文件。
5.根據(jù)權(quán)利要求1所述的基于HTTP協(xié)議的多子流流媒體傳輸系統(tǒng),其特征是,所述的 客戶端模塊接收Web服務(wù)器發(fā)出的索引文件并從中提出所需的子流集合對(duì)應(yīng)的分片文件 的url,并向Web服務(wù)器請(qǐng)求這些文件。
6.一種根據(jù)上述任一權(quán)利要求所述系統(tǒng)的多子流流媒體傳輸方法,其特征在于,包括 如下步驟第一步、將節(jié)目源輸出的多個(gè)子流,按照時(shí)間間隔分切割為若干片段并保存為符合某 種多媒體文件存儲(chǔ)格式的分片文件,將這些視頻分片文件存放在Web服務(wù)器可以訪問(wèn)的存 儲(chǔ)區(qū)域,每個(gè)視頻分片文件對(duì)應(yīng)一個(gè)唯一的URL地址;第二步、生成一個(gè)索引文件,該索引文件包括若干小節(jié),每個(gè)小節(jié)對(duì)應(yīng)一個(gè)前述步驟的 時(shí)間間隔,其內(nèi)容包括該小節(jié)的時(shí)間信息和這個(gè)小節(jié)對(duì)應(yīng)時(shí)間間隔上節(jié)目源輸出的每個(gè)子 流的相應(yīng)片段文件的URL地址;第三步、通過(guò)HTTP協(xié)議向web服務(wù)器請(qǐng)求索引文件,然后根據(jù)需要播放的時(shí)間片,從 索引文件找出相應(yīng)的小節(jié),然后根據(jù)自己需要播放的子流的集合,獲取對(duì)應(yīng)片段文件的URL 地址集合,最后向Web服務(wù)器請(qǐng)求這些文件。
7.根據(jù)權(quán)利要求6所述的多子流流媒體傳輸方法,其特征是,所述的節(jié)目源為預(yù)先錄 制好的媒體文件或多個(gè)媒體編碼器的實(shí)時(shí)輸出。
8.根據(jù)權(quán)利要求6所述的多子流流媒體傳輸方法,其特征是,所述的索引文件的每個(gè) 小節(jié)包含的對(duì)應(yīng)時(shí)間間隔的時(shí)間信息是指每個(gè)小節(jié)的起始時(shí)刻或者每個(gè)小節(jié)的時(shí)間跨 度。
全文摘要
一種網(wǎng)絡(luò)信息傳輸技術(shù)領(lǐng)域的基于HTTP協(xié)議的多子流流媒體傳輸系統(tǒng)及其傳輸方法,其系統(tǒng)包括子流分片模塊、索引文件生成模塊、Web服務(wù)器模塊和客戶端模塊,子流分片模塊與Web服務(wù)器模塊相連接并向其提供每個(gè)子流的片段文件,索引文件生成模塊與子流分片模塊和Web服務(wù)器模塊相連接并根據(jù)子流分片模塊的分片情況來(lái)產(chǎn)生索引文件,然后提供給Web服務(wù)器模塊??蛻舳四K與Web服務(wù)器模塊相連接并向其請(qǐng)求索引文件和子流片段文件。本發(fā)明直接利用標(biāo)準(zhǔn)的Web服務(wù)器和Web CDN基礎(chǔ)設(shè)施,易于穿越防火墻和NAT路由器從而節(jié)省了帶寬的開銷。
文檔編號(hào)H04L29/06GK101951412SQ20101051011
公開日2011年1月19日 申請(qǐng)日期2010年10月15日 優(yōu)先權(quán)日2010年10月15日
發(fā)明者謝偉凱 申請(qǐng)人:上海交通大學(xué)