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

基于http協(xié)議的視頻直播方法及系統(tǒng)的制作方法

文檔序號:7853498閱讀:632來源:國知局
專利名稱:基于http協(xié)議的視頻直播方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及互聯(lián)網(wǎng)視頻直播技術(shù)領(lǐng)域,尤其涉及一種基于HTTP協(xié)議的視頻直播方法及系統(tǒng)。
背景技術(shù)
互聯(lián)網(wǎng)視頻直播是利用互聯(lián)網(wǎng)將正在播放的視頻信號通過特定方法推送用到客戶端,并由客戶端的播放器將視頻信號展示為可視、可聽的視頻。通常客戶端有定制客戶端和基于瀏覽器的瘦客戶端兩種選擇。定制客戶端有較高的自由度,視頻直播提供方可以使用自己特定的視頻傳輸協(xié)議,而瘦客戶端通過選用公開的協(xié)議,如HTTP (HyerTextTransport Protocal,互聯(lián)網(wǎng)傳輸協(xié)議),RTSP (Real Time Streaming Protocol,實時流傳輸協(xié)議),RTMP (Real Time Messaging Protocol,實時消息傳輸協(xié)議)等。以現(xiàn)在常用的RTSP技術(shù)為例,客戶端通過特定端ロ與服務器建立連接,服務器將當前的實時信號推送到 客戶端,同時會接收客戶端的控制指令,以對輸出進行調(diào)整。這種方式可能產(chǎn)生的問題是
一、服務器要對客戶端的指令進行實時響應,導致服務器負載過高;
ニ、服務器和客戶端的邏輯相對復雜;
三、視頻信號容錯機制低,服務器緩存有限,若客戶端發(fā)生斷流重連,服務器只能從當前最新內(nèi)容提供服務;
四、服務器的直播內(nèi)容不會保存,難于用來后期處理;
五、使用專用端ロ,容易被防火墻屏蔽;
六、多機負載均衡架構(gòu)中,直播源服務器與邊緣服務器之間必需保持連接,連接中斷會導致服務內(nèi)容中斷。綜上可知,現(xiàn)有互聯(lián)網(wǎng)視頻直播技術(shù)在實際使用上,顯然存在不便與缺陷,所以有必要加以改迸。

發(fā)明內(nèi)容
針對上述的缺陷,本發(fā)明的目的在于提供一種基于HTTP協(xié)議的視頻直播方法及系統(tǒng),其能夠有效提高視頻直播流的穩(wěn)定性,易于進行多機負載均衡,并且為直播視頻流的后期備份或處理提供技術(shù)保障。為了實現(xiàn)上述目的,本發(fā)明提供一種基于HTTP協(xié)議的視頻直播方法,包括步驟如下
生產(chǎn)步驟,直播源服務器將直播視頻流切割成若干切片文件;
同步步驟,邊緣服務器通過HTTP協(xié)議從所述直播源服務器同步下載所述切片文件;
直播服務步驟,所述邊緣服務器將所述若干切片文件組裝成一完整文件,并將所述完整文件通過HTTP協(xié)議向客戶端提供視頻直播服務。本發(fā)明還提供一種基于HTTP協(xié)議的視頻直播系統(tǒng),包括有
至少一直播源服務器,用于將直播視頻流切割成若干切片文件;至少ー邊緣服務器,用于通過HTTP協(xié)議從所述直播源服務器同步下載所述切片文件,并將所述若干切片文件組裝成一完整文件后通過HTTP協(xié)議向客戶端提供視頻直播服務。本發(fā)明的重點是在直播源服務器上將直播視頻流切片,然后通過HTTP協(xié)議將各切片文件同步到邊緣服務器,再由邊緣服務器將若干切片文件組裝成一完整文件,并以HTTP協(xié)議向客戶端提供視頻直播服務。借此,本發(fā)明能有效提高視頻直播流的穩(wěn)定性,易于進行多機負載均衡,為直播視頻流的后期備份或處理提供技術(shù)保障;在網(wǎng)絡連接可能中斷的前提下,既保證了用戶觀看體驗,又簡化了系統(tǒng)結(jié)構(gòu);在非定制的通用客戶端上也可以提供服務。本發(fā)明適用于互聯(lián)網(wǎng)視頻直播領(lǐng)域,尤其是在高負載以及需要對直播內(nèi)容進行備份或二次處理,所述二次處理包括但不限于直播轉(zhuǎn)點播,回看,時移等情況。


圖I是本發(fā)明基于HTTP協(xié)議的視頻直播系統(tǒng)的結(jié)構(gòu)示意 圖2是本發(fā)明優(yōu)選的基于HTTP協(xié)議的視頻直播系統(tǒng)的結(jié)構(gòu)示意圖;· 圖3是本發(fā)明基于HTTP協(xié)議的視頻直播方法的流程 圖4是本發(fā)明直播源服務器的生產(chǎn)流程 圖5是本發(fā)明邊緣服務器的同步流程 圖6是本發(fā)明邊緣服務器的視頻直播服務的流程 圖7是本發(fā)明邊緣服務器的視頻點播服務的流程圖;以及 圖8是本發(fā)明基于HTTP協(xié)議的視頻直播系統(tǒng)的優(yōu)選部署圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進ー步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。圖I示出了本發(fā)明基于HTTP協(xié)議的視頻直播系統(tǒng)的結(jié)構(gòu),所述視頻直播系統(tǒng)100與客戶端200連接,并且所述視頻直播系統(tǒng)100至少包括至少一直播源服務器10和至少ー邊緣服務器20,其中
直播源服務器10,用于將直播視頻流切割成若干切片文件。邊緣服務器20,用于通過HTTP協(xié)議從直播源服務器10同步下載切片文件,以此實現(xiàn)直播視頻流的分發(fā),并將所下載的切片文件組裝成一完整文件后通過HTTP協(xié)議向客戶端200提供視頻直播服務,即邊緣服務器20會將小的切片文件輸入實時轉(zhuǎn)換為大的完整文件輸出。邊緣服務器20主要起到直播源服務器10和客戶端200之間轉(zhuǎn)換的橋梁作用。更好的是,邊緣服務器20可以對客戶端200的HTTP請求時所帯的參數(shù)對切片文件進行適當?shù)慕M裝,即可支持直播轉(zhuǎn)點播服務。優(yōu)選的是,邊緣服務器20定時向直播源服務器10發(fā)送HTTP同步請求,以同步下載更新后的切片文件。邊緣服務器20并行處理切片文件的同步和完整文件的視頻直播服務,銜接服務器同步與客戶端200服務兩方面的協(xié)議,進而提高視頻直播服務的效率。邊緣服務器20優(yōu)選將同步下載的切片文件保存在本地,以便為直播視頻流的后期備份或處理提供技術(shù)保障。更好的是,本發(fā)明視頻直播系統(tǒng)100在直播源服務器10和邊緣服務器20之間增加設置至少ー級分發(fā)服務器30,所述分發(fā)服務器30用于通過HTTP協(xié)議從直播源服務器10同步下載切片文件;所述邊緣服務器20用于通過HTTP協(xié)議從分發(fā)服務器30同步下載切片文件。分發(fā)服務器30主要起到直播源服務器10和邊緣服務器20之間的橋梁作用。更好的是,客戶端200通過HTTP單連接和HTTP單請求方式,從邊緣服務器20中下載完整文件并進行視頻直播,即邊緣服務器20提供単文件服務模式。本發(fā)明的客戶端200可以是支持HTTP文件邊下載邊播放功能的瘦客戶端或者定制客戶端,即可實現(xiàn)視頻直播服務。本發(fā)明的目的是提供最通用的HTTP協(xié)議直播,瘦客戶端自然是支持,而定制客戶端只要內(nèi)嵌標準的HTTP播放器即可實現(xiàn)視頻直播功能。本發(fā)明的邊緣服務器20可向客戶端200提供視頻直播服務邊緣服務器20收到客戶端200的HTTP直播請求后,向客戶端200推送HTTP結(jié)果的頭信息,所述頭信息包含內(nèi) 容類型但不包含內(nèi)容長度,以告訴客戶端200這是ー個直播流;邊緣服務器20定位到最新的切片文件,并將所述切片文件推送給客戶端200 ;邊緣服務器20判斷是否還有后續(xù)切片文件,若有則繼續(xù)推送后續(xù)切片文件,否則執(zhí)行切片等待流程。本發(fā)明的邊緣服務器20可向客戶端200提供視頻點播服務邊緣服務器20收到客戶端200的HTTP點播請求后,根據(jù)所述HTTP點播請求中的點播起始時間和點播結(jié)束時間,分析HTTP點播請求對應的完整文件;邊緣服務器20向客戶端200推送HTTP結(jié)果的頭信息,所述頭信息包含內(nèi)容類型和內(nèi)容長度,以告訴客戶端200這是ー個點播流;邊緣服務器20根據(jù)點播起始時間定位到指定的切片文件,并將所述切片文件推送給客戶端200 ;邊緣服務器20判斷是否還有后續(xù)切片文件;若有則繼續(xù)定位和推送后續(xù)切片文件,否則關(guān)閉HTTP連接。本發(fā)明中直播源服務器10和邊緣服務器20之間傳輸?shù)氖切〉那衅募?,而邊緣服務?0與客戶端200之間傳輸?shù)氖谴蟮耐暾募?,正因為邊緣服務?0會把切片文件組合成ー個合法的完整文件,因此客戶端200不用改編程序,就可使用任意通用播放器實現(xiàn)視頻直播,其有利于推廣和應用。圖2是本發(fā)明優(yōu)選的基于HTTP協(xié)議的視頻直播系統(tǒng)的結(jié)構(gòu)示意圖,所述視頻直播系統(tǒng)100至少包括直播源服務器10和邊緣服務器20,其中
所述直播源服務器10進ー步包括
接收模塊11,用于接收直播視頻流;
切片生成模塊12,用于將直播視頻流轉(zhuǎn)碼并按預定時長切割成若干切片文件;
索引生成模塊13,用于將直播視頻流的描述信息和切片文件的時間順序信息保存到索引文件;
服務模塊14,用于將所述索引文件和切片文件通過HTTP協(xié)議對外服務。所述邊緣服務器20進ー步包括
索引下載模塊21,用于向直播源服務器10發(fā)送第一 HTTP同步請求,以下載索引文件;比較模塊22,用于將索引文件與本地已下載的切片文件進行比較,判斷是否有増量切片文件;
切片下載模塊23,用于在有増量切片文件時,向直播源服務器10發(fā)送第二 HTTP同步請求,以下載增量切片文件并保存到本地,以便為直播視頻流的后期備份或處理提供技術(shù)保障。
通知模塊25,用于在無増量切片文件時,通知直播流服務進程新的切片文件就緒。更好的是,所述視頻直播系統(tǒng)100還包括轉(zhuǎn)封裝模塊24,所述轉(zhuǎn)封裝模塊24用于在所述增量切片文件被下載后,將增量切片文件轉(zhuǎn)封裝成預定的視頻文件格式后保存到本地。圖3是本發(fā)明基于HTTP協(xié)議的視頻直播方法的流程圖,所述方法可由如圖I所示的視頻直播系統(tǒng)100實現(xiàn),至少包括步驟如下 步驟S301為生產(chǎn)步驟直播源服務器10將直播視頻流切割成若干切片文件。步驟S302為同步步驟邊緣服務器20通過HTTP協(xié)議從直播源服務器10同步下載切片文件。優(yōu)選的是,邊緣服務器20定時向直播源服務器10發(fā)送HTTP同步請求,以同步下載更新后的切片文件。更好的是,本發(fā)明視頻直播系統(tǒng)100在直播源服務器10和邊緣服務器20之間增加設置至少ー級分發(fā)服務器30,所述分發(fā)服務器30通過HTTP協(xié)議從直播源服務器10同步下載切片文件;邊緣服務器20再通過HTTP協(xié)議從分發(fā)服務器30同步下載切片文件。步驟S303為直播服務步驟,邊緣服務器20將若干切片文件組裝成一完整文件,并將完整文件通過HTTP協(xié)議向客戶端200提供視頻直播服務。所述客戶端200為支持HTTP文件邊下載邊播放功能的瘦客戶端或者定制客戶端。優(yōu)選的是,客戶端200通過HTTP單連接和HTTP單請求方式,從邊緣服務器20中下載完整文件并進行視頻直播。邊緣服務器20優(yōu)選將同步下載的切片文件保存在本地,以便為直播視頻流的后期備份或處理提供技術(shù)保障。更好的是,邊緣服務器20并行處理上述同步步驟和直播服務步驟。圖4是本發(fā)明直播源服務器10的生產(chǎn)流程圖,包括步驟如下
步驟S401,直播源服務器10接收直播視頻流。步驟S402,直播源服務器10將所接收的直播視頻流轉(zhuǎn)碼并按預定時長切割成若干切片文件并保存。所述預定時長推薦10秒,并要求每個切片文件的第一個視頻幀必需為關(guān)鍵中貞。步驟S403,直播源服務器10將直播視頻流的描述信息和切片文件的時間順序信息保存到一索引文件中。步驟S404,直播源服務器10將所述索引文件和切片文件通過HTTP協(xié)議對外服務。圖5是本發(fā)明邊緣服務器的同步流程圖,包括步驟如下
步驟S501,邊緣服務器20向直播源服務器10發(fā)送第一 HTTP同步請求,以下載索引文件。優(yōu)選的是,邊緣服務器20定時發(fā)送第一 HTTP同步請求,即可定時從直播源服務器10同步切片文件。步驟S502,邊緣服務器20讀取所述索引文件,并將所述索引文件與本地已下載的切片文件進行比較,優(yōu)選將索弓I文件中的切片文件名與已經(jīng)下載到本地的切片文件名進行比較,判斷是否有新的増量切片文件,若是則執(zhí)行步驟S503,否則執(zhí)行步驟S504。步驟S503,若有增量切片文件,邊緣服務器20向直播源服務器10發(fā)送第二 HTTP同步請求,以下載增量切片文件并保存到本地,以便為直播視頻流的后期備份或處理提供技術(shù)保障。步驟S504,根據(jù)需求將所述増量切片文件轉(zhuǎn)封裝成預定的視頻文件格式后保存到本地,此步驟可選。所述轉(zhuǎn)封裝是指不改變視頻流編碼和音頻流編碼,而只將媒體封裝結(jié)構(gòu)改為其它格式。比如將Mpeg2 TSCTransport Stream,傳輸流)封裝改為FLV(Flash Video,ー種由Adobe提出的廣泛用于Flash的視頻格式)封裝。步驟S505,若無增量切片文件,邊緣服務器20通知直播流服務進程新的切片文件就緒。步驟S506,等待下ー個更新時間點。具體而言,依據(jù)切片時間和步驟S501 S505總花費的時間計算下ー個更新時間點并等待,其是出于服務器程序性能的考慮。因為本發(fā)明選擇的直播源特性每過一段相對固定的時間生成ー個切片文件,邊緣服務器20完成一次同步后,在直播源服務器10生成下ー個切片的時間內(nèi)將同步不到任何切片文件,所以可優(yōu)化為上一次同步并處理完成之后等待一段時間,這個時間的選擇推薦是直播源服務器10生成切片的間隔的一半。例如直播源服務器10設定為10秒生成ー個切片文件,邊緣服務器20上次同步開始時間是10:00:00,下載完成時間10:00:01,轉(zhuǎn)封裝完成時間10:00:02,邊緣服務器20設定5秒同步一次直播源,那么轉(zhuǎn)封裝完成后就會等待3秒,直到10:00:05開始下一次同歩。
圖6是本發(fā)明邊緣服務器的視頻直播服務的流程圖,包括步驟如下
步驟S601,邊緣服務器20收到客戶端200的HTTP直播請求。步驟S602,邊緣服務器20向客戶端200推送HTTP結(jié)果的頭信息,所述頭信息主要包含返回代碼200、內(nèi)容類型(Content-Type),所述內(nèi)容類型對應的是視頻文件類型,但不能包含內(nèi)容長度(Content-Length),用于告訴客戶端200這是ー個直播流。步驟S603,推送視頻封裝頭,本步驟為可選步驟。根據(jù)封裝格式的要求,推送ー個視頻封裝的頭信息,也不排除封裝格式不需要頭信息的情況。是否推送視頻封裝頭這由所選擇的封裝格式所決定的,比如FLV封裝格式就要求必需要有ー個13個字節(jié)的頭信息,而TS封裝格式就沒有這樣的要求。步驟S604,邊緣服務器20定位到最新的切片文件。根據(jù)步驟S505所傳達的信息,定位到最新的一個直播切片文件。步驟S605,邊緣服務器20將所述切片文件推送給客戶端200。步驟S606,邊緣服務器20判斷是否還有后續(xù)切片文件,若有則返回到步驟S605,繼續(xù)推送后續(xù)切片文件。步驟S607,若已無后續(xù)切片文件,則執(zhí)行切片等待流程。具體而言,依據(jù)切片時間和步驟S605-步驟S606所花費的時間計算并等待時間,如果等待期間被步驟S505通知有新切片產(chǎn)生,可立即中斷等待過程,進行步驟S606。如果客戶端200的網(wǎng)速很快,下載ー個切片文件的時間可能小于切片文件的播放時間,而此時,直播源服務器10在下一次同步之前,沒有新的流可以提供,此時邊緣服務器20的選擇是保持連接并等待,而同時,切片同步與直播流服務是并行執(zhí)行的,所以邊緣服務器20可以每隔一小段時間去檢查切片同步線程是否有新的切片產(chǎn)生。比如每等待I秒鐘就向同步的線程查詢一次是否更新。等待是為了避免過多的查詢而影響系統(tǒng)性能。而同步線程在有新的切片產(chǎn)生之后也可結(jié)束直播流服務線程的等待,進而使得用戶能盡可能快的獲得服務。圖7是本發(fā)明邊緣服務器的視頻點播服務的流程圖,包括步驟如下
步驟S701,邊緣服務器20收到客戶端200的HTTP點播請求。
步驟S702,邊緣服務器20根據(jù)HTTP點播請求中的點播起始時間和點播結(jié)束時間,分析HTTP點播請求對應的完整文件。邊緣服務器20可以從HTTP點播請求的參數(shù)中獲取點播起始時間和點播結(jié)束時間,并計算本次點播需要返回的數(shù)據(jù)的大小,包含視頻頭信息的大小和所有在請求時間段內(nèi)的切片文件的大小。步驟S703,邊緣服務器20向客戶端200推送HTTP結(jié)果的頭信息,所述頭信息包含內(nèi)容類型和內(nèi)容長度。所述頭信息主要包含返回代碼200、內(nèi)容類型(Content-Type)和內(nèi)容長度(Content-Length),所述內(nèi)容長度為步驟S702計算得出的總大小,用于告訴客戶端200這是ー個點播流。 步驟S704,推送視頻封裝頭,本步驟為可選步驟。根據(jù)封裝格式的要求,推送ー個封裝的頭信息,也不排除封裝格式不需要頭信息的情況。步驟S705,邊緣服務器20根據(jù)點播起始時間定位到指定的切片文件。根據(jù)步驟S505所傳達的信息和步驟S702的點播起始時間定位到指定的切片文件。步驟S706,邊緣服務器20將切片文件推送給客戶端200。步驟S707,邊緣服務器20判斷是否還有后續(xù)切片文件。若有則執(zhí)行步驟S708,否則執(zhí)行步驟S709。具體是根據(jù)步驟S505所傳達的信息和步驟S702的點播結(jié)束時間來判斷當前所推送的切片文件是否是本次HTTP點播請求的最后ー個切片文件。步驟S708,若還有后續(xù)切片文件,則定位下ー個切片文件,并返回到步驟S706,以繼續(xù)推送后續(xù)切片文件。步驟S709,若已無后續(xù)切片文件,則表示本次HTTP點播請求完成,關(guān)閉HTTP連接。圖8是本發(fā)明基于HTTP協(xié)議的視頻直播系統(tǒng)的優(yōu)選部署圖,本實施例中視頻直播系統(tǒng)包括兩臺直播源服務器、兩臺分發(fā)服務器以及三臺邊緣服務器。一、直播源服務器
兩臺直播源服務器實時接收UDP (User Datagram Protocol用戶數(shù)據(jù)包協(xié)議)組播信號流,輸入格式為Mpeg TS封裝;視頻格式為H264 (—種MPEG-4標準所定義的視頻編碼格式)編碼,分辨率720x576,每秒51. 28幀,碼率2. 5mb/s ;音頻格式為MP2 (MPEG AudioLayer-2, ー種MPEG-I音頻標準所定義的音頻編碼格式)編碼,采樣率44. 1kHz,單聲道,16位精度,碼率128kb/s。轉(zhuǎn)碼程序?qū)⑿盘柫鬓D(zhuǎn)碼為MpegTS封裝;視頻格式為H264編碼,分辨率 720x576,姆秒 51. 28 中貞,碼率 2. 5mb/s ;音頻格式為 AAC (Advanced Audio Coding 高級音頻編碼),采樣率44. 1kHz,雙聲道,16位精度,碼率96kb/s。并且在每十秒之后的第一個關(guān)鍵幀之前切分,按順序生成切片文件N. ts,N為自然數(shù),如I. ts,2. ts, 3.ts等。同時生成索引文件live, index,索引文件第一行包含ー個切片文件的序號,時間和文件名信息,如
#live. index
1,2011-12-15 10:00:00,I. ts2,2011-12-15 10:00:10,2. ts3,2011-12-15 10:00:20,3. ts
兩臺直播源服務器互為熱備份,將生成的切片文件和索引文件對外提供HTTP下載服務。但本發(fā)明并不排斥使用其他的視頻音頻格式,轉(zhuǎn)碼切片文件的方法,以及索引文件的格式,其他的方法與本發(fā)明的基本原理和新穎性不加抵觸,可以視為另ー個實施案例。
ニ、分發(fā)服務器
兩臺分發(fā)服務器每十秒從兩臺直播源服務器其中之ー下載索引文件和切片文件存在本地,并對外提供HTTP下載服務。分發(fā)服務器在高負載的情況下可以有效的分擔直播源服務器和邊緣服務器的壓力,提高系統(tǒng)的穩(wěn)定性和抗壓性。從兩臺直播源服務器上同步數(shù)據(jù)時只要有一臺服務器能正常服務,分發(fā)服務器就能正常服務,提高系統(tǒng)可靠性。使用分發(fā)服務器只是為了増加系統(tǒng)層次,提升性能,但本發(fā)明并不排斥邊緣服務器直接從直播源服務器同步或者有兩層或者更多層分發(fā)服務器的情況,其他的方法與本發(fā)明的基本原理和新穎性不加抵觸,可以視為另ー個實 施案例。三、邊緣服務器
本案例的邊緣服務器提供MpegTS和FLV兩種視頻流格式以及直播和直播轉(zhuǎn)點播服務。本發(fā)明并不排斥其它的視頻封裝格式進行服務,其他的方法與本發(fā)明的基本原理和新穎性不加抵觸,可以視為另一個實施案例。邊緣服務器每十秒從分發(fā)服務器上下載索引文件和切片文件,同步將下載到的MpegTS封裝的擴展名為.ts的切片文件轉(zhuǎn)封裝成FLV封裝,保持視頻和音頻格式不變,在文件名后加.flv結(jié)尾保存在與原文件相同的目錄下。當客戶端發(fā)起HTTP請求到邊緣服務器,先根據(jù)客戶端請求的地址,若是以.ts結(jié)尾,則返回ts格式視頻流,若是以.flv結(jié)尾,則返回flv格式視頻流。請求參數(shù)中如果包含start (起始時間)和end (結(jié)束時間),則進入直播轉(zhuǎn)點播服務流程,否則進入直播服務流程。格式直播流程HTTP返回頭中Content-Type 為 video/MP2T,不含Content-Length信息,無需推送封裝頭信息,服務程序選取擴展名為.ts的切片文件依次推送。格式直播流程HTTP返回頭中 Content-Type 為 video/flv,不含 Content-Length信息,推送 13 個字節(jié)的 flv 封裝頭0x46 0x4c 0x56 OxOl 0x05 0x00 0x00 0x00 0x090x00 0x00 0x00 0x00 (FLV格式,版本號為1,包含視頻和音頻),服務程序選取擴展名為· ts. flv的切片文件依次推送。格式直播轉(zhuǎn)點播流程HTTP返回頭中Content-Type為video/MP2T,將參數(shù)中的start和end與索引文件中的時間進行比對,選擇出所有在時間段內(nèi)的切片文件,計算出這些文件的總長度L,將返回頭中的Content-Length設置為L,無需推送封裝頭信息,將這些切片文件依次推送。格式直播轉(zhuǎn)點播流程HTTP返回頭中Content-Type為video/flv,將參數(shù)中的start和end與索引文件中的時間進行比對,選擇出所有在時間段內(nèi)的切片文件,計算出這些文件的總長度L,將返回頭中的Content-Length設置為L+13(13為flv封裝頭的長度),推送 13 個字節(jié)的 flv 封裝頭0x46 0x4c 0x56 0x01 0x05 0x00 0x00 0x00 0x09 0x000x00 0x00 0x00,將這些切片文件所對應的.ts. flv文件依次推送。綜上所述,本發(fā)明的重點是在直播源服務器上將直播視頻流切片,然后通過HTTP協(xié)議將各切片文件同步到邊緣服務器,再由邊緣服務器將若干切片文件組裝成一完整文件,并以HTTP協(xié)議向客戶端提供視頻直播服務。借此,本發(fā)明能有效提高視頻直播流的穩(wěn)定性,易于進行多機負載均衡,為直播視頻流的后期備份或處理提供技術(shù)保障;在網(wǎng)絡連接可能中斷的前提下,既保證了用戶觀看體驗,又簡化了系統(tǒng)結(jié)構(gòu);在非定制的通用客戶端上也可以提供服務。本發(fā)明適用于互聯(lián)網(wǎng)視頻直播領(lǐng)域,尤其是在高負載以及需要對直播內(nèi)容進行備份或二次處理,所述二次處理包括但不限于直播轉(zhuǎn)點播,回看,時移等情況。當然,本發(fā)明還可有其它多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當可根據(jù)本發(fā)明作出各種相應的改變和變形,但這些相應的改變和變 形都應屬于本發(fā)明所附的權(quán)利要求的保護范圍。
權(quán)利要求
1.一種基于HTTP協(xié)議的視頻直播方法,其特征在于,包括步驟如下 生產(chǎn)步驟,直播源服務器將直播視頻流切割成若干切片文件; 同步步驟,邊緣服務器通過HTTP協(xié)議從所述直播源服務器同步下載所述切片文件; 直播服務步驟,所述邊緣服務器將所述若干切片文件組裝成一完整文件,并將所述完整文件通過HTTP協(xié)議向客戶端提供視頻直播服務。
2.根據(jù)權(quán)利要求I所述的視頻直播方法,其特征在于,所述同步步驟包括所述邊緣服務器定時向所述直播源服務器發(fā)送HTTP同步請求,以同步下載更新后的所述切片文件。
3.根據(jù)權(quán)利要求I所述的視頻直播方法,其特征在于,所述同步步驟進一歩包括 分發(fā)服務器通過HTTP協(xié)議從所述直播源服務器同步下載所述切片文件; 所述邊緣服務器通過HTTP協(xié)議從所述分發(fā)服務器同步下載所述切片文件。
4.根據(jù)權(quán)利要求I所述的視頻直播方法,其特征在于,所述邊緣服務器并行處理所述同步步驟和所述直播服務步驟。
5.根據(jù)權(quán)利要求I所述的視頻直播方法,其特征在干,所述直播服務步驟包括所述客戶端通過HTTP單連接和HTTP單請求方式,從所述邊緣服務器中下載所述完整文件并進行視頻直播。
6.根據(jù)權(quán)利要求I所述的視頻直播方法,其特征在于,所述直播服務步驟包括 所述邊緣服務器收到所述客戶端的HTTP直播請求后,向所述客戶端推送HTTP結(jié)果的頭信息,所述頭信息包含內(nèi)容類型但不包含內(nèi)容長度; 所述邊緣服務器定位到最新的切片文件; 所述邊緣服務器將所述切片文件推送給所述客戶端; 所述邊緣服務器判斷是否還有后續(xù)切片文件; 若有則繼續(xù)推送后續(xù)切片文件,否則執(zhí)行切片等待流程。
7.根據(jù)權(quán)利要求I所述的視頻直播方法,其特征在于,所述直播服務步驟包括 所述邊緣服務器收到所述客戶端的HTTP點播請求后,根據(jù)所述HTTP點播請求中的點播起始時間和點播結(jié)束時間,分析所述HTTP點播請求對應的所述完整文件; 所述邊緣服務器向所述客戶端推送HTTP結(jié)果的頭信息,所述頭信息包含內(nèi)容類型和內(nèi)容長度; 所述邊緣服務器根據(jù)所述點播起始時間定位到指定的切片文件; 所述邊緣服務器將所述切片文件推送給所述客戶端; 所述邊緣服務器判斷是否還有后續(xù)切片文件; 若有則繼續(xù)定位和推送后續(xù)切片文件,否則關(guān)閉HTTP連接。
8.根據(jù)權(quán)利要求I所述的視頻直播方法,其特征在于,所述客戶端為支持HTTP文件邊下載邊播放功能的瘦客戶端或者定制客戶端。
9.根據(jù)權(quán)利要求Γ8任ー項所述的視頻直播方法,其特征在于,所述切片步驟進一歩包括 所述直播源服務器接收直播視頻流; 所述直播源服務器將所述直播視頻流轉(zhuǎn)碼并按預定時長切割成若干切片文件; 所述直播源服務器將所述直播視頻流的描述信息和所述切片文件的時間順序信息保存到索引文件;所述直播源服務器將所述索引文件和切片文件通過HTTP協(xié)議對外服務; 所述同步步驟進一歩包括 所述邊緣服務器向所述直播源服務器發(fā)送第一 HTTP同步請求,以下載所述索引文件; 所述邊緣服務器將所述索引文件與本地已下載的切片文件進行比較,判斷是否有増量切片文件; 若有所述增量切片文件,所述邊緣服務器向所述直播源服務器發(fā)送第二 HTTP同步請求,以下載所述増量切片文件并保存到本地; 若無所述増量切片文件,所述邊緣服務器通知直播流服務進程新的切片文件就緒。
10.根據(jù)權(quán)利要求9所述的視頻直播方法,其特征在于,所述下載増量切片文件的步驟還包括 所述邊緣服務器下載所述増量切片文件; 將所述増量切片文件轉(zhuǎn)封裝成預定的視頻文件格式后保存到本地。
11.一種基于HTTP協(xié)議的視頻直播系統(tǒng),其特征在于,包括有 至少一直播源服務器,用于將直播視頻流切割成若干切片文件; 至少ー邊緣服務器,用于通過HTTP協(xié)議從所述直播源服務器同步下載所述切片文件,并將所述若干切片文件組裝成一完整文件后通過HTTP協(xié)議向客戶端提供視頻直播服務。
12.根據(jù)權(quán)利要求11所述的視頻直播系統(tǒng),其特征在于,所述邊緣服務器定時向所述直播源服務器發(fā)送HTTP同步請求,以同步下載更新后的所述切片文件。
13.根據(jù)權(quán)利要求11所述的視頻直播系統(tǒng),其特征在于,還包括 至少一分發(fā)服務器,用于通過HTTP協(xié)議從所述直播源服務器同步下載所述切片文件; 所述邊緣服務器,用于通過HTTP協(xié)議從所述分發(fā)服務器同步下載所述切片文件。
14.根據(jù)權(quán)利要求11所述的視頻直播系統(tǒng),其特征在于,所述邊緣服務器并行處理所述切片文件的同步和所述完整文件的視頻直播服務。
15.根據(jù)權(quán)利要求11所述的視頻直播系統(tǒng),其特征在于,所述客戶端通過HTTP單連接和HTTP單請求方式,從所述邊緣服務器中下載所述完整文件并進行視頻直播。
16.根據(jù)權(quán)利要求11所述的視頻直播系統(tǒng),其特征在于,所述邊緣服務器收到所述客戶端的HTTP直播請求后,向所述客戶端推送HTTP結(jié)果的頭信息,所述頭信息包含內(nèi)容類型但不包含內(nèi)容長度;所述邊緣服務器定位到最新的切片文件,并將所述切片文件推送給所述客戶端;所述邊緣服務器判斷是否還有后續(xù)切片文件,若有則繼續(xù)推送后續(xù)切片文件,否則執(zhí)行切片等待流程。
17.根據(jù)權(quán)利要求11所述的視頻直播系統(tǒng),其特征在于,所述邊緣服務器收到所述客戶端的HTTP點播請求后,根據(jù)所述HTTP點播請求中的點播起始時間和點播結(jié)束時間,分析所述HTTP點播請求對應的所述完整文件;所述邊緣服務器向所述客戶端推送HTTP結(jié)果的頭信息,所述頭信息包含內(nèi)容類型和內(nèi)容長度;所述邊緣服務器根據(jù)所述點播起始時間定位到指定的切片文件,并將所述切片文件推送給所述客戶端;所述邊緣服務器判斷是否還有后續(xù)切片文件;若有則繼續(xù)定位和推送后續(xù)切片文件,否則關(guān)閉HTTP連接。
18.根據(jù)權(quán)利要求11所述的視頻直播系統(tǒng),其特征在于,所述客戶端為支持HTTP文件邊下載邊播放功能的瘦客戶端或者定制客戶端。
19.根據(jù)權(quán)利要求If18任一項所述的視頻直播系統(tǒng),其特征在于,所述直播源服務器進ー步包括 接收模塊,用于接收直播視頻流; 切片生成模塊,用于將所述直播視頻流轉(zhuǎn)碼并按預定時長切割成若干切片文件; 索引生成模塊,用于將所述直播視頻流的描述信息和所述切片文件的時間順序信息保存到索引文件; 服務模塊,用于將所述索引文件和切片文件通過HTTP協(xié)議對外服務; 所述邊緣服務器進一歩包括 索引下載模塊,用于向所述直播源服務器發(fā)送第一 HTTP同步請求,以下載所述索引文件; 比較模塊,用于將所述索引文件與本地已下載的切片文件進行比較,判斷是否有増量切片文件; 切片下載模塊,用于在有所述增量切片文件吋,向所述直播源服務器發(fā)送第二 HTTP同步請求,以下載所述增量切片文件并保存到本地; 通知模塊,用于在無所述增量切片文件時,通知直播流服務進程新的切片文件就緒。
20.根據(jù)權(quán)利要求19所述的視頻直播系統(tǒng),其特征在于,所述邊緣服務器還包括轉(zhuǎn)封裝模塊,用于在所述增量切片文件被下載后,將所述増量切片文件轉(zhuǎn)封裝成預定的視頻文件格式后保存到本地。
全文摘要
本發(fā)明提供了一種基于HTTP協(xié)議的視頻直播方法及系統(tǒng),所述視頻直播方法包括步驟有直播源服務器將直播視頻流切割成若干切片文件;邊緣服務器通過HTTP協(xié)議從所述直播源服務器同步下載所述切片文件;所述邊緣服務器將所述若干切片文件組裝成一完整文件,并將所述完整文件通過HTTP協(xié)議向客戶端提供視頻直播服務。借此,本發(fā)明能夠有效提高視頻直播流的穩(wěn)定性,易于進行多機負載均衡,并且為直播視頻流的后期備份或處理提供技術(shù)保障。
文檔編號H04N21/2318GK102710966SQ20121019341
公開日2012年10月3日 申請日期2012年6月13日 優(yōu)先權(quán)日2012年6月13日
發(fā)明者潘敬華 申請人:百視通網(wǎng)絡電視技術(shù)發(fā)展有限責任公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
汤原县| 舟曲县| 镇原县| 涞水县| 武冈市| 囊谦县| 合川市| 黄骅市| 佛山市| 类乌齐县| 资溪县| 巫山县| 雅江县| 永年县| 宁海县| 曲阳县| 保山市| 新营市| 双鸭山市| 平遥县| 囊谦县| 大石桥市| 嘉荫县| 河东区| 翁源县| 交口县| 堆龙德庆县| 习水县| 黄骅市| 海淀区| 沛县| 汉源县| 通渭县| 海晏县| 舒兰市| 类乌齐县| 大庆市| 东阳市| 大名县| 北安市| 鄂尔多斯市|