專利名稱:實現(xiàn)基于http的流媒體業(yè)務的方法、系統(tǒng)和網(wǎng)絡設備的制作方法
技術領域:
本發(fā)明實施例涉及通信技術領域,尤其涉及一種基于超文本傳輸協(xié)議HTTP的流 媒體業(yè)務的方法、網(wǎng)絡系統(tǒng)、服務器和網(wǎng)絡設備。
背景技術:
流媒體服務隨著互聯(lián)網(wǎng)的普及得到迅速的發(fā)展。流媒體服務可以采用超文本傳輸 協(xié)議(Hyper Text Transfer Protocol,HTTP)。大量的基礎設施,包括web服務器、內(nèi)容分 發(fā)網(wǎng)絡(⑶N),都可以支持HTTP傳輸,采用HTTP的流媒體正在成為發(fā)展的趨勢。流媒體服務有兩種不同的服務類型錄播和直播。錄播是指播出的媒體內(nèi)容是事 先制作然后播出的,是非實時的,播放電影就是錄播的一個典型例子。直播是和錄播相對 的,是實時地播放媒體內(nèi)容,典型的例子是現(xiàn)場轉(zhuǎn)播一場體育比賽,一方面發(fā)送者實時地對 內(nèi)容進行制作,包括內(nèi)容編碼,編輯等,另一方面接收者能夠同步地接收到發(fā)送者實時制作 的內(nèi)容。在傳統(tǒng)的流媒體服務中,客戶端建立和服務器的連接后,以一個特殊定義的時間 “現(xiàn)在” (now)指示指示服務器需要播放,客戶端就可以接收直播內(nèi)容。在這個過程中,客戶 端不需要知道內(nèi)容存放的位置,服務器作為控制的主體,把當前內(nèi)容發(fā)送到客戶端。在基 于HTTP的流媒體服務中,服務器是被動的服務提供者,服務器只能根據(jù)客戶端的請求把一 個文件或者一個文件的某一部分發(fā)送給客戶端,客戶端需要明確地指示所請求的文件(用 URL)或者文件的某一部分(用URL加上位置區(qū)間)。在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術中至少存在如下問題在現(xiàn)有的基于HTTP的流媒體業(yè)務中,由于直播的媒體數(shù)據(jù)是實時生成的,客戶端 不可能事先知道當前生成的媒體數(shù)據(jù)的準確位置,這樣客戶端就無法請求最新制作的媒體 數(shù)據(jù),給直播服務帶來了困難。
發(fā)明內(nèi)容
本發(fā)明的實施例提供一種實現(xiàn)基于超文本傳輸協(xié)議HTTP的流媒體業(yè)務的方法、 服務器、客戶端設備和網(wǎng)絡系統(tǒng),可以使客戶端獲得服務器上媒體數(shù)據(jù)的位置信息,實現(xiàn)基 于HTTP的流媒體直播服務。本發(fā)明實施例提供一種實現(xiàn)基于超文本傳輸協(xié)議HTTP的流媒體業(yè)務的方法,包 括服務器向客戶端發(fā)送直播開始時間和所述服務器的當前時間,以使客戶端根據(jù)直 播開始時間和服務器的當前時間確定客戶端需要播放的媒體片斷的位置指示信息;服務器接收來自客戶端的需要播放的媒體片斷的位置指示信息;服務器根據(jù)位置指示信息,獲取該位置指示信息對應的媒體片斷文件,向客戶端 發(fā)送媒體片斷文件。本發(fā)明實施例還提供一種實現(xiàn)基于超文本傳輸協(xié)議HTTP的流媒體業(yè)務的方法,包括接收來自服務器的直播開始時間和所述服務器的當前時間;根據(jù)直播開始時間和服務器的當前時間確定需要播放的媒體片斷的位置指示信 息;向服務器發(fā)送所述需要播放的媒體片斷的位置指示信息;接收來自服務器的與所述位置指示信息對應的媒體片斷文件;播放媒體片斷文件。本發(fā)明實施例還提供一種服務器,包括時間信息發(fā)送單元,用于向客戶端發(fā)送直播開始時間和該服務器的當前時間,以 使客戶端根據(jù)直播開始時間和服務器的當前時間確定需要播放的媒體片斷文件的位置指 不信息;位置指示信息接收單元,用于接收來自客戶端的需要播放的媒體片斷文件的位置 指不信息;媒體片斷文件獲取單元,用于根據(jù)客戶端的需要播放的媒體片斷文件的位置指示 信息,獲取媒體片斷文件;媒體片斷文件發(fā)送單元,用于向客戶端發(fā)送媒體片斷文件。本發(fā)明實施例還提供一種客戶端設備,包括時間信息接收單元,用于接收來自服務器的直播開始時間和服務器的當前時間;確定單元,用于根據(jù)直播開始時間和服務器的當前時間確定需要播放的媒體片斷 的位置指示信息;位置指示信息發(fā)送單元,用于向服務器發(fā)送需要播放的媒體片斷文件的位置指示 fn息;媒體片斷文件接收單元,用于接收來自服務器的與需要播放的媒體片斷的位置指 示信息對應的媒體片斷文件;播放單元,用于播放媒體片斷文件。本發(fā)明實施例還提供一種網(wǎng)絡系統(tǒng),包括服務器,用于向客戶端發(fā)送直播開始時間和該服務器的當前時間,以使客戶端根 據(jù)直播開始時間和服務器的當前時間確定需要播放的媒體片斷的位置指示信息;接收來自 客戶端的需要播放的媒體片斷的位置指示信息;根據(jù)客戶端的需要播放的媒體片斷的位置 指示信息,獲取媒體片斷文件;向客戶端發(fā)送媒體片斷文件;客戶端設備,用于接收來自服務器的直播開始時間和服務器的當前時間;根據(jù)直 播開始時間和服務器的當前時間確定需要播放的媒體片斷文件的位置指示信息;向服務器 發(fā)送需要播放的媒體片斷的位置指示信息;接收來自服務器的與需要播放的媒體片斷的位 置指示信息對應的媒體片斷文件;播放媒體片斷文件。本發(fā)明實施例提供的實現(xiàn)基于超文本傳輸協(xié)議HTTP的流媒體業(yè)務的方法、服務 器、客戶端設備和網(wǎng)絡系統(tǒng),通過由服務器向客戶端發(fā)送直播開始時間和所述服務器的當 前時間,可以使得客戶端根據(jù)直播開始時間和服務器的當前時間確定需要播放的媒體片斷 的位置指示信息,從而實現(xiàn)基于HTTP的流媒體直播服務。
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例中所需要使用的 附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普 通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例的實現(xiàn)基于HTTP的流媒體業(yè)務的方法流程圖;圖2為本發(fā)明實施例的另一實現(xiàn)基于HTTP的流媒體業(yè)務的方法流程3為本發(fā)明實施例的另一實現(xiàn)基于HTTP的流媒體業(yè)務的方法流程4為本發(fā)明實施例的媒體呈現(xiàn)描述文件的結(jié)構示意圖;圖5為本發(fā)明實施例的媒體文件組織形式示意圖;圖6為本發(fā)明實施例的媒體片段示意圖;圖7為本發(fā)明實施例的服務器結(jié)構示意圖;圖8為本發(fā)明實施例的另一服務器結(jié)構示意圖;圖9為本發(fā)明實施例的另一服務器結(jié)構示意圖;圖10為本發(fā)明實施例的客戶端設備結(jié)構示意圖;圖11為本發(fā)明實施例的另一客戶端設備結(jié)構示意圖;圖12為本發(fā)明實施例的另一客戶端設備結(jié)構示意圖;圖13為本發(fā)明實施例的網(wǎng)絡系統(tǒng)結(jié)構示意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā) 明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施 例,都屬于本發(fā)明保護的范圍。以下對本發(fā)明實施例的一些術語進行說明媒體片斷(fragment),可以是指一種媒體數(shù)據(jù)封裝形式,包含一個時間間隔的媒 體數(shù)據(jù)以及該媒體數(shù)據(jù)相關的信息。每個媒體片斷可以存儲為一個獨立的文件,稱為媒體 片斷文件。媒體呈現(xiàn)描述文件(Media Presentation Description File),描述了媒體呈現(xiàn) 的基本信息,如媒體的分量、編碼數(shù)據(jù)的屬性(例如對于視頻分量、其編解碼類型、視頻的 比特率、幀率、分辨率等)、是否直播、媒體片斷的時間長度、如何獲取相關的媒體數(shù)據(jù)等。媒體分量(Media Component),可以是指媒體呈現(xiàn)中的一個分量,如視頻分量、音頻分量、文字分量等。媒體分量時間間隔(Media Component hterval),對應于一個時間窗的一個媒體 分量。把所有的媒體分量時間間隔串接在一起就得到該媒體分量的全部。媒體分量時間間隔相互不重疊。可替代的編碼表述(Alternative r印resentation),可以是指應用一組參數(shù)對一 個媒體分量的編碼表述,比如某一碼率以及時間和空間的分辨率。編碼片斷(kgment),可以是指在一個時間間隔對某一媒體分量的編碼數(shù)據(jù)。通過 指明媒體分量,媒體分量間隔以及可替代的編碼表述,客戶端可以請求編碼片斷。編碼片斷可以被獨立地解碼而不依賴于其他的編碼片斷。媒體編碼數(shù)據(jù),可以是指對某一媒體分量進行編碼生成的數(shù)據(jù),如對視頻按照某 一比特率、幀率、分辨率編碼生成的數(shù)據(jù)。如圖1所示,本發(fā)明實施例提供一種實現(xiàn)基于HTTP的流媒體業(yè)務的方法,所述媒 體呈現(xiàn)的每個媒體片斷分別以單個文件的方式存儲在服務器中。在本發(fā)明實施例中,方法 包括S102.服務器向客戶端發(fā)送直播開始時間和服務器的當前時間;獲得直播開始時間可以有不同的方式。當客戶端請求直播服務時,首先向服務 器請求獲取媒體呈現(xiàn)描述文件,服務器可以在對客戶端的響應中攜帶超文本傳輸協(xié)議頭 Last-Modified把直播開始時間送給客戶端。Last-Modified中的時間是媒體呈現(xiàn)描述文 件的最后修改時間,這個文件是在直播開始時生成的,所以這個時間可以認為是直播開始 時間。直播開始時間也可以包含在媒體呈現(xiàn)描述文件發(fā)送給客戶端。服務器在對客戶端請求媒體呈現(xiàn)描述文件的響應中,通過超文本傳輸協(xié)議頭Date 把直播開始時間送給客戶端。Date中的時間是該響應產(chǎn)生的時間,可以忽略服務器的發(fā)送 延遲,這個時間就是服務器當前的時間。S104.客戶端接收來自服務器的直播開始時間和所述服務器的當前時間,根據(jù)服 務器上的直播開始時間和服務器的當前時間確定需要播放的媒體片斷文件的位置指示信 息,向服務器發(fā)送需要播放的媒體片斷文件的位置指示信息;客戶端可以根據(jù)服務器當前時間和客戶端的本地時間,計算并保存時間偏移,根 據(jù)這個時間偏移值,可以很容易地得到任何本地時間所對應的服務器時間。這個過程忽略 可以傳輸?shù)臅r延。更具體地,在本發(fā)明實施例中,客戶端還可以從服務器或者從本地獲取媒體片斷 的時間長度,該參數(shù)可以從媒體呈現(xiàn)描述文件中獲得(該參數(shù)也可以事先約定,或可以標 準化),根據(jù)所述直播開始時間、服務器的當前時間以及所述媒體片斷的時間長度,確定需 要播放的媒體片斷的位置信息;該位置信息可以是多種形式,比如是需要播放的媒體片斷 的序號;客戶端可以將該序號直接發(fā)送給服務器,由服務器根據(jù)該序號轉(zhuǎn)換為媒體片斷文 件的位置(比如URL);客戶端也可以從服務器或者從本地獲取統(tǒng)一資源定位符模板,然后 根據(jù)該序號和統(tǒng)一資源定位符模板,生成需要播放的媒體片斷文件對應的統(tǒng)一資源定位符 URL。本發(fā)明實施例的位置指示信息可以是統(tǒng)一資源定位符(Uniform ResourceLocator, URL),也可以是文件索引號等指示文件位置的信息,后續(xù)各實施例中的 位置指示信息可以如上述說明,但不限于上述說明。在本實施例中,客戶端需要播放的媒體片斷可以是最新的正在直播的媒體片斷, 也可以是客戶端根據(jù)實際需要指定從過去的某個時間開始觀看的媒體片斷。后續(xù)各實施例 中的“需要播放的媒體片斷”可以如上述說明,但不限于上述說明。在本實施例中,位置指示信息可以攜帶在由客戶端向服務器發(fā)送的媒體片斷請求 中。在后續(xù)各實施例中也可以作類似處理。S106.服務器接收來自客戶端的需要播放的媒體片斷的位置指示信息;
S108.服務器根據(jù)該位置指示信息,獲取該位置指示信息對應的媒體片斷文件,向 客戶端發(fā)送媒體片斷文件;S108.客戶端接收來自服務器的與需要播放的媒體片斷文件的位置指示信息對應 的媒體片斷文件;S110.客戶端播放媒體片斷文件;S112.客戶端繼續(xù)順序獲取并播放上述媒體片斷之后的媒體文件。如圖2所示,本發(fā)明實施例的方法在步驟S102之前,還可以包括S100-2.當客戶端需要獲取直播服務時,客戶端向服務器發(fā)送請求;在本步驟中,客戶端向服務器發(fā)送的請求中,可以攜帶對媒體呈現(xiàn)描述文件的請 求。媒體呈現(xiàn)描述文件可以是描述媒體數(shù)據(jù)的基本信息,比如媒體片斷的時間長度、 媒體數(shù)據(jù)的存儲位置、媒體分量(media component,如音頻、視頻、文字等)、媒體數(shù)據(jù)的屬 性(如對于視頻數(shù)據(jù)、其編解碼類型、視頻的比特率、幀率、分辨率等),該文件可以是在直 播開始時生成的。前面所述的統(tǒng)一資源定位符模板、直播開始時間、媒體片斷的時間長度都 可以攜帶在媒體呈現(xiàn)描述文件中。S100-4.服務器向客戶端發(fā)送媒體呈現(xiàn)描述文件;S100-6.客戶端接收來自服務器的媒體呈現(xiàn)描述文件;客戶端可以從該文件提取統(tǒng)一資源定位符模板、直播開始時間、媒體片斷的時間 長度,以生成需要播放的媒體片斷的統(tǒng)一資源定位符。本發(fā)明實施例方法可以根據(jù)實際需要對各個步驟順序進行調(diào)整。在本發(fā)明實施例中,服務器向客戶端發(fā)送的直播開始時間可以由超文本傳輸協(xié)議 頭Last-Modified或者媒體呈現(xiàn)描述文件攜帶,向客戶端發(fā)送的服務器的當前時間可以由 超文本傳輸協(xié)議頭Date攜帶。但不限于上述協(xié)議和字段,還可以是其他協(xié)議和字段。利用 上述兩個字段,則無須對HTTP協(xié)議進行擴展,能夠保護投資。通過本發(fā)明實施例,服務器向客戶端發(fā)送直播開始時間和服務器的當前時間,使 得客戶端能夠根據(jù)直播開始時間和服務器的當前時間獲得客戶端需要播放的媒體片斷文 件的位置指示信息,進而從服務器上獲取該位置指示信息對應的媒體片斷文件,從而實現(xiàn) 基于HTTP的流媒體直播服務。通過本發(fā)明實施例,無須對HTTP協(xié)議進行擴展,無須對服務 器增加額外的功能,可以充分利用已有的基礎設施,保護投資,降低成本。在本發(fā)明另一實施例中,對基于超文本傳輸協(xié)議HTTP的流媒體直播的方法進行 更深入具體的說明。參見圖3,本發(fā)明實施例的方法包括S302.當客戶端需要獲取直播服務時,向服務器發(fā)出請求;該請求可以是GET消 息,攜帶對媒體呈現(xiàn)描述文件的請求;S304.服務器接收來自客戶端的直播服務請求,根據(jù)請求向客戶端返回攜帶媒體 呈現(xiàn)描述文件的響應RESPONSE ;特別地,可以將媒體呈現(xiàn)描述文件產(chǎn)生的時間,即直播開始的時間攜帶在媒體呈 現(xiàn)描述文件或超文本傳輸協(xié)議HTTP頭Last-Modified中,可以將該響應產(chǎn)生(originate) 的時間,即服務器當前的時間攜帶在超文本傳輸協(xié)議HTTP頭Date中。通過上述方式,服務 器將直播開始的時間和服務器當前的時間告知客戶端?!癓ast Modified”和“Date”中的時間可以是以格林威治標準時間(Greenwich Mean Time,GMT)描述的,最小單位可以為秒。由 于直播開始時間是由服務器記錄的時間,當前時間也來自服務器,這樣兩個時間來源一致, 避免了由于服務器和客戶端時間不一致帶來的影響。S306.客戶端建立和服務器的時間同步關系。在本步驟中,客戶端可以根據(jù)服務器當前時間和本地時間,計算并保存時間偏移 ΔΤ=本地時間-服務器當前時間。根據(jù)這個時間偏移值Δ T,很容易得到任何本地時間所 對應的服務器時間。S308.客戶端確定需要播放的媒體片斷的統(tǒng)一資源定位符URL ;客戶端可以根據(jù)服務器當前時間和直播開始的時間計算需要播放的媒體片斷,需 要播放的媒體片斷可以是最新生成的媒體片斷,也可以是客戶端根據(jù)實際需要指定從過去 的某個時間開始觀看的媒體片斷。舉個例子,可以設置本地變量N,該變量N代表待獲取的文件序號??蛻舳丝梢愿?據(jù)服務器當前時間和直播開始的時間計算最新的正在直播的媒體片斷文件序號L,將文件 序號L賦給本地變量N。L可以按照如下的公式計算得到L = int( (T-TO)/Ts)其中T為服務器當前時間,TO為直播開始的時間,Ts為媒體片斷的時間長度(該 參數(shù)可以從服務器發(fā)送的信息中獲得,也可以事先約定,或可以標準化);int()為取整函 數(shù),int(x)表示不超過χ的最大整數(shù)??蛻舳艘部梢灾付◤倪^去的某個時間Tl開始觀看,根據(jù)服務器當前時間和本地 時間的時間偏移值Δ Τ,得到其所對應的服務器時間Τ2 = Tl-Δ Τ, Τ2滿足T0 ^ Τ2 ^ Τ,根 據(jù)公式L’ = int((T2-T0)/Ts)計算出指定從過去的Tl開始觀看的媒體片斷文件序號L’, 將文件序號L’賦給本地變量N。在本實施例中,直播內(nèi)容的制作是按照固定的時間生成媒體片斷。每個媒體片斷 在服務器中存儲為單個獨立的文件,稱為媒體片斷文件??蛻舳擞么@取的文件序號N,替 代統(tǒng)一資源定位符模板中的變量,生成該媒體片斷對應的統(tǒng)一資源定位符(URL)。S310.客戶端向服務器發(fā)送需要播放的媒體片斷對應的統(tǒng)一資源定位符以請求該 媒體片斷文件。S312.服務器接收來自客戶端的統(tǒng)一資源定位符,獲取對應的媒體片斷文件,返回 媒體片斷文件;S314.客戶端接收服務器返回的媒體片斷文件并播放;S316.客戶端修改后續(xù)待獲取的文件序號,即令N = N+1,替代統(tǒng)一資源定位符 模板中的變量,生成待獲取的媒體片斷對應的統(tǒng)一資源定位符(URL),并重復上述步驟 S310 S316,不斷請求并獲取后續(xù)的媒體片斷文件。客戶端從接收到第一個媒體片斷文件開始播放,依次播放所獲取的媒體片斷文 件。特別注意的是,該步驟S310 S316可以是并行的,即在播放序號為N的文件時,客戶 端在獲取序號為N+1的文件。本發(fā)明實施例方法可以根據(jù)實際需要對各個步驟順序進行調(diào)整。下面對媒體呈現(xiàn)描述文件進行說明。媒體呈現(xiàn)描述文件可以是在直播開始時,由 服務器生成。該文件描述了即將生成的媒體數(shù)據(jù)的基本信息,如媒體的分量、編碼數(shù)據(jù)的屬性(例如對于視頻分量、其編解碼類型、視頻的比特率、幀率、分辨率等)、是否直播、媒體 片斷的時間長度、如何獲取相關的媒體數(shù)據(jù)等。媒體呈現(xiàn)描述文件的結(jié)構如圖4所示,該文件在ISO基礎文件格式和3GP文件格 式的基礎上有所擴展。該文件在文件層次包含了三個對象,“ftyp”標識文件類型、說明文件 所遵從的規(guī)范;“moov”容納多個對象,這些對象定義了一個媒體呈現(xiàn)的元數(shù)據(jù);“meta”中 含有元數(shù)據(jù)。每個對象中又嵌套了其他的對象?!癿oov”包含了對媒體數(shù)據(jù)的基本信息的描述,不同的” trak”給出不同的媒體分量 的描述,比如trak 1描述了視頻分量的信息,如編解碼器、比特率、幀率、分辨率等;trak 2描述了音頻分量的信息,如語言、音量、單聲道或者立體聲等。在本實施例中,媒體片斷文件的位置可以以統(tǒng)一資源定位符模板(URLtemplate) 來描述。所謂的統(tǒng)一資源定位符模板,是一個以空字符(mill)結(jié)束的字符串,其中含有變 量,在構造實際使用的統(tǒng)一資源定位標記時需要替換其中的變量,如模板為http://WWW. huawei. com/v/audio/aUndex}. dat,生成統(tǒng)一資源定位符號時用文件序號8替代其中的 {index}得到http://www. huawei. com/v/audio/a8. dat。描述媒體片斷文件的位置的資源定位符模板存儲在對象“dref”中,“dref”包含 在對象“trak”中,而“trak”包含在對象“moov”中。在本例中,媒體片斷的時間長度包含在對象“meta”中,具體而言又是在“xml”中 給出的。本發(fā)明實施例中的媒體文件組織形式如圖5所示。圖5中的媒體包括視頻分量和音頻分量,視頻分量有3種不同碼率的編碼表述,音 頻有2種不同語言的編碼表述。每種編碼表述的信息,如編解碼器類型、編碼速率、幀率、 分辨率、音量等媒體的基本信息都包括在圖中的媒體呈現(xiàn)描述文件中。媒體呈現(xiàn)描述文件 通過統(tǒng)一資源定位符模板描述了媒體片斷文件的位置。媒體呈現(xiàn)描述文件中還可以包括媒 體片斷的時間長度。本發(fā)明實施例提供一種媒體呈現(xiàn)描述文件,該文件可以包括統(tǒng)一資源定位符模 板,該模版可以用于由客戶端生成需要播放的媒體片斷對應的統(tǒng)一資源定位符,該統(tǒng)一資 源定位符可以用于指示需要播放的媒體片斷文件的位置;該文件還可以包括媒體片斷的時 間長度,用于由客戶端根據(jù)其確定需要播放的媒體片斷的位置信息。在制作直播內(nèi)容時,可以按照固定的時間間隔生成媒體片斷,每個媒體片斷存儲 為一個獨立的文件。媒體片斷文件中包含單一媒體表述或者不同媒體表述的組合。每個 媒體片斷文件可以唯一地被訪問。文件的名字可以包括兩個部分基本名稱和序號,形如 al. dat, a2. dat,.....。第一個媒體片斷對應的文件序號為1,按時間順序以步長1遞增。 采用相同編碼表述或者編碼表述組合的媒體片斷文件存儲在同一路徑下,可以用一個統(tǒng)一 資源定位符來描述這些文件的位置。每個媒體片斷文件可以包含單一的編碼表述,以便于不同編碼表述的靈活組合, 而且沒有冗余節(jié)省存儲空間。在每個媒體片斷也可以允許不同編碼表述的組合,比如某一 速率的視頻編碼表述和某一語言的音頻編碼表述。圖6為本發(fā)明實施例的媒體片段示意圖,參見圖6,媒體片斷包括以下部分,“moof”用于描述該媒體片斷的元數(shù)據(jù),因為直播中媒體制作是實時的,無法事先得到所有 媒體數(shù)據(jù)的信息,在“moof”中只有媒體的基本信息,“moof”描述了該媒體片斷的特殊元數(shù) 據(jù)?!癿dat”用于封裝該片斷的媒體數(shù)據(jù),即編碼片斷,可以有單一的媒體分量的編碼表述或 者不同媒體分量的編碼表述的組合。虛線框中的“mfra”是可選的部分,用于描述該媒體片 斷中的隨機接入點。在媒體片斷中允許有不同媒體分量的編碼表述的組合。通過本發(fā)明實施例,服務器向客戶端發(fā)送直播開始時間和服務器的當前時間,使 得客戶端能夠根據(jù)直播開始時間和服務器的當前時間獲得客戶端需要播放的媒體片斷文 件的位置指示信息,進而從服務器上獲取該位置指示信息對應的媒體片斷文件,從而實現(xiàn) 基于HTTP的流媒體直播服務。通過本發(fā)明實施例,無須對HTTP協(xié)議進行擴展,無須對服務 器增加額外的功能,可以充分利用已有的基礎設施,保護投資,降低成本。此外,由于每個媒 體片斷以單獨文件的方式存儲在服務器上,所以,可以通過位置指示信息直接獲取媒體片 斷,避免對同一索引文件進行頻繁地存取訪問,提高直播的效率。如圖7所示,本發(fā)明實施例提供一種服務器,具體可以是流媒體服務器,其包括時間信息發(fā)送單元702,用于向客戶端發(fā)送直播開始時間和該服務器的當前時 間,以使所述客戶端根據(jù)所述直播開始時間和所述服務器的當前時間確定需要播放的媒 體片斷文件的位置指示信息;位置指示信息可以是統(tǒng)一資源定位符(Uniform Resource Locator, URL),也可以是文件索引號等指示文件位置的信息??蛻舳诵枰シ诺拿襟w片斷 可以是最新的正在直播的媒體片斷,也可以是客戶端根據(jù)實際需要指定從過去的某個時間 開始觀看的媒體片斷。位置指示信息接收單元704,用于接收來自客戶端的需要播放的媒體片斷文件的 位置指示信息;媒體片斷獲取單元706,用于根據(jù)客戶端的需要播放的媒體片斷的位置指示信息, 從存儲單元中獲取媒體片斷文件;媒體片斷文件發(fā)送單元708,用于向客戶端發(fā)送媒體片斷文件。進一步地,如圖8所示,該服務器還可以包括存儲單元802,用于以單個文件的方 式分別存儲流媒體的每個媒體片斷;媒體片斷的格式與上述實施例所說明的類似,在此不 再贅述。媒體片斷文件獲取單元706用于根據(jù)客戶端的需要播放的媒體片斷文件的位置指 示信息,從存儲單元802中獲取媒體片斷文件。
進一步地,如圖9所示,該服務器還可以包括統(tǒng)一資源定位符模板發(fā)送單元902, 用于將統(tǒng)一資源定位符模板發(fā)送給客戶端設備,以使客戶端設備根據(jù)該統(tǒng)一資源定位符模 板生成需要播放的媒體片斷文件對應的統(tǒng)一資源定位符;媒體片斷文件獲取單元706用于根據(jù)來自客戶端的需要播放的媒體片斷文件的 統(tǒng)一資源定位符,從存儲單元802中獲取媒體片斷文件。在本發(fā)明實施例中,服務器向客戶端發(fā)送的直播開始時間可以由超文本傳輸協(xié)議 頭Last-Modified或者媒體呈現(xiàn)描述文件攜帶,向客戶端發(fā)送的服務器的當前時間可以由 超文本傳輸協(xié)議頭Date攜帶。但不限于上述協(xié)議和字段,還可以是其他協(xié)議和字段。利用 上述兩個字段,則無須對HTTP協(xié)議進行擴展,能夠保護投資。本發(fā)明實施例的各個單元可以集成于一體,也可以分離部署。上述單元可以合并 為一個單元,也可以進一步拆分成多個子單元。
在本發(fā)明實施例中,服務器可以是流媒體服務器等,客戶端設備可以是手機、計算 機、個人數(shù)碼助理(Personal Digital AssistantiPDA)、小型服務器、家用電器、路由器、交 換機、基站以及各種電子設備、網(wǎng)絡設備或計算機相關設備等。通過本發(fā)明實施例,由服務器的時間信息發(fā)送單元向客戶端發(fā)送直播開始時間和 服務器的當前時間,使得客戶端能夠根據(jù)直播開始時間和服務器的當前時間獲得客戶端需 要播放的媒體片斷文件的位置指示信息,進而從服務器上獲取該位置指示信息對應的媒體 片斷文件,從而實現(xiàn)基于HTTP的流媒體直播服務。無須對HTTP協(xié)議進行擴展,無須對服務 器增加額外的功能,可以充分利用已有的基礎設施,保護投資,降低成本。此外,由于每個媒 體片斷以單獨文件的方式存儲在服務器的存儲單元上,所以,可以通過位置指示信息直接 獲取媒體片斷,避免對同一索引文件進行頻繁地存取訪問,提高直播的效率。如圖10所示,本發(fā)明實施例提供一種客戶端設備,其包括時間信息接收單元1002,用于接收來自服務器的直播開始時間和服務器的當前時 間;確定單元1004,用于根據(jù)直播開始時間和服務器的當前時間確定需要播放的媒 體片斷文件的位置指示信息;客戶端需要播放的媒體片斷可以是最新的正在直播的媒體片 斷,也可以是客戶端根據(jù)實際需要指定從過去的某個時間開始觀看的媒體片斷。位置指示信息發(fā)送單元1006,用于向服務器發(fā)送需要播放的媒體片斷文件的位置 指示信息;位置指示信息可以是統(tǒng)一資源定位符(Uniform ResourceLocatonURL),也可以 是文件索引號等指示文件位置的信息。媒體片斷文件接收單元1008,用于接收來自服務器的與需要播放的媒體片斷文件 的位置指示信息對應的媒體片斷文件;播放單元1010,用于播放媒體片斷文件。進一步地,如圖11所示,客戶端設備還可以包括媒體片斷時間長度獲取單元 1102,用于獲取媒體片斷時間長度;媒體片斷時間長度可以從服務器或者從本地獲取。確定單元1004用于根據(jù)所述直播開始時間、服務器的當前時間以及媒體片斷的 時間長度,確定需要播放的媒體片斷的位置信息,根據(jù)該位置信息生成需要播放的媒體片 斷文件的位置指示信息。進一步地,如圖12所示,客戶端設備還可以包括統(tǒng)一資源定位符模板獲取單元1202,用于獲取統(tǒng)一資源定位符模板;統(tǒng)一資源定 位符模板可以從服務器或者從本地獲取。確定單元1004包括子確定單元1004-2,用于根據(jù)直播開始時間、服務器的當前時間以及媒體片斷的 時間長度,確定需要播放的媒體片斷的序號;生成單元1004-4,用于根據(jù)所述序號和統(tǒng)一資源定位符模板,生成需要播放的媒 體片斷文件對應的統(tǒng)一資源定位符。在本發(fā)明實施例中,服務器向客戶端發(fā)送的直播開始時間可以由超文本傳輸協(xié)議 頭Last-Modified或者媒體呈現(xiàn)描述文件攜帶,向客戶端發(fā)送的服務器的當前時間可以由 超文本傳輸協(xié)議報文頭Date攜帶。但不限于上述協(xié)議和字段,還可以是其他協(xié)議和字段。 利用上述兩個字段,則無須對HTTP協(xié)議進行擴展,能夠保護投資。
本發(fā)明實施例的各個單元可以集成于一體,也可以分離部署。上述單元可以合并 為一個單元,也可以進一步拆分成多個子單元。在本發(fā)明實施例中,服務器可以是流媒體服務器等,客戶端設備可以是手機、計算 機、個人數(shù)碼助理(Personal Digital AssistantiPDA)、小型服務器、家用電器、路由器、交 換機、基站以及各種電子設備、網(wǎng)絡設備或計算機相關設備等。通過本發(fā)明實施例,由服務器的時間信息發(fā)送單元向客戶端發(fā)送直播開始時間和 所述服務器的當前時間,使得客戶端能夠根據(jù)直播開始時間和服務器的當前時間獲得客戶 端需要播放的媒體片斷文件的位置指示信息,進而從服務器上獲取該位置指示信息對應的 媒體片斷文件,從而實現(xiàn)基于HTTP的流媒體直播服務。無須對HTTP協(xié)議進行擴展,無須對 服務器增加額外的功能,可以充分利用已有的基礎設施,保護投資,降低成本。如圖13所示,本發(fā)明實施例提供一種網(wǎng)絡系統(tǒng),其包括服務器1302,用于向客戶端發(fā)送直播開始時間和該服務器的當前時間,以使客戶 端根據(jù)直播開始時間和服務器的當前時間確定需要播放的媒體片斷文件的位置指示信息; 接收來自客戶端的需要播放的媒體片斷文件的位置指示信息;根據(jù)客戶端的需要播放的媒 體片斷文件的位置指示信息,獲取媒體片斷文件;向客戶端發(fā)送媒體片斷文件;客戶端設備1304,用于接收來自服務器的直播開始時間和服務器的當前時間;根 據(jù)直播開始時間和服務器的當前時間確定需要播放的媒體片斷文件的位置指示信息;向服 務器發(fā)送需要播放的媒體片斷文件的位置指示信息;接收來自服務器的與需要播放的媒體 片斷文件的位置指示信息對應的媒體片斷文件;播放媒體片斷文件。服務器1302還可以用于以單個文件的方式分別存儲流媒體的每個媒體片斷。在本發(fā)明實施例中,服務器向客戶端發(fā)送的直播開始時間可以由超文本傳輸協(xié)議 頭Last-Modified或者媒體呈現(xiàn)描述文件攜帶,向客戶端發(fā)送的服務器的當前時間可以由 超文本傳輸協(xié)議頭Date攜帶。在本發(fā)明實施例中,服務器1302可以是流媒體服務器等,客戶端設備1304可以 是手機、計算機、個人數(shù)碼助理(Personal DigitalAssistant, PDA)、小型服務器、家用電 器、路由器、交換機、基站以及各種電子設備、網(wǎng)絡設備或計算機相關設備等。網(wǎng)絡系統(tǒng)的 連接方式可以是有線連接或無線連接,無線連接方式可以是全球移動通信系統(tǒng)(Global System for Mobile Communications, GSM)、寬帶石馬分多址(Wideband-Code Division Multiple Access,WCDMA)、時分同步碼分多址接入(Time Division-Synchronized Code Division Multiple Access, TD-SCDMA)、碼分多址(Code-Division Multiple Access, CDMA)、全球微波互聯(lián)接入(Worldwide Interoperability for Microwave Access,UMAX) > ^C^i^^N (Wireless Local Area Network, WLAN) ^HJiiii (Long Term Evolution, LTE)等。通過本發(fā)明實施例,由服務器的時間信息發(fā)送單元向客戶端發(fā)送直播開始時間和 服務器的當前時間,使得客戶端能夠根據(jù)直播開始時間和服務器的當前時間獲得客戶端需 要播放的媒體片斷文件的位置指示信息,進而從服務器上獲取該位置指示信息對應的媒體 片斷文件,從而實現(xiàn)基于HTTP的流媒體直播服務。無須對HTTP協(xié)議進行擴展,無須對服務 器增加額外的功能,可以充分利用已有的基礎設施,保護投資,降低成本。此外,由于每個媒 體片斷以單獨文件的方式存儲在服務器上,所以,可以通過位置指示信息直接獲取媒體片斷,避免對同一文件進行頻繁地存取訪問,提高了直播的效率。結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、 計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明 中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式 來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應 用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的 軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器 (ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或任意其它 形式的存儲介質(zhì)中。以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何 熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內(nèi),可輕易想到變化或替換,都應涵 蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應所述以權利要求的保護范圍為準。
權利要求
1.一種實現(xiàn)基于超文本傳輸協(xié)議HTTP的流媒體業(yè)務的方法,其特征在于,所述方法包括服務器接收來自客戶端的請求,根據(jù)所述對媒體呈現(xiàn)描述文件請求向客戶端返回攜帶 媒體呈現(xiàn)描述文件的響應;服務器和客戶端之間建立時間同步關系。服務器接收來自客戶端的統(tǒng)一資源定位符,獲取對應的媒體片斷文件,向客戶端返回 所述媒體片斷文件用于客戶端播放,其中,所述統(tǒng)一資源定位符為客戶端確定需要播放的 媒體片段的統(tǒng)一資源定位符,用以客戶端向服務器請求所述媒體片段文件。
2.根據(jù)權利要求1所述的方法,其特征在于服務器根據(jù)所述對媒體呈現(xiàn)描述文件請 求向客戶端返回攜帶媒體呈現(xiàn)描述文件的響應還包括將所述媒體呈現(xiàn)描述文件產(chǎn)生的時 間攜帶在媒體呈現(xiàn)描述文件或超文本傳輸協(xié)議HTTP頭Last-Modif ied中,將該響應產(chǎn)生的 時間攜帶在超文本傳輸協(xié)議HTTP頭Date中告知客戶端。
3.根據(jù)權利要求1所述的方法,其特征在于服務器在直播開始時產(chǎn)生所述媒體呈現(xiàn)描述文件,所述媒體呈現(xiàn)描述文件描述即將生 成的媒體數(shù)據(jù)的基本信息。
4.根據(jù)權利要求1或2所述的方法,其特征在于,所述媒體呈現(xiàn)描述文件包括統(tǒng)一資 源定位符模板,所述模版用于客戶端生成需要播放的媒體片斷對應的統(tǒng)一資源定位符,所 述統(tǒng)一資源定位符用于指示需要播放的媒體片斷文件的位置。
5.根據(jù)權利要求4所述的方法,其特征在于,所述媒體呈現(xiàn)描述文件還包括媒體片斷 的時間長度,所述媒體片斷的時間長度用于客戶端根據(jù)其確定需要播放的媒體片斷的位置 fn息ο
6.根據(jù)權利要求1或2所述的方法,其特征在于,所述媒體片斷文件中包括單一媒體表 述或者不同媒體表述的組合。
7.一種實現(xiàn)基于超文本傳輸協(xié)議HTTP的流媒體業(yè)務的方法,其特征在于,所述方法包括客戶端向服務器發(fā)出請求,所述請求用于使服務器根據(jù)所述請求向客戶端返回攜帶媒 體呈現(xiàn)描述文件的響應;客戶端建立和服務器的時間同步關系; 客戶端確定需要播放的媒體片斷的統(tǒng)一資源定位符URL ;客戶端向服務器發(fā)送需要播放的媒體片斷對應的統(tǒng)一資源定位符以請求媒體片斷文件;客戶端接收服務器返回的對應所述統(tǒng)一資源定位符的媒體片斷文件并播放。
8.根據(jù)權利要求7所述的方法,其特征在于,所述方法還包括客戶端將文件序號順序遞增作為后續(xù)待獲取的文件序號,替代統(tǒng)一資源定位符模板中 的變量,生成待獲取的媒體片斷對應的統(tǒng)一資源定位符URL,不斷請求并獲取后續(xù)的媒體片 斷文件。
9.根據(jù)權利要求1所述的方法,其特征在于所述媒體呈現(xiàn)描述文件在直播開始時由服務器產(chǎn)生,描述即將生成的媒體數(shù)據(jù)的基本 fn息ο
10.根據(jù)權利要求7或9所述的方法,其特征在于客戶端根據(jù)服務器當前時間和直播開始的時間計算最新的正在直播的媒體片斷文件 序號L,所述將文件序號L賦給代表待獲取的文件序號的本地變量N,其中,L如下得到L = int( (T-TO)/Ts),T為服務器當前時間,TO為直播開始的時間,Ts為媒體片斷的時間長度,int()為取整 函數(shù),int(x)表示不超過χ的最大整數(shù)。
11.根據(jù)權利要求10所述的方法,其特征在于若客戶端指定從過去的某個時間Tl開始觀看,根據(jù)服務器當前時間和本地時間的時 間偏移值Δ T,得到其所對應的服務器時間Τ2 = Τ1-ΔΤ,Τ2滿足T0 ^ Τ2 ^ Τ,根據(jù)公式 L’ = int((T2-T0)/Ts)計算出指定從過去的Tl開始觀看的媒體片斷文件序號L’,將文件 序號L’賦給本地變量N。
12.根據(jù)權利要求7或8所述的方法,其特征在于,所述媒體呈現(xiàn)描述文件包括統(tǒng)一 資源定位符模板,所述模版用于客戶端生成需要播放的媒體片斷對應的統(tǒng)一資源定位符, 所述統(tǒng)一資源定位符用于指示需要播放的媒體片斷文件的位置。
13.根據(jù)權利要求12所述的方法,其特征在于,所述媒體呈現(xiàn)描述文件還包括媒體片 斷的時間長度,所述媒體片斷的時間長度用于客戶端根據(jù)其確定需要播放的媒體片斷的位 直fe息。
14.根據(jù)權利要求7或8所述的方法,其特征在于,所述媒體片斷文件中包括單一媒體 表述或者不同媒體表述的組合。
全文摘要
本發(fā)明實施例公開了一種實現(xiàn)基于超文本傳輸協(xié)議的流媒體業(yè)務的方法,包括客戶端向服務器發(fā)出請求,所述請求用于使服務器根據(jù)所述請求向客戶端返回攜帶媒體呈現(xiàn)描述文件的響應,客戶端建立和服務器的時間同步關系,客戶端確定需要播放的媒體片斷的統(tǒng)一資源定位符URL,客戶端向服務器發(fā)送需要播放的媒體片斷對應的統(tǒng)一資源定位符以請求媒體片斷文件,客戶端接收服務器返回的對應所述統(tǒng)一資源定位符的媒體片斷文件并播放。通過本發(fā)明實施例實現(xiàn)基于HTTP的流媒體直播服務。
文檔編號H04L29/08GK102055789SQ20101028218
公開日2011年5月11日 申請日期2009年11月9日 優(yōu)先權日2009年11月9日
發(fā)明者張少波 申請人:華為技術有限公司