本發(fā)明涉及網絡視頻領域,特別涉及一種用于實現(xiàn)網絡視頻直播的方法和客戶端。
背景技術:
近年來,由于HLS(Http Live Streaming)協(xié)議的簡單高效,越來越多的網絡視頻業(yè)務,通過HLS協(xié)議來實現(xiàn)。HLS協(xié)議通過索引文件定義了客戶端行為和客戶端可從服務器端獲取的信息與內容。例如,直播索引文件包含編碼器最新推送的若干個內容分片信息,客戶端根據(jù)這些信息獲取分片內容即可播放,同時在間隔一段時間后刷新直播索引文件,以獲取新的內容分片信息。當直播索引文件包含的內容分片數(shù)目足夠多時,客戶端甚至可以定位到之前時刻進行播放,從業(yè)務形態(tài)看,就自動切換到時移狀態(tài)。
包含直播內容分片信息數(shù)量較多的索引文件可以稱為時移索引文件,以區(qū)別于短小的直播索引文件。因為時移索引文件大小是直播索引文件的幾百倍,一般視頻系統(tǒng)通過請求參數(shù)區(qū)分客戶端請求直播索引文件還是時移索引文件,避免客戶端在直播業(yè)務時使用時移索引文件造成網絡消耗大增。一般時移索引文件內容格式與直播索引文件一致,以支持一小時時移的索引文件為例,分片時長間隔10秒,一小時則包含360個分片,時移索引文件的大小大約是直播索引文件的120倍。按照HLS協(xié)議的要求,在時移播放過程中,客戶端需要間隔10秒刷新一次時移索引文件,以獲取最新的分片信息。但這樣將大大增加網絡流量的消耗。
另一方面,無論采用何種傳輸技術,網絡質量對視頻播放都有致命的影響,網絡卡頓會造成直播中斷,通常會使用戶錯過該時段的節(jié)目內容。用戶需要手工切換到時移狀態(tài)收看剛才錯過的內容。
技術實現(xiàn)要素:
本發(fā)明實施例提供一種用于實現(xiàn)網絡視頻直播的方法和客戶端,可有助于改善用戶在網絡質量不佳的環(huán)境下觀看直播節(jié)目的體驗,同時還能保持較小的網絡開銷。
根據(jù)本發(fā)明的一個方面,提供一種用于實現(xiàn)網絡視頻直播的方法,包括:
在進行視頻業(yè)務直播時,判斷直播播放中斷的持續(xù)時間是否超過預定門限;
若直播播放中斷的持續(xù)時間超過預定門限,則從業(yè)務平臺獲取視頻業(yè)務的時移索引文件;
將獲取的時移索引文件作為本地索引文件進行存儲;
在本地索引文件中查找與直播中斷位置對應的內容分片信息;
從業(yè)務平臺獲取與內容分片信息相對應的視頻分片;
播放視頻分片,以便在直播中斷位置恢復視頻播放。
在一個實施例中,進行視頻業(yè)務直播的步驟包括:
從業(yè)務平臺獲取視頻業(yè)務的直播索引文件,并以預定周期對直播索引文件進行更新;
依次從直播索引文件中獲取內容分片信息;
根據(jù)獲取的內容分片信息從業(yè)務平臺獲取相應的視頻分片,以便實現(xiàn)視頻業(yè)務直播。
在一個實施例中,在直播索引文件更新后,將新的內容分片信息添加到本地索引文件中。
在一個實施例中,在將新的內容分片信息添加到本地索引文件中的步驟后,還包括:
將本地索引文件中時間最早的一條內容分片信息刪除。
在一個實施例中,從本地索引文件中依次獲取后續(xù)內容分片信息;
從業(yè)務平臺獲取與后續(xù)內容分片信息相對應的視頻分片并進行播放,以便在恢復視頻播放后能夠繼續(xù)進行連續(xù)的視頻播放。
根據(jù)本發(fā)明的另一方面,提供一種用于實現(xiàn)網絡視頻直播的客戶 端,包括識別單元、第一獲取單元、存儲單元、查找單元、第二獲取單元和播放單元,其中:
識別單元,用于在進行視頻業(yè)務直播時,判斷直播播放中斷的持續(xù)時間是否超過預定門限;
第一獲取單元,用于根據(jù)識別單元的判斷結果,若直播播放中斷的持續(xù)時間超過預定門限,則從業(yè)務平臺獲取視頻業(yè)務的時移索引文件;
存儲單元,用于將獲取的時移索引文件作為本地索引文件進行存儲;
查找單元,用于在本地索引文件中查找與直播中斷位置對應的內容分片信息;
第二獲取單元,用于從業(yè)務平臺獲取與內容分片信息相對應的視頻分片;
播放單元,用于播放視頻分片,以便在直播中斷位置恢復視頻播放。
在一個實施例中,客戶端還包括更新單元和提取單元,其中:
第一獲取單元還用于從業(yè)務平臺獲取視頻業(yè)務的直播索引文件;
更新單元,用于以預定周期對直播索引文件進行更新;
提取單元,用于依次從直播索引文件中獲取內容分片信息;
第二獲取單元還用于根據(jù)獲取的內容分片信息從業(yè)務平臺獲取相應的視頻分片,以便實現(xiàn)視頻業(yè)務直播。
在一個實施例中,客戶端還包括索引維護單元,其中:
索引維護單元,用于在直播索引文件更新后,將新的內容分片信息添加到本地索引文件中。
在一個實施例中,索引維護單元還用于在將新的內容分片信息添加到本地索引文件中后,將本地索引文件中時間最早的一條內容分片信息刪除。
在一個實施例中,提取單元還用于從本地索引文件中依次獲取后續(xù)內容分片信息;
第二獲取單元還用于從業(yè)務平臺獲取與后續(xù)內容分片信息相對應的視頻分片,并指示播放單元進行播放,以便在恢復視頻播放后能夠繼 續(xù)進行連續(xù)的視頻播放。
本發(fā)明通過在直播播放中斷的持續(xù)時間超過預定門限的情況下,從業(yè)務平臺獲取視頻業(yè)務的時移索引文件,將獲取的時移索引文件作為本地索引文件進行存儲,在本地索引文件中查找與直播中斷位置對應的內容分片信息,從業(yè)務平臺獲取與該內容分片信息相對應的視頻分片,通過播放視頻分片,以便在直播中斷位置恢復視頻播放。由此可有助于改善用戶在網絡質量不佳的環(huán)境下觀看直播節(jié)目的體驗,同時還能保持較小的網絡開銷。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明用于實現(xiàn)網絡視頻直播的方法一個實施例的示意圖。
圖2為本發(fā)明用于實現(xiàn)網絡視頻直播的方法另一實施例的示意圖。
圖3為本發(fā)明用于實現(xiàn)網絡視頻直播的客戶端一個實施例的示意圖。
圖4為本發(fā)明用于實現(xiàn)網絡視頻直播的客戶端另一實施例的示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。以下對至少一個示例性實施例的描述實際上僅僅是說明性的,決不作為對本發(fā)明及其應用或使用的任何限制。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
除非另外具體說明,否則在這些實施例中闡述的部件和步驟的相對布置、數(shù)字表達式和數(shù)值不限制本發(fā)明的范圍。
同時,應當明白,為了便于描述,附圖中所示出的各個部分的尺寸并不是按照實際的比例關系繪制的。
對于相關領域普通技術人員已知的技術、方法和設備可能不作詳細討論,但在適當情況下,所述技術、方法和設備應當被視為授權說明書的一部分。
在這里示出和討論的所有示例中,任何具體值應被解釋為僅僅是示例性的,而不是作為限制。因此,示例性實施例的其它示例可以具有不同的值。
應注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步討論。
圖1為本發(fā)明用于實現(xiàn)網絡視頻直播的方法一個實施例的示意圖。優(yōu)選的,本實施例的方法步驟可由客戶端執(zhí)行。其中:
步驟101,在進行視頻業(yè)務直播時,判斷直播播放中斷的持續(xù)時間是否超過預定門限。
其中,進行視頻業(yè)務直播的步驟可包括:從業(yè)務平臺獲取視頻業(yè)務的直播索引文件,并以預定周期對直播索引文件進行更新,依次從直播索引文件中獲取內容分片信息,根據(jù)獲取的內容分片信息從業(yè)務平臺獲取相應的視頻分片,以便實現(xiàn)視頻業(yè)務直播。
步驟102,若直播播放中斷的持續(xù)時間超過預定門限,則從業(yè)務平臺獲取所述視頻業(yè)務的時移索引文件。
步驟103,將獲取的時移索引文件作為本地索引文件進行存儲。
步驟104,在本地索引文件中查找與直播中斷位置對應的內容分片信息。
步驟105,從業(yè)務平臺獲取與所述內容分片信息相對應的視頻分片。
步驟106,播放所述視頻分片,以便在直播中斷位置恢復視頻播放。
基于本發(fā)明上述實施例提供的用于實現(xiàn)網絡視頻直播的方法,在直 播播放中斷的持續(xù)時間超過預定門限的情況下,從業(yè)務平臺獲取視頻業(yè)務的時移索引文件,將獲取的時移索引文件作為本地索引文件進行存儲,在本地索引文件中查找與直播中斷位置對應的內容分片信息,從業(yè)務平臺獲取與該內容分片信息相對應的視頻分片,通過播放視頻分片,以便在直播中斷位置恢復視頻播放。由此可有助于改善用戶在網絡質量不佳的環(huán)境下觀看直播節(jié)目的體驗,同時還能保持較小的網絡開銷。
圖2為本發(fā)明用于實現(xiàn)網絡視頻直播的方法另一實施例的示意圖。優(yōu)選的,本實施例的方法步驟可由客戶端執(zhí)行。其中:
步驟201,在進行視頻業(yè)務直播時,判斷直播播放中斷的持續(xù)時間是否超過預定門限。其中利用直播索引文件進行直播,并以預定周期對直播索引文件進行更新。
步驟202,若直播播放中斷的持續(xù)時間超過預定門限,則從業(yè)務平臺獲取所述視頻業(yè)務的時移索引文件。
步驟203,將獲取的時移索引文件作為本地索引文件進行存儲。
步驟204,在本地索引文件中查找與直播中斷位置對應的內容分片信息。
步驟205,從業(yè)務平臺獲取與所述內容分片信息相對應的視頻分片。
步驟206,播放所述視頻分片,以便在直播中斷位置恢復視頻播放。
步驟207,在直播索引文件更新后,將新的內容分片信息添加到本地索引文件中。
優(yōu)選的,在將新的內容分片信息添加到本地索引文件后,將本地索引文件中時間最早的一條內容分片信息刪除。由于時間最早的一條內容分片信息已使用過,因此將該時間最早的一條內容分片信息刪除,可有效節(jié)省存儲資源。
步驟208,從本地索引文件中依次獲取后續(xù)內容分片信息,從業(yè)務平臺獲取與后續(xù)內容分片信息相對應的視頻分片并進行播放,以便在恢復視頻播放后能夠繼續(xù)進行連續(xù)的視頻播放。
由此可知,盡管因網絡環(huán)境不佳而出現(xiàn)直播中斷的情況,但通過利用時移索引文件,可使用戶觀看到連續(xù)的視頻播放。
圖3為本發(fā)明用于實現(xiàn)網絡視頻直播的客戶端一個實施例的示意圖。如圖3所示,客戶端可包括識別單元301、第一獲取單元302、存儲單元303、查找單元304、第二獲取單元305和播放單元306。其中:
識別單元301用于在進行視頻業(yè)務直播時,判斷直播播放中斷的持續(xù)時間是否超過預定門限。
第一獲取單元302用于根據(jù)識別單元301的判斷結果,若直播播放中斷的持續(xù)時間超過預定門限,則從業(yè)務平臺獲取該視頻業(yè)務的時移索引文件。
存儲單元303用于將獲取的時移索引文件作為本地索引文件進行存儲。
查找單元304用于在本地索引文件中查找與直播中斷位置對應的內容分片信息。
第二獲取單元305用于從業(yè)務平臺獲取與所述內容分片信息相對應的視頻分片。
播放單元306用于播放該視頻分片,以便在直播中斷位置恢復視頻播放。
基于本發(fā)明上述實施例提供的用于實現(xiàn)網絡視頻直播的客戶端,在直播播放中斷的持續(xù)時間超過預定門限的情況下,從業(yè)務平臺獲取視頻業(yè)務的時移索引文件,將獲取的時移索引文件作為本地索引文件進行存儲,在本地索引文件中查找與直播中斷位置對應的內容分片信息,從業(yè)務平臺獲取與該內容分片信息相對應的視頻分片,通過播放視頻分片,以便在直播中斷位置恢復視頻播放。由此可有助于改善用戶在網絡質量不佳的環(huán)境下觀看直播節(jié)目的體驗,同時還能保持較小的網絡開銷。
圖4為本發(fā)明用于實現(xiàn)網絡視頻直播的客戶端另一實施例的示意圖。與圖3所示實施例相比,在圖4所示實施例中,還包括更新單元401和提取單元402。其中:
第一獲取單元302還用于從業(yè)務平臺獲取視頻業(yè)務的直播索引文件,更新單元401用于以預定周期對直播索引文件進行更新,提取單元402用于依次從直播索引文件中獲取內容分片信息,第二獲取單元305 還用于根據(jù)獲取的內容分片信息從業(yè)務平臺獲取相應的視頻分片,以便實現(xiàn)視頻業(yè)務直播。
優(yōu)選的,客戶端還包括索引維護單元403。其中:
索引維護單元403用于在直播索引文件更新后,將新的內容分片信息添加到本地索引文件中。
在一個實施例中,索引維護單元403還用于在將新的內容分片信息添加到本地索引文件中后,將本地索引文件中時間最早的一條內容分片信息刪除,以便節(jié)省存儲資源。
優(yōu)選的,提取單元402還用于從本地索引文件中依次獲取后續(xù)內容分片信息,第二獲取單元305還用于從業(yè)務平臺獲取與后續(xù)內容分片信息相對應的視頻分片,并指示播放單元306進行播放,以便在恢復視頻播放后能夠繼續(xù)進行連續(xù)的視頻播放。
下面通過一個具體示例對本發(fā)明進行說明。
客戶端與網絡視頻系統(tǒng)業(yè)務平臺約定直播索引文件和時移索引文件的請求格式,如:
直播URL:http://ip:port/path/contentid.m3u8?servicetype=1
時移URL:http://ip:port/path/contentid.m3u8?servicetype=2
其中,相同頻道的直播和時移ContentID也相同。
通過直播URL最終獲得的直播索引文件中的內容分片信息如下,其中分片時長為10秒。
#EXTM3U
#EXT-X-VERSION:1
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:318540
#EXT-X-PROGRAM-DATE-TIME:2014-03-07T02:38:09Z
#EXTINF:10,
1394159889-01-318540.hls.ts
#EXT-X-PROGRAM-DATE-TIME:2014-03-07T02:38:19Z
#EXTINF:10,
1394159899-01-318541.hls.ts
#EXT-X-PROGRAM-DATE-TIME:2014-03-07T02:38:29Z
#EXTINF:10,
1394159909-01-318542.hls.ts
通過依次獲取各分片信息相對應的視頻分片,從而可為用戶提供視頻直播。在直播過程中由于網絡環(huán)境不佳,第318541號視頻分片未能正常獲取,所以對于用戶來說,直播過程中的02:38:19至02:38:28這段時間所對應的視頻將無法看到。為了提高用戶體驗,本發(fā)明通過獲取時移索引文件來解決這一問題。
通過時移URL最終獲得的時移索引文件中的內容分片信息如下,其中分片時長為10秒,一小時包含360個分片。
#EXTM3U
#EXT-X-VERSION:1
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:318186
#EXT-X-PROGRAM-DATE-TIME:2014-03-07T01:39:09Z
#EXTINF:10,
1394123989-01-318186.hls.ts
#EXT-X-PROGRAM-DATE-TIME:2014-03-07T01:39:19Z
#EXTINF:10,
1394124099-01-318187.hls.ts
……(此處省略353個分片信息)
#EXT-X-PROGRAM-DATE-TIME:2014-03-07T02:38:19Z
#EXTINF:10,
1394159899-01-318541.hls.ts
#EXT-X-PROGRAM-DATE-TIME:2014-03-07T02:38:29Z
#EXTINF:10,
1394159909-01-318542.hls.ts
#EXT-X-PROGRAM-DATE-TIME:2014-03-07T02:38:39Z
#EXTINF:10,
1394159909-01-318543.hls.ts
#EXT-X-PROGRAM-DATE-TIME:2014-03-07T02:38:49Z
#EXTINF:10,
1394159909-01-318544.hls.ts
#EXT-X-PROGRAM-DATE-TIME:2014-03-07T02:38:59Z
#EXTINF:10,
1394159909-01-318545.hls.ts
客戶端獲取到上述時移索引信息后保存在本地,并在本地存儲的索引信息中查找與直播中斷位置對應的內容分片信息,從業(yè)務平臺獲取與所述內容分片信息相對應的視頻分片,即獲得第318541號視頻分片,通過播放該視頻分片,以便在直播中斷位置恢復視頻播放。
此外,在下一預定時間點刷新直播索引文件,獲取新的內容分片信息,如:
#EXTM3U
#EXT-X-VERSION:1
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:318544
#EXT-X-PROGRAM-DATE-TIME:2014-03-07T02:38:49Z
#EXTINF:10,
1394159909-01-318544.hls.ts
#EXT-X-PROGRAM-DATE-TIME:2014-03-07T02:38:59Z
#EXTINF:10,
1394159909-01-318545.hls.ts
#EXT-X-PROGRAM-DATE-TIME:2014-03-07T02:39:09Z
#EXTINF:10,
1394159919-01-318546.hls.ts
客戶端刪除本地緩存的時移索引文件中時間最早的一條分片信息,并追加最新的一條,即刪除第318186號分片信息,添加最新的第318546 號分片信息,如:
#EXTM3U
#EXT-X-VERSION:1
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:318187
#EXT-X-PROGRAM-DATE-TIME:2014-03-07T01:39:19Z
#EXTINF:10,
1394124099-01-318187.hls.ts
#EXT-X-PROGRAM-DATE-TIME:2014-03-07T01:39:29Z
#EXTINF:10,
1394124109-01-3181888.hls.ts
……(此處省略357個分片信息)
#EXT-X-PROGRAM-DATE-TIME:2014-03-07T02:39:09Z
#EXTINF:10,
1394159919-01-318546.hls.ts
客戶端通過讀取本地索引緩存獲得下一個需要播放的分片信息,下載并播放。從而可為用戶提供連續(xù)的視頻播放。
通過實施本發(fā)明,通過在網絡質量不佳時自動從直播索引文件切換為時移索引文件,從而增強了用戶在網絡環(huán)境不佳時觀看直播節(jié)目的體驗,同時還能保持較小的網絡開銷。
本領域普通技術人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
本發(fā)明的描述是為了示例和描述起見而給出的,而并不是無遺漏的或者將本發(fā)明限于所公開的形式。很多修改和變化對于本領域的普通技術人員而言是顯然的。選擇和描述實施例是為了更好說明本發(fā)明的原理和實際應用,并且使本領域的普通技術人員能夠理解本發(fā)明從而設計適于特定用途的帶有各種修改的各種實施例。