客戶端、流媒體數(shù)據(jù)接收方法和流媒體數(shù)據(jù)傳輸系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及流媒體技術(shù),尤其涉及一種客戶端、流媒體數(shù)據(jù)接收方法和流媒體數(shù) 據(jù)傳輸系統(tǒng)。
【背景技術(shù)】
[0002] 采用傳統(tǒng)流媒體技術(shù)中,傳輸?shù)牧髅襟w數(shù)據(jù)需要經(jīng)過防火墻,且需要專業(yè)的媒體 服務(wù)器支撐,實(shí)現(xiàn)復(fù)雜。因此出現(xiàn)了通過互聯(lián)網(wǎng)傳輸流媒體數(shù)據(jù)的互聯(lián)網(wǎng)流媒體技術(shù),其不 對(duì)現(xiàn)有互聯(lián)網(wǎng)體系提出額外的要求,可通過對(duì)媒體文件的存儲(chǔ)、信息描述方式進(jìn)行修改,使 得通過現(xiàn)有的HTTP協(xié)議傳輸流媒體數(shù)據(jù)。
[0003] 移動(dòng)圖像專家組(Moving Pictures Experts Group,MPEG)制定的動(dòng)態(tài)自適應(yīng)流 媒體(Dynamic Adaptive Streaming,DASH)標(biāo)準(zhǔn),簡(jiǎn)稱MPEG DASH標(biāo)準(zhǔn),提供了采用互聯(lián)網(wǎng) 流媒體技術(shù)傳輸流媒體數(shù)據(jù)的標(biāo)準(zhǔn)化方案。
[0004] MPEG DASH標(biāo)準(zhǔn)定義的媒體展現(xiàn)描述(Media Presentation Description,MPD)的 層次結(jié)構(gòu)模型如圖1所示。
[0005] 該層次結(jié)構(gòu)模型中,時(shí)段(Period)用于描述可播放一段時(shí)間的媒體內(nèi)容, 次序相鄰的時(shí)段描述的媒體內(nèi)容在時(shí)間上是連續(xù)的。一個(gè)時(shí)段包含多個(gè)適配集合 (Adaptation Set),每個(gè)適配集合描述適配多個(gè)碼率的媒體內(nèi)容,每個(gè)碼率對(duì)應(yīng)一個(gè)呈現(xiàn) (Representation)。呈現(xiàn)描述媒體內(nèi)容的具體封裝格式、碼率、編解碼參數(shù)等信息。一個(gè)呈 現(xiàn)包含多個(gè)分片(Segment)的統(tǒng)一資源定位器(Uniform Resoure Locator,URL),用于指 示對(duì)應(yīng)的分片的存儲(chǔ)位置,分片包含具體的媒體內(nèi)容,即音頻、視頻、字幕、復(fù)用的音頻和視 頻等。
[0006] 在圖1所示的MPEG DASH標(biāo)準(zhǔn)定義的MPD層次結(jié)構(gòu)模型下,一種客戶端展現(xiàn)媒體 內(nèi)容的工作流程如圖2所示,該流程包括如下步驟:
[0007] S201 :客戶端向服務(wù)器請(qǐng)求MPD ;
[0008] S202 :服務(wù)器向客戶端發(fā)送MPD ;
[0009] S203 :客戶端解析MPD,從中獲取相關(guān)分片的URL以及展現(xiàn)順序等信息;
[0010] S204 :客戶端向服務(wù)器請(qǐng)求分片;
[0011] S205 :服務(wù)器向客戶端發(fā)送分片;
[0012] S206 :客戶端展現(xiàn)媒體內(nèi)容,包括:調(diào)用分片解析模塊對(duì)媒體內(nèi)容進(jìn)行解碼,然后 交由媒體播放器進(jìn)行展現(xiàn)。
[0013] 在客戶端獲取媒體的過程中,客戶端與服務(wù)器之間的網(wǎng)絡(luò)情況是不斷變化的???戶端會(huì)收集諸如:內(nèi)容獲取時(shí)長(zhǎng)、解碼時(shí)長(zhǎng)、緩存媒體可播放時(shí)間等信息,根據(jù)這些參數(shù)確 定與服務(wù)器之間的網(wǎng)絡(luò)情況,并結(jié)合MPD中的信息,動(dòng)態(tài)確定請(qǐng)求獲取碼率較高、較低或者 不變的分片。
[0014] 若在客戶端獲取媒體的過程中,網(wǎng)絡(luò)情況突然惡化,比如:網(wǎng)絡(luò)可用帶寬突然變 小,客戶端來不及調(diào)整碼率,這將使得客戶端獲取媒體內(nèi)容的時(shí)間過長(zhǎng),甚至導(dǎo)致媒體播放 中斷。目前,還沒有一種能解決該問題的方法。
【發(fā)明內(nèi)容】
[0015] 本發(fā)明實(shí)施例提供一種客戶端、流媒體數(shù)據(jù)接收方法和流媒體數(shù)據(jù)傳輸系統(tǒng),用 以解決客戶端和服務(wù)器之間的網(wǎng)絡(luò)情況發(fā)生突然惡化時(shí),客戶端來不及調(diào)整碼率,獲取媒 體內(nèi)容的時(shí)間過長(zhǎng),甚至導(dǎo)致媒體播放中斷的問題。
[0016] 第一方面,本發(fā)明實(shí)施例提供一種客戶端,包括:收發(fā)模塊和處理模塊;
[0017] 所述收發(fā)模塊,用于向服務(wù)器請(qǐng)求分片,以及接收所述服務(wù)器發(fā)送的分片;
[0018] 所述處理模塊,用于判斷所述收發(fā)模塊是否在向服務(wù)器請(qǐng)求第一分片之后的預(yù)設(shè) 的時(shí)間閾值內(nèi),收到所述服務(wù)器發(fā)送的所述第一分片;若未收到,則控制所述收發(fā)模塊向所 述服務(wù)器請(qǐng)求第二分片;
[0019] 其中,所述第一分片與所述第二分片包含的媒體內(nèi)容相同,所述第一分片的碼率 大于所述第二分片的碼率。
[0020] 第二方面,本發(fā)明實(shí)施例提供一種流媒體數(shù)據(jù)接收方法,包括:
[0021] 客戶端判斷是否在向服務(wù)器請(qǐng)求第一分片之后的預(yù)設(shè)的時(shí)間閾值內(nèi),收到所述服 務(wù)器發(fā)送的所述第一分片;
[0022] 若未收到,則所述客戶端向所述服務(wù)器請(qǐng)求第二分片;
[0023] 其中,所述第一分片與所述第二分片包含的媒體內(nèi)容相同,所述第一分片的碼率 大于所述第二分片的碼率。
[0024] 第三方面,本發(fā)明實(shí)施例提供一種流媒體數(shù)據(jù)傳輸系統(tǒng),包括客戶端和服務(wù)器,所 述服務(wù)器,用于向所述客戶端發(fā)送媒體分片;
[0025] 所述客戶端,用于判斷是否在向所述服務(wù)器請(qǐng)求第一分片之后的預(yù)設(shè)的時(shí)間閾值 內(nèi),收到所述服務(wù)器發(fā)送的所述第一分片;若未收到,則向所述服務(wù)器請(qǐng)求第二分片;
[0026] 其中,所述第一分片與所述第二分片包含的媒體內(nèi)容相同,所述第一分片的碼率 大于所述第二分片的碼率。
[0027] 綜上,本發(fā)明實(shí)施例中,客戶端在預(yù)設(shè)的時(shí)間閾值內(nèi)未收到服務(wù)器發(fā)送的分片時(shí), 向服務(wù)器請(qǐng)求媒體內(nèi)容相同,碼率更低的分片。通過設(shè)置該預(yù)設(shè)的時(shí)間閾值,超過該時(shí)間閾 值則獲取碼率更低的分片,使得客戶端能夠及時(shí)調(diào)整碼率,盡快獲取媒體內(nèi)容,保證媒體播 放的連續(xù)性。
【附圖說明】
[0028] 圖1為MPEG DASH標(biāo)準(zhǔn)定義的MPD層次結(jié)構(gòu)模型圖;
[0029] 圖2為在圖1所示的框架下客戶端展現(xiàn)媒體內(nèi)容的過程的流程圖;
[0030]圖3A為本發(fā)明實(shí)施例提供的流媒體數(shù)據(jù)傳輸系統(tǒng)的結(jié)構(gòu)示意圖;
[0031] 圖3B為本發(fā)明實(shí)施例提供的客戶端的結(jié)構(gòu)示意圖;
[0032] 圖4為本發(fā)明實(shí)施例中,客戶端進(jìn)行媒體播放的時(shí)間信息圖;
[0033] 圖5為碼率切換方式示意圖;
[0034] 圖6為本發(fā)明實(shí)施例提供的流媒體數(shù)據(jù)接收方法的流程圖。
【具體實(shí)施方式】
[0035] 本發(fā)明實(shí)施例提供一種客戶端、流媒體數(shù)據(jù)接收方法和流媒體數(shù)據(jù)傳輸系統(tǒng),用 以解決客戶端和服務(wù)器之間的網(wǎng)絡(luò)情況突然惡化時(shí),客戶端來不及調(diào)整碼率,獲取媒體內(nèi) 容的時(shí)間過長(zhǎng),甚至導(dǎo)致媒體播放中斷的問題。
[0036] 本發(fā)明實(shí)施例提供的客戶端在預(yù)設(shè)的時(shí)間閾值內(nèi)未收到服務(wù)器發(fā)送的分片時(shí),向 服務(wù)器請(qǐng)求媒體內(nèi)容相同,碼率更低的分片。通過設(shè)置該預(yù)設(shè)的時(shí)間閾值,超過該時(shí)間閾值 則獲取碼率更低的分片,使得客戶端能夠及時(shí)調(diào)整碼率,盡快獲取媒體內(nèi)容,保證媒體播放 的連續(xù)性。
[0037] 下面,結(jié)合附圖對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)說明。首先,介紹本發(fā)明實(shí)施例提供的流 媒體數(shù)據(jù)傳輸系統(tǒng)及客戶端;然后介紹本發(fā)明實(shí)施例提供的流媒體數(shù)據(jù)接收方法。
[0038] 圖3A為本發(fā)明實(shí)施例提供的流媒體數(shù)據(jù)傳輸系統(tǒng)10的結(jié)構(gòu)示意圖。如圖3所示, 流媒體數(shù)據(jù)傳輸系統(tǒng)10包括:客戶端30和服務(wù)器20,其中,服務(wù)器20用于向客戶端30發(fā) 送媒體分片;
[0039] 如圖3B所示,客戶端30包括:收發(fā)模塊301和處理模塊302 ;
[0040] 收發(fā)模塊301,用于向服務(wù)器20請(qǐng)求分片,以及接收服務(wù)器20發(fā)送的分片;
[0041] 處理模塊302,用于判斷收發(fā)模塊301是否在向服務(wù)器20請(qǐng)求第一分片之后的預(yù) 設(shè)的時(shí)間閾值內(nèi),收到服務(wù)器20發(fā)送的第一分片;若未收到,貝Ij控制收發(fā)模塊301向服務(wù)器 20請(qǐng)求第二分片;
[0042] 其中,第一分片與第二分片包含的媒體內(nèi)容相同,第一分片的碼率大于第二分片 的碼率。
[0043] 圖4示出了客戶端30進(jìn)行媒體播放的時(shí)間信息。如圖4所示,在TO時(shí)刻,客戶端 30緩存的媒體可播放至T3時(shí)刻,即緩存媒體可播放時(shí)長(zhǎng)為:T3-T0。
[0044] 在TO時(shí)刻,客戶端30執(zhí)行步驟S401 :向服務(wù)器請(qǐng)求第一分片,并啟動(dòng)定時(shí)器計(jì) 時(shí),定時(shí)器時(shí)長(zhǎng)為預(yù)設(shè)的時(shí)間閾值;
[0045] 在Tl時(shí)刻,定時(shí)器超時(shí),客戶端30執(zhí)行步驟S402 :請(qǐng)求第二分片;
[0046] 在T2時(shí)刻,客戶端30執(zhí)行步驟S403 :成功獲取第二分片;
[0047] 由于T2在T3之前,因此,客戶