本發(fā)明涉及多媒體終端音視頻播放技術領域,具體涉及一種播放方法及裝置。
背景技術:
隨著移動互聯(lián)網的迅猛發(fā)展,OTT技術的推廣以及各種智能終端設備的出現(xiàn),通過手機、掌上電腦、機頂盒等視頻終端在線收看視頻,成為人們越來越普遍的休閑娛樂方式。針對網絡帶寬的時時狀況達不到碼率完美適配帶寬的情況,蘋果公司推出了HLS規(guī)范,一個片源做不同碼率的區(qū)分,同時使用流切片技術將一個完整的片源切成若干小片,通常是10秒每片,不同的碼率片源,切割成相同數(shù)量的分片,不同碼率中相同的分片序對應相同的視頻內容,同時使用m3u8格式分別對各碼率生成播放列表文件詳細描述每個分片的索引信息,用來指導播放器如何播放文件切片。這樣在播放過程中,可以實現(xiàn)逐分片下載播放模式,當一旦檢測到網絡發(fā)生變動,及時調整碼率下載新的最優(yōu)碼率的對應分片,從播放流暢度和畫面清晰度方面達到最佳的播放效果。
由于HLS規(guī)范采用一級、二級索引文件的方式做具體媒體分片的索引導航。因此在播放開始的起播過程對一級索引二級索引的下載解析過程是一個很大的性能消耗。特別是碼率越多需要下載和解析的二級索引文件就越多,性能消耗就越大越耗時。
技術實現(xiàn)要素:
:
本發(fā)明提供一種播放方法及裝置,實現(xiàn)了多媒體數(shù)據(jù)的快速起播。
為解決上述技術問題,本發(fā)明提供一種播放方法,所述方法包括:
根據(jù)多媒體數(shù)據(jù)的一級索引文件解析獲取到各二級索引文件的請求地址后,下載任一碼率對應的二級索引文件并進行解析,獲取該碼率的各媒體分片的地址;
從該碼率的第一個媒體分片開始進行下載播放。
優(yōu)選地,從該碼率的第一個媒體分片開始進行下載播放后還包括:
在當前媒體分片播放完畢后,下載下一媒體分片前,根據(jù)已播放的媒體分片的下載速率以及當前碼率判斷是否需要切換碼率;
如果需要切換碼率,則判斷是否已存在待切換碼率的媒體分片的地址,如果不存在則對所述待切換碼率對應的二級索引文件進行下載和解析,獲取待切換碼率的媒體分片的地址,下載并播放待切換碼率的相應的媒體分片;如果已存在則下載并播放待切換碼率的相應的媒體分片;
如果不需要切換碼率,則下載和播放所述下一媒體分片。
優(yōu)選地,
所述根據(jù)已播放的媒體分片的下載速率以及當前碼率判斷是否需要切換碼率包括:
如果最近播放的預定個數(shù)的媒體分片的下載速率都小于當前碼率,且當前碼率不是最小碼率,則判斷需要切換碼率,待切換碼率小于所述當前碼率。
優(yōu)選地,
所述根據(jù)已播放的媒體分片的下載速率以及當前碼率判斷是否需要切換碼率包括:
如果最近播放的預定個數(shù)的媒體分片的下載速率都大于當前碼率,且當前碼率不是最大碼率,則判斷需要切換碼率,待切換碼率大于所述當前碼率。
優(yōu)選地,
所述根據(jù)已播放的媒體分片的下載速率以及當前碼率判斷是否需要切換碼率包括:
如果最近播放的預定個數(shù)的媒體分片的下載速率不都小于當前碼率,并且最近播放的媒體分片的下載速率不都大于當前碼率則判斷不需要切換碼率。
優(yōu)選地,
所述下載任一碼率對應的二級索引文件并進行解析包括:
下載最小碼率對應的二級索引文件并進行解析。
本發(fā)明還提供一種播放裝置,所述裝置包括:
解析模塊,用于根據(jù)多媒體數(shù)據(jù)的一級索引文件解析獲取到各二級索引文件的請求地址后,下載任一碼率對應的二級索引文件并進行解析;還用于獲取該碼率的各媒體分片的地址;
處理模塊,用于從該碼率的第一個媒體分片開始進行下載播放。
優(yōu)選地,
所述裝置還包括判斷模塊,所述判斷模塊包括:
第一判斷子模塊,用于在當前媒體分片播放完畢后,下載下一媒體分片前,根據(jù)已播放的媒體分片的下載速率以及當前碼率判斷是否需要切換碼率;
第二判斷子模塊,用于如果需要切換碼率,則判斷是否已存在待切換碼率的媒體分片的地址,如果不存在則對所述待切換碼率對應的二級索引文件進行下載和解析,獲取待切換碼率的媒體分片的地址,下載并播放待切換碼率的相應的媒體分片;還用于如果已存在則下載并播放待切換碼率的相應的媒體分片;
第三判斷子模塊,用于如果不需要切換碼率,則下載和播放所述下一媒體分片。
優(yōu)選地,
所述第一判斷子模塊用于根據(jù)已播放的媒體分片的下載速率以及當前碼率判斷是否需要切換碼率具體是指:
如果最近播放的預定個數(shù)的媒體分片的下載速率都小于當前碼率,且當前碼率不是最小碼率,則判斷需要切換碼率,待切換碼率小于所述當前碼率。
優(yōu)選地,
所述第一判斷子模塊用于根據(jù)已播放的媒體分片的下載速率以及當前碼 率判斷是否需要切換碼率具體是指:
如果最近播放的預定個數(shù)的媒體分片的下載速率都大于當前碼率,且當前碼率不是最大碼率,則判斷需要切換碼率,待切換碼率大于所述當前碼率。
優(yōu)選地,
所述第一判斷子模塊用于根據(jù)已播放的媒體分片的下載速率以及當前碼率判斷是否需要切換碼率具體是指:
如果最近播放的預定個數(shù)的媒體分片的下載速率不都小于當前碼率,并且最近播放的媒體分片的下載速率不都大于當前碼率則判斷不需要切換碼率。
優(yōu)選地,
所述解析模塊用于下載任一碼率對應的二級索引文件并進行解析具體是指:
下載最小碼率對應的二級索引文件并進行解析。
上述方案實現(xiàn)了多媒體數(shù)據(jù)的快速起播,降低的性能消耗。同時可以根據(jù)連續(xù)兩個媒體分片的下載速率進行自適應切換,保證實時網絡狀況的有效性,避免了突發(fā)的網絡影響導致不適當?shù)拇a率切換。
附圖說明
圖1為實施例一中的播放方法的流程圖;
圖2為實施例一中的播放裝置的結構示意圖。
具體實施方式
為使本申請的目的、技術方案和優(yōu)點更加清楚明白,下文中將結合附圖對本申請的實施例進行詳細說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
實施例一
如圖1所示,本實施例提供一種播放方法,所述方法包括:
步驟S11:根據(jù)多媒體數(shù)據(jù)的一級索引文件解析獲取到各二級索引文件的請求地址后,下載任一碼率對應的二級索引文件并進行解析,獲取該碼率的各媒體分片的地址;
步驟S12:從該碼率的第一個媒體分片開始進行下載播放。
優(yōu)選地,步驟S12后還包括以下步驟:
步驟S13:在當前媒體分片播放完畢后,下載下一媒體分片前,根據(jù)已播放的媒體分片的下載速率以及當前碼率判斷是否需要切換碼率;
步驟S14:如果需要切換碼率,則判斷是否已存在待切換碼率的媒體分片的地址,如果不存在則對所述待切換碼率對應的二級索引文件進行下載和解析,獲取待切換碼率的媒體分片的地址,下載并播放待切換碼率的相應的媒體分片;如果已存在則下載并播放待切換碼率的相應的媒體分片;
如果不需要切換碼率,則下載和播放所述下一媒體分片。
具體的,根據(jù)已播放的媒體分片的下載速率以及當前碼率判斷是否需要切換碼率可以通過以下方式實現(xiàn):
如果最近播放的預定個數(shù)的媒體分片的下載速率都小于當前碼率,且當前碼率不是最小碼率,則判斷需要切換碼率,待切換碼率小于所述當前碼率。
如果最近播放的預定個數(shù)的媒體分片的下載速率都大于當前碼率,且當前碼率不是最大碼率,則判斷需要切換碼率,待切換碼率大于所述當前碼率。
如果最近播放的預定個數(shù)的媒體分片的下載速率不都小于當前碼率,并且最近播放的媒體分片的下載速率不都大于當前碼率則判斷不需要切換碼率。
優(yōu)選地,在本實施例中,首先下載最小碼率對應的二級索引文件并進行解析。
如圖2所示,本實施例還提供一種播放裝置,所述裝置包括:
解析模塊11,用于根據(jù)多媒體數(shù)據(jù)的一級索引文件解析獲取到各二級索引文件的請求地址后,下載任一碼率對應的二級索引文件并進行解析;還用于獲取該碼率的各媒體分片的地址;
處理模塊12,用于從該碼率的第一個媒體分片開始進行下載播放。
優(yōu)選地,
所述裝置還包括判斷模塊13,所述判斷模塊13包括:
第一判斷子模塊131,用于在當前媒體分片播放完畢后,下載下一媒體分片前,根據(jù)已播放的媒體分片的下載速率以及當前碼率判斷是否需要切換碼率;
第二判斷子模塊132,用于如果需要切換碼率,則判斷是否已存在待切換碼率的媒體分片的地址,如果不存在則對所述待切換碼率對應的二級索引文件進行下載和解析,獲取待切換碼率的媒體分片的地址,下載并播放待切換碼率的相應的媒體分片;還用于如果已存在則下載并播放待切換碼率的相應的媒體分片;
第三判斷子模塊133,用于如果不需要切換碼率,則下載和播放所述下一媒體分片。
優(yōu)選地,
所述第一判斷子模塊131用于根據(jù)已播放的媒體分片的下載速率以及當前碼率判斷是否需要切換碼率具體是指:
如果最近播放的預定個數(shù)的媒體分片的下載速率都小于當前碼率,且當前碼率不是最小碼率,則判斷需要切換碼率,待切換碼率小于所述當前碼率。
優(yōu)選地,
所述第一判斷子模塊131用于根據(jù)已播放的媒體分片的下載速率以及當前碼率判斷是否需要切換碼率具體是指:
如果最近播放的預定個數(shù)的媒體分片的下載速率都大于當前碼率,且當前碼率不是最大碼率,則判斷需要切換碼率,待切換碼率大于所述當前碼率。
優(yōu)選地,
所述第一判斷子模塊131用于根據(jù)已播放的媒體分片的下載速率以及當前碼率判斷是否需要切換碼率具體是指:
如果最近播放的預定個數(shù)的媒體分片的下載速率不都小于當前碼率,并且最近播放的媒體分片的下載速率不都大于當前碼率則判斷不需要切換碼 率。
優(yōu)選地,
所述解析模塊11用于下載任一碼率對應的二級索引文件并進行解析具體是指:
下載最小碼率對應的二級索引文件并進行解析。
實施例二
首先簡單闡述一下HLS規(guī)范的整體策略:
策略一:HLS(HTTP Live Streaming,動態(tài)碼率自適應技術)規(guī)范需要終端設備和流媒體配合,針對一個片源,自適應流媒體內容組織方式如圖1所示,內容共由一個自適應流媒體內容一級索引和多個自適應流媒體內容二級索引和自適應流媒體內容分片組成。自適應流媒體一級索引記錄多個不同碼率的自適應流媒體內容二級索引,自適應流媒體內容二級索引記錄對應碼率的媒體分片文件。
策略二:在終端播放自適應流媒體內容時,終端先通過原始Url(Uniform Resoure Locator,統(tǒng)一資源定位器)獲取自適應流媒體內容的一級索引,終端自適應流媒體內容的一級索引包含著各碼率內容帶寬信息,以及對應自適應流媒體內容二級索引請求路徑。然后終端可以對二級索引發(fā)起請求,二級索引中包含對應碼率各媒體分片文件信息,例如分片請求路徑URL;最后通過索引中分片URL請求相關碼率的視頻內容。
策略三:終端在播放過程中檢測到帶寬狀況和計算資源的負載情況發(fā)生變化時,則從先前獲取的索引中重新選擇合適的碼率內容進行播放。
由于HLS規(guī)范采用一級、二級索引文件的方式做具體媒體分片的索引導航。因此在播放開始的起播過程對一級索引二級索引的下載解析過程是一個很大的性能消耗。特別是碼率越多需要下載和解析的二級索引文件就越多,性能消耗就越大越耗時。
下面進一步說明本發(fā)明的技術方案。
1、首先下載解析自適應流媒體一級所引文件index.m3u8并解析。假設存在五中不同的碼率。解析一級索引文件獲取到碼率從低到高五個不同的二級索引文件請求地址--1.m3u8、2.m3u8、3.m3u8、4.m3u8、5.m3u8,分別對應碼率一、碼率二、碼率三、碼率四、碼率五。
2、然后請求某一種碼率的二級索引文件,如首先下載碼率一1.m3u8,下載請求完成后對1.m3u8文件進行解析,獲取記錄當前碼率的各媒體分片地址信息等,如1.ts、2.ts、3.ts。需要說明的是,在其它實施例中還可以先下載其它碼率。
3、接下來的常規(guī)做法是依次繼續(xù)對2.m3u8、3.m3u8、4.m3u8、5.m3u8下載解析,然后再對選定碼率的第一個起始媒體分片開始下載播放。
而在本發(fā)明中,在下載解析完1.m3u8索引文件后,先跳過對2.m3u8、3.m3u8、4.m3u8、5.m3u8的下載解析,直接對碼率一的第一個媒體分片1.ts開始請求。起播后,當檢測到需要切換碼率時,再根據(jù)需要對2.m3u8、3.m3u8、4.m3u8、5.m3u8進行下載解析,這樣可以實現(xiàn)對二級索引的按需求分階段下載,避免了集中在播放一開始執(zhí)行這個耗能操作,達到提高起播速度的優(yōu)化。例如,1.ts起播后,檢測到需要切換到碼率二,此時再對2.m3u8進行下載解析,在2.m3u8的各媒體分片播放完畢后還可以再次切換到碼率一的2.ts繼續(xù)播放。
此外,在判斷是否需要進行碼率切換時,首先統(tǒng)計每個分片的下載速率,通過最新兩個分片的下載速率同當前的播放碼率比較,然后決定提高碼率還是降低碼率。在本發(fā)明中可以采用以方法:
分片下載速率=下載分片數(shù)據(jù)接收總長度/數(shù)據(jù)接收時間;
當將要下載最新分片時,以最近下載兩個分片的分片下載速率以及當前播放碼率作為衡量指標,是否進行碼率切換。倒數(shù)第二下載分片的下載速率記為”下載速率一”,倒數(shù)第一個下載分片的下載速率記為“下載速率二”。
基本算法用下面兩個表達式:
表達式一:
if((當前播放碼率>下載速率一)&&(當前播放碼率>下載速率二))
{
降低播放碼率,直到降為最低碼率;
}
表達式二:
If((當前播放碼率<下載速率一)&&(當前播放碼率<下載速率二))
{
提高播放碼率,直到提高到最高碼率;
}
下面分別對兩個表達式做簡單闡述:
針對表達式一,當將要下載最新分片時,當?shù)箶?shù)第一和第二個分片的下載速率都小于當前播放碼率時,說明當前處于持續(xù)低帶寬已有一段時間。這時選擇降低碼率,適應低帶寬保證播放流暢度。
針對表達式二,當將要下載最新分片時,當?shù)箶?shù)第一第二分片的下載速率都大于當前播放碼率時,說明當前處于持續(xù)高帶寬已有一段時間。這是選擇升高碼率,高帶寬下的視頻清晰度。
此碼率切換算法通過連續(xù)兩個分片的下載速率為依據(jù),可以保證時時網絡狀況的有效性。避免突發(fā)的網絡影響導致不適當?shù)拇a率切換。同時選擇下載分片速率作為時時帶寬的反映依據(jù)更加靈活。
上述方案實現(xiàn)了多媒體數(shù)據(jù)的快速起播,降低的性能消耗。同時可以根據(jù)連續(xù)兩個媒體分片的下載速率進行自適應切換,保證實時網絡狀況的有效性,避免了突發(fā)的網絡影響導致不適當?shù)拇a率切換。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。本領域普通技術人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關硬件完成,所述程序可以存儲于計算機可讀存儲介質中, 如只讀存儲器、磁盤或光盤等??蛇x地,上述實施例的全部或部分步驟也可以使用一個或多個集成電路來實現(xiàn),相應地,上述實施例中的各模塊/模塊可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。本申請不限制于任何特定形式的硬件和軟件的結合。