一種獲取切片文件和生成子m3u8文件的方法、節點及服務器的制造方法
【專利說明】一種獲取切片文件和生成子m3u8文件的方法、節點及服務
□ □
技術領域
[0001]本發明涉及通信技術領域,尤其涉及一種獲取切片文件和生成子m3u8文件的方法、節點及服務器。
【背景技術】
[0002]流媒體網絡傳輸(HLS,HTTP Live Streaming)協議是基于超文本傳輸協議的流媒體傳輸協議,HLS協議的特點是將視頻文件進行切片存儲,并生成媒體數據的索引m3u8文件以及媒體數據的切片文件。其中m3u8文件用于將視頻文件以播放列表的形式組織在一起以供多媒體播放器下載播放。m3u8文件包括主m3u8文件以及子m3u8文件,子m3u8文件用于描述切片文件的文件名稱等文件信息,而主m3u8文件則用于描述子m3u8文件的統一資源定位符(URL,Uniform Resource Locator)。切片文件可保存在對等(P2P,Peer toPeer)網絡節點或者內容分發網絡(Q)N,Content Delivery Network)中,而m3u8文件則存儲在CDN服務器中。P2P網絡是一種新的通信模式,每個節點之間可以直接通信、共享資源以及協同工作。CDN第一種新型網絡內容服務體系,其基于內容訪問與應用的效率要求等為各個節點提供內容的分發。
[0003]現有技術中客戶端先向⑶N服務器獲取視頻文件的主m3u8文件,然后根據主m3u8文件向CDN服務器獲取到指定的子m3u8文件后,得到視頻文件的切片文件的文件名稱,再向P2P網絡的索引服務器獲取包括該切片文件的P2P節點的列表。若該切片文件的節點的列表不包括任何P2P節點的信息,則客戶端向CDN服務器下載切片文件,若該切片文件的節點的列表包括了至少一個P2P節點的信息,說明這些P2P節點包含該切片文件,則客戶端向P2P節點下載該切片文件。
[0004]然而,由于一個視頻文件通常被切分為多個切片文件,因此當客戶端需要下載該視頻文件時,需要依次向索引服務器獲取包括各個切片文件的P2P節點的列表,其向索引服務器發出的請求過于頻繁,從而延長了請求下載視頻文件的時間,降低了下載視頻文件速度。
【發明內容】
[0005]本發明提供一種獲取切片文件的方法、節點及服務器,可節省請求下載視頻文件的時間,提高了下載視頻文件速度。
[0006]本發明第一方面提供一種獲取切片文件的方法,包括:
[0007]接收視頻文件的點播請求;
[0008]根據所述點播請求向⑶N服務器獲取所述視頻文件的主m3u8文件,所述主m3u8文件包括不同碼率的子m3u8文件的文件信息,每個子m3u8文件包括所述視頻文件的切片文件的標識信息;
[0009]根據選取的碼率確定對應的子m3u8文件;
[0010]根據確定的子m3u8文件的文件信息向所述CDN服務器獲取所述確定的子m3u8文件;
[0011]若所述確定的子m3u8文件還包括存儲所述切片文件的客戶端節點的標識信息,則根據所述切片文件的標識信息向所述客戶端節點獲取所述切片文件。
[0012]結合本發明第一方面的實現方式,在本發明第一方面的第一種可能的實現方式中,所述若所述確定的子m3u8文件還包括存儲所述切片文件的客戶端節點的標識信息,貝Ij根據所述切片文件的標識信息向所述客戶端節點獲取所述切片文件,具體包括:
[0013]若所述確定的子m3u8文件還包括存儲所述切片文件的至少一個客戶端節點的標識信息,則根據所述切片文件的標識信息向各個客戶端節點分別獲取所述切片文件;
[0014]或者,
[0015]若所述確定的子m3u8文件還包括存儲所述切片文件的至少一個客戶端節點的標識信息,其中每個客戶端節點還存儲所述切片文件的子切片文件,則根據所述切片文件的標識信息向各個客戶端節點獲取所述切片文件的子切片文件。
[0016]結合本發明第一方面的實現方式,在本發明第一方面的第二種可能的實現方式中,所述方法還包括:
[0017]若所述確定的子m3u8文件沒有包括所述存儲所述切片文件的客戶端節點的標識信息,則根據所述切片文件的標識信息向所述CDN服務器獲取所述切片文件。
[0018]本發明第二方面提供一種生成子m3u8文件的方法,包括:
[0019]⑶N服務器根據客戶端發送的請求,向所述客戶端發送視頻文件的主m3u8文件,所述主m3u8文件包括不同碼率的子m3u8文件的文件信息,每個子m3u8文件包括所述視頻文件的切片文件的標識信息;
[0020]所述CDN服務器接收所述客戶端根據選取的碼率對應的所述子m3u8文件的文件信息發送的請求;
[0021]若所述CDN服務器查找到存儲所述視頻文件的切片文件的客戶端節點,則所述CDN服務器根據所述客戶端節點的標識信息以及所述切片文件的標識信息生成所述子m3u8文件;
[0022]所述⑶N服務器向所述客戶端發送生成的子m3u8文件,以使所述客戶端根據所述切片文件的標識信息向所述客戶端節點獲取所述切片文件。
[0023]結合本發明第二方面的實現方式,在本發明第二方面的第一種可能的實現方式中,所述方法還包括:
[0024]若所述CDN服務器沒有查找到存儲所述視頻文件的切片文件的客戶端節點,則所述CDN服務器根據所述切片文件的標識信息生成所述子m3u8文件;
[0025]所述CDN服務器向所述客戶端發送生成的子m3u8文件,以使所述客戶端根據所述切片文件的標識信息向所述CDN服務器獲取所述切片文件。
[0026]本發明第三方面提供一種節點,包括:
[0027]第一獲取模塊,用于接收視頻文件的點播請求,根據所述請求向CDN服務器獲取所述視頻文件的主m3u8文件,所述主m3u8文件包括不同碼率的子m3u8文件的文件信息,每個子m3u8文件包括所述視頻文件的切片文件的標識信息;
[0028]確定模塊,用于根據選取的碼率確定對應的子m3u8文件;
[0029]第二獲取模塊,用于根據所述確定模塊確定的子m3u8文件的文件信息向所述CDN服務器獲取所述確定的子m3u8文件;
[0030]第三獲取模塊,用于若所述確定模塊確定的子m3u8文件還包括存儲所述切片文件的客戶端節點的標識信息,則所述客戶端節點根據所述切片文件的標識信息向所述客戶端節點獲取所述切片文件。
[0031]結合本發明第三方面的實現方式,在本發明第三方面的第一種可能的實現方式中,所述第三獲取模塊具體用于:
[0032]若所述確定模塊確定的子m3u8文件還包括存儲所述切片文件的至少一個客戶端節點的標識信息,則所述第三獲取模塊根據所述切片文件的標識信息向各個客戶端節點分別獲取所述切片文件;
[0033]或者,
[0034]若所述確定模塊確定的子m3u8文件還包括存儲所述切片文件的至少一個客戶端節點的標識信息,其中每個客戶端節點還存儲所述切片文件的子切片文件,則所述第三獲取模塊根據所述切片文件的標識信息向各個客戶端節點獲取所述切片文件的子切片文件。
[0035]結合本發明第三方面的實現方式,在本發明第三方面的第二種可能的實現方式中,所述第三獲取模塊還用于若所述確定模塊確定的子m3u8文件沒有包括所述存儲所述切片文件的客戶端節點的標識信息,則所述第三獲取模塊根據所述切片文件的標識信息向所述CDN服務器獲取所述切片文件。
[0036]本發明第四方面提供一種服務器,包括:
[0037]第一發送模塊,用于根據客戶端發送的請求,向所述客戶端發送視頻文件的主m3u8文件,所述主m3u8文件包括不同碼率的子m3u8文件的文件信息,每個子m3u8文件包括所述視頻文件的切片文件的標識信息;
[0038]接收模塊,用于接收所述客戶端根據選取的碼率對應的所述子m3u8文件的文件信息發送的請求;
[0039]生成模塊,用于若根據所述接收模塊接收的請求查找到存儲所述視頻文件的切片文件的客戶端節點,則根據所述客戶端節點的標識信息以及所述切片文件的標識信息生成所述子m3u8文件;
[0040]第二發送模塊,用于向所述客戶端發送所述生成模塊生成的子m3u8文件,以使所述客戶端根據所述切片文件的標識信息向所述客戶端節點獲取所述切片文件。
[0041]結合本發明第四方面的實現方式,在本發明第四方面的第一種可能的實現方式中,所述生成模塊,還用于若沒有查找到存儲所述視頻文件的切片文件的客戶端節點,則根據所述切片文件的標識信息生成所述子m3u8文件;
[0042]所述第二發送模塊,還用于向所述客戶端發送所述生成模塊生成的子m3u8文件,以使所述客戶端根據所述切片文件的標識信息向所述服務器獲取所述切片文件。
[0043]采用本發明,接收視頻文件的點播請求,根據點播請求向CDN服務器獲取視頻文件的主m3u8文件,主m3u8文件包括不同碼率的子m3u8文件的文件信息,每個子m3u8文件包括視頻文件的切片文件的標識信息;根據選取的碼率確定對應的子m3u8文件,根據確定的子m3u8文件的文件信息向CDN服務器獲取確定的子m3u8文件,若確定的子m3u8文件還包括存儲切片文件的客戶端節點的標識信息,則根據切片文件的標識信息向客戶端節點獲取切片文件,可在客戶端獲取到子m3u8文件時即可得知存儲切片文件的客戶端節點,再直接向存儲切片文件的客戶端節點獲取切片文件,從而減少客戶端向索引服務器請求獲取存儲切片文件的客戶端節點的標識信息的流程,節省請求下載視頻文件的時間,提高了下載視頻文件速度。
【附圖