本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種視頻下載方法及裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)時(shí)代的到來,網(wǎng)絡(luò)視頻下載技術(shù)也日益更新。人們觀看網(wǎng)絡(luò)視頻時(shí),為了避免在觀看視頻過程中,出現(xiàn)卡頓,人們習(xí)慣預(yù)先將目標(biāo)視頻下載至本地,然后通過本地視頻播放器進(jìn)行播放。
發(fā)明人在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)相關(guān)技術(shù)存在以下問題:當(dāng)終端請(qǐng)求下載網(wǎng)絡(luò)視頻時(shí),由于現(xiàn)有網(wǎng)絡(luò)視頻下載鏈接少,并且當(dāng)下載用戶日益增多時(shí),該網(wǎng)絡(luò)視頻的下載速度變慢,因此,以此方式下載網(wǎng)絡(luò)視頻的效率低下。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種視頻下載方法及裝置,其解決了現(xiàn)有視頻下載速度慢的技術(shù)問題。
為了解決上述技術(shù)問題,本發(fā)明提供以下技術(shù)方案:
在第一方面,本發(fā)明實(shí)施例提供一種視頻下載方法,所述方法包括:獲取播放列表文件;根據(jù)所述播放列表文件,選擇視頻的第一視頻片段;從所述播放列表文件提取出所述第一視頻片段的主下載地址;根據(jù)所述主下載地址,下載所述第一視頻片段。
可選地,所述方法還包括:根據(jù)所述播放列表文件,選擇所述視頻的第二視頻片段;從所述播放列表文件提取出所述第二視頻片段對(duì)應(yīng)的標(biāo)識(shí);根據(jù)所述標(biāo)識(shí),獲取已下載所述第二視頻片段的下載節(jié)點(diǎn);連接所述下載節(jié)點(diǎn)并且下載所述第二視頻片段。
可選地,所述方法還包括:根據(jù)所述播放列表文件,選擇所述視頻的第二視頻片段,所述第二視頻片段包括多個(gè)視頻切片;從所述播放列表文件提取出與所述視頻切片對(duì)應(yīng)的校驗(yàn)碼;根據(jù)所述校驗(yàn)碼,獲取與已下載所述視頻切片的下載節(jié)點(diǎn);連接所述下載節(jié)點(diǎn)并且下載所述視頻切片。
可選地,所述方法包括:在檢測(cè)到下載所述第一視頻片段的下載速率低于預(yù)設(shè)閾值時(shí),從所述播放列表文件提取所述第一視頻片段的備用下載地址;根據(jù)所述備用下載地址下載所述第一視頻片段,并且中止根據(jù)所述主下載地址的下載。
可選地,所述方法還包括:建立新文件夾;將下載到的各個(gè)視頻片段存儲(chǔ)于所述新文件夾;按照視頻播放時(shí)序,命名所述第一視頻片段和/或所述第二視頻片段。
在第二方面,本發(fā)明實(shí)施例提供一種視頻下載裝置,所述裝置包括:第一獲取模塊,用于獲取播放列表文件;第一選擇模塊,用于根據(jù)所述播放列表文件,選擇視頻的第一視頻片段;第一提取模塊,用于從所述播放列表文件提取出所述第一視頻片段的主下載地址;第一下載模塊,用于根據(jù)所述主下載地址,下載所述第一視頻片段。
可選地,所述裝置還包括:第二選擇模塊,用于根據(jù)所述播放列表文件,選擇所述視頻的第二視頻片段;第二提取模塊,用于從所述播放列表文件提取出所述第二視頻片段對(duì)應(yīng)的標(biāo)識(shí);第二獲取模塊,用于,根據(jù)所述標(biāo)識(shí),獲取已下載所述第二視頻片段的下載節(jié)點(diǎn);第一連接下載模塊,用于連接所述下載節(jié)點(diǎn)并且下載所述第二視頻片段。
可選地,所述裝置還包括:第三選擇模塊,用于根據(jù)所述播放列表文件,選擇所述視頻的第二視頻片段,所述第二視頻片段包括多個(gè)視頻切片;第三提取模塊,用于從所述播放列表文件提取出與所述視頻切片對(duì)應(yīng)的校驗(yàn)碼;第三獲取模塊,用于根據(jù)所述校驗(yàn)碼,獲取與已下載所述視頻切片的下載節(jié)點(diǎn);第二連接下載模塊,用于連接所述下載節(jié)點(diǎn)并且下載所述視頻切片。
可選地,所述裝置還包括:檢測(cè)提取模塊,用于在檢測(cè)到下載所述第一視頻片段的下載速率低于預(yù)設(shè)閾值時(shí),從所述播放列表文件提取所述第一視頻片段的備用下載地址;下載中止模塊,用于根據(jù)所述備用下載地址下載所述第一視頻片段,并且中止根據(jù)所述主下載地址的下載。
可選地,所述裝置還包括:建立模塊,用于建立新文件夾;存儲(chǔ)模塊,用于將下載到的各個(gè)視頻片段存儲(chǔ)于所述新文件夾;命名模塊,用于按照視頻播放時(shí)序,命名所述第一視頻片段和/或所述第二視頻片段。
在本發(fā)明各個(gè)實(shí)施例中,視頻分割成多個(gè)第一視頻片段,通過提取每個(gè)第一視頻片段的主下載地址,根據(jù)每個(gè)主下載地址同對(duì)應(yīng)的服務(wù)器建立下載連接,下載各個(gè)第一視頻片段,從而提高下載視頻的速度和下載效率。
附圖說明
一個(gè)或多個(gè)實(shí)施例通過與之對(duì)應(yīng)的附圖中的圖片進(jìn)行示例性說明,這些示例性說明并不構(gòu)成對(duì)實(shí)施例的限定,附圖中具有相同參考數(shù)字標(biāo)號(hào)的元件表示為類似的元件,除非有特別申明,附圖中的圖不構(gòu)成比例限制。
圖1是本發(fā)明實(shí)施例提供一種視頻下載系統(tǒng)的結(jié)構(gòu)示意圖;
圖2是本發(fā)明實(shí)施例提供一種視頻下載方法的流程示意圖;
圖3是本發(fā)明實(shí)施例提供另一種視頻下載方法的流程示意圖;
圖4是本發(fā)明實(shí)施例提供另一種視頻下載方法的流程示意圖;
圖5是本發(fā)明實(shí)施例提供另一種視頻下載方法的流程示意圖;
圖6是本發(fā)明實(shí)施例提供另一種視頻下載方法的流程示意圖;
圖7是本發(fā)明實(shí)施例提供一種視頻下載裝置的結(jié)構(gòu)示意圖;
圖8是本發(fā)明實(shí)施例提供另一種視頻下載裝置的結(jié)構(gòu)示意圖;
圖9是本發(fā)明實(shí)施例提供一種電子設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明實(shí)施例的視頻下載方法,可以在任何合適類型,具有用戶交互裝置和運(yùn)算能力的處理器的用戶終端中執(zhí)行,例如臺(tái)式計(jì)算機(jī)、智能手機(jī)、平板電腦以及其他用戶終端中。
本發(fā)明實(shí)施例的視頻下載裝置可以作為其中一個(gè)軟件或者硬件功能單元,獨(dú)立設(shè)置在上述用戶終端中,也可以作為整合在處理器中的其中一個(gè)功能模塊,執(zhí)行本發(fā)明實(shí)施例的視頻下載方法。
圖1是本發(fā)明實(shí)施例提供一種視頻下載系統(tǒng)的結(jié)構(gòu)示意圖。如圖1所示,下載視頻時(shí),終端101根據(jù)播放列表文件向主服務(wù)器102或從服務(wù)器103發(fā)起多鏈接下載。其中,該視頻可以由若干個(gè)多視頻片段組合而成,該播放列表文件為支持多視頻片段下載的文件。例如,該播放列表文件為M3U8格式文件,M3U8格式文件為UTF-8編碼格式的M3U文件。
終端101解析播放列表文件,提取出各個(gè)視頻片段的下載地址,然后根據(jù)各個(gè)視頻片段的下載地址向主服務(wù)器102或從服務(wù)器103發(fā)起多鏈接下載,終端101將下載好的各個(gè)視頻片段存儲(chǔ)于本地,由本地播放器按照視頻播放時(shí)序播放各個(gè)視頻片段。
為了減少下載帶寬,進(jìn)一步提高下載速率,該視頻下載系統(tǒng)10支持點(diǎn)對(duì)點(diǎn)下載視頻的方式。該視頻下載系統(tǒng)10選擇特定視頻片段進(jìn)行點(diǎn)對(duì)點(diǎn)下載。具體的,終端101通過訪問索引服務(wù)器104而獲取到下載特定視頻片段的下載名單,例如,該下載名單包括終端105的網(wǎng)絡(luò)地址,其中,終端105已經(jīng)下載好該特定視頻片段。終端101根據(jù)終端105的網(wǎng)絡(luò)地址和終端105建立通訊,并且從終端105下載該特定視頻片段。
可選地,該視頻下載系統(tǒng)還可以將該特定視頻片段分割成多個(gè)視頻切片,每個(gè)視頻切片對(duì)應(yīng)一個(gè)下載地址,終端101根據(jù)每個(gè)下載地址下載每個(gè)視頻切片,并且將下載好的各個(gè)視頻切片組合成該特定視頻片段。
圖2是本發(fā)明實(shí)施例提供一種視頻下載方法的流程示意圖。如圖2所示,該視頻下載方法包括:
步驟0202、獲取播放列表文件;
終端在檢測(cè)到存在下載視頻的操作事件時(shí),終端向各個(gè)服務(wù)器發(fā)送http請(qǐng)求(HyperText Transfer Protocol,超文本傳輸協(xié)議),請(qǐng)求各個(gè)服務(wù)器返回包含該視頻下載地址的播放列表文件。
其中,可選地,該播放列表文件包括主播放列表文件和從播放列表文件,主播放列表文件至少包括用于下載視頻片段的主下載地址,從播放列表文件至少包括用于下載視頻片段的備用下載地址,終端可以根據(jù)設(shè)計(jì)邏輯,動(dòng)態(tài)選擇對(duì)應(yīng)的播放列表文件進(jìn)行視頻片段下載。本技術(shù)領(lǐng)域人員應(yīng)當(dāng)明白:主播放列表文件和從播放列表文件只是用于區(qū)分終端下載視頻片段所根據(jù)的列表文件,不用于限制終端的下載次序和主次。
在本實(shí)施例中,可選地,終端包括視頻播放器以及本地下載服務(wù)組件,該視頻播放器播放下載視頻,并且視頻播放器的下載邏輯由本地下載服務(wù)組件進(jìn)行控制,即:用戶使用視頻播放器下載視頻時(shí),視頻播放器向本地下載服務(wù)組件請(qǐng)求下載該視頻,本地下載服務(wù)組件根據(jù)該請(qǐng)求,開啟多線程向各個(gè)服務(wù)器發(fā)起多鏈接下載,并且接收和保存各個(gè)服務(wù)器發(fā)送的下載數(shù)據(jù)。進(jìn)一步的,本地下載服務(wù)組件還可以接收視頻播放器發(fā)送對(duì)下載任務(wù)進(jìn)行控制命令,例如,添加下載、暫停下載、重啟下載、刪除下載以及等等。在本實(shí)施例中,通過將下載邏輯脫離視頻播放器,并且由本地下載服務(wù)組件執(zhí)行,從而減輕視頻播放器的代碼邏輯編寫的難度,同時(shí)當(dāng)下載邏輯出現(xiàn)錯(cuò)誤時(shí)便于檢查錯(cuò)誤。更進(jìn)一步的,本地下載服務(wù)組件能夠同時(shí)建立多線程,向各個(gè)服務(wù)器發(fā)起多鏈接下載,從而提高視頻下載速度。
在本實(shí)施例中,終端可以根據(jù)主播放列表文件向主服務(wù)器發(fā)起多鏈接下載,其中,主播放列表文件包含各個(gè)視頻片段的主下載地址,并且主播放列表文件可以由終端進(jìn)行解析。
步驟0204、根據(jù)播放列表文件,選擇視頻的第一視頻片段;
本實(shí)施例的視頻可以分割成多個(gè)視頻片段,即該視頻可以由多個(gè)視頻片段按照視頻播放時(shí)序組合而成。
在本實(shí)施例中,雖然用“第一”來描述視頻片段,但是“第一視頻片段”不應(yīng)當(dāng)受“第一”的限制,“第一”只是用于將“第一視頻片段”和另一視頻片段進(jìn)行區(qū)分。例如,視頻可以包括多個(gè)第一視頻片段,并且每個(gè)第一視頻片段所對(duì)應(yīng)的下載地址是不同的,終端根據(jù)下載地址不斷地下載各個(gè)視頻片段,并將下載好的各個(gè)第一視頻片段組合成視頻。
下載視頻時(shí),當(dāng)終端根據(jù)主播放列表文件下載視頻時(shí),終端從主播放列表文件選擇待下載的第一視頻片段。例如,視頻由100個(gè)視頻片段ts按照視頻播放時(shí)序組成,并且主播放列表文件包含該100個(gè)視頻片段ts的標(biāo)識(shí)和下載地址。終端根據(jù)下載邏輯,從主播放列表文件選擇出80個(gè)待下載的第一視頻片段。當(dāng)然,若下載邏輯指示終端需要選擇該100個(gè)視頻片段進(jìn)行下載時(shí),終端根據(jù)該指示選擇100個(gè)視頻片段進(jìn)行下載。此處,設(shè)計(jì)者根據(jù)業(yè)務(wù)需求,自行選擇下載第一視頻片段的數(shù)量和順序。
步驟0206、從播放列表文件提取出第一視頻片段的主下載地址;
下載視頻時(shí),當(dāng)終端根據(jù)主播放列表文件下載視頻時(shí),終端選擇好第一視頻片段之后,終端從主播放列表文件提取第一視頻片段的主下載地址。
步驟0208、根據(jù)主下載地址,下載第一視頻片段。
終端根據(jù)主下載地址,下載第一視頻片段。
在本發(fā)明實(shí)施例中,視頻分割成多個(gè)第一視頻片段,通過提取每個(gè)第一視頻片段的主下載地址,根據(jù)每個(gè)主下載地址同對(duì)應(yīng)的服務(wù)器建立下載連接,下載各個(gè)第一視頻片段,從而提高下載視頻的速度和下載速率。
本發(fā)明另一實(shí)施例提供一種視頻下載方法,該方法包括上述實(shí)施例的步驟0202-步驟0208。
可選地,在一些實(shí)施例中,當(dāng)播放列表文件是M3U8格式文件,該M3U8格式文件可以采用多碼率適配流,或者單碼率適配流。
例如,當(dāng)M3U8格式文件為多碼率適配流時(shí),其內(nèi)容形式是:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000
http://121.18.139.36:80/188/10/96/letv-uts/14/ver_00_22=1
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000
http://121.18.139.36:80/188/10/96/letv-uts/14/ver_00_22=2
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000
http://121.18.139.36:80/188/10/96/letv-uts/14/ver_00_22=3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=65000,CODECS="mp4a.40.5"
http://121.18.139.36:80/188/10/96/letv-uts/14/ver_00_22=4
例如,當(dāng)M3U8格式文件為單碼率適配流時(shí),其內(nèi)容形式是:
#EXTM3U
#EXT-X-TARGETDURATION:5220
#EXTINF:5220,
http://media.example.com/1.ts
#EXT-X-ENDLIST
在本實(shí)施例中,終端根據(jù)下載地址下載各個(gè)第一視頻片段的過程中,首先根據(jù)下載地址:
http://121.18.139.36:80/188/10/96/letv-uts/14/ver_00_22=1
下載第一個(gè)第一視頻片段。
然后,在根據(jù)另一下載地址:
http://121.18.139.36:80/188/10/96/letv-uts/14/ver_00_22=2
下載第二個(gè)第一視頻片段,依次類推,從而將視頻的各個(gè)第一視頻片段下載完畢。
本發(fā)明實(shí)施例提供另一種視頻下載方法包括上述實(shí)施例中步驟0202-步驟0208,同時(shí)為了提高下載速度,節(jié)約網(wǎng)絡(luò)帶寬,終端還可以采用點(diǎn)對(duì)點(diǎn)方式下載視頻中的一部分視頻片段,具體的,如圖3所示,該視頻下載方法還包括:
步驟0210、根據(jù)播放列表文件,選擇視頻的第二視頻片段;
步驟0212、從播放列表文件提取出第二視頻片段對(duì)應(yīng)的標(biāo)識(shí);
步驟0214、根據(jù)標(biāo)識(shí),獲取已下載第二視頻片段的下載節(jié)點(diǎn);
步驟0216、連接下載節(jié)點(diǎn)并且下載第二視頻片段。
在本實(shí)施例中,當(dāng)終端從播放列表文件完成對(duì)待下載的第一視頻片段進(jìn)行選擇后,終端還可以根據(jù)播放列表文件選擇視頻的第二視頻片段進(jìn)行下載,例如可以選擇主播放列表文件或從播放列表文件選擇視頻的第二視頻片段進(jìn)行下載。終端可以選擇多個(gè)第二視頻片段進(jìn)行下載。例如,在一個(gè)總時(shí)長(zhǎng)90分鐘的M3U8視頻中,設(shè)計(jì)者按照視頻播放時(shí)序?qū)⒃揗3U8視頻分割成10個(gè)視頻片段,即該視頻由10段視頻播放時(shí)序的視頻片段組成,每個(gè)視頻片段具有9分鐘的播放時(shí)長(zhǎng)。終端將第一視頻播放時(shí)序至第七視頻播放時(shí)序的視頻片段選擇為第一視頻片段,將第八視頻播放時(shí)序至第十視頻播放時(shí)序的視頻片段選擇為第二視頻片段。值得注意的是:此處只是給出第一視頻片段和第二視頻片段的選擇示例性,設(shè)計(jì)者還可以根據(jù)業(yè)務(wù)需求,自行決定視頻的視頻片段數(shù)量、播放時(shí)長(zhǎng)、第一視頻片段和第二視頻片段的選擇方法,并不局限于本實(shí)施例所示的。
在本實(shí)施例中,終端解析從播放列表文件提取出第二視頻片段對(duì)應(yīng)的標(biāo)識(shí),例如,從主播放列表文件或從播放列表文件中提取該標(biāo)識(shí)。該標(biāo)識(shí)可以是字符串,例如,該標(biāo)識(shí)為:
“#EXT-LETV-CKS:TN=1&KEY=1&SZ=564&CKS=1902”。
終端根據(jù)該標(biāo)識(shí),訪問索引服務(wù)器,索引服務(wù)器根據(jù)該標(biāo)識(shí)查找出與該標(biāo)識(shí)對(duì)應(yīng)的各個(gè)下載節(jié)點(diǎn),因此終端從索引服務(wù)器獲取已下載第二視頻片段的下載節(jié)點(diǎn)。索引服務(wù)器保存著已下載第二視頻片段的各個(gè)終端網(wǎng)絡(luò)地址。終端根據(jù)下載邏輯,選擇下載節(jié)點(diǎn),并且連接該下載節(jié)點(diǎn)并且下載第二視頻。例如,如果該下載節(jié)點(diǎn)鄰近終端所處的節(jié)點(diǎn)時(shí),終端選擇該下載節(jié)點(diǎn)。
在本實(shí)施例中,通過選擇視頻的第二視頻片段進(jìn)行點(diǎn)對(duì)點(diǎn)下載,從而提高下載速度以及節(jié)約網(wǎng)絡(luò)帶寬。
在一些實(shí)施例中,為了能夠進(jìn)一步提高視頻下載的速率,節(jié)省下載網(wǎng)絡(luò)帶寬,降低服務(wù)器壓力以及維護(hù)下載系統(tǒng)的穩(wěn)定,具體的,如圖4所示,該視頻下載方法還包括:
步驟0218、根據(jù)播放列表文件,選擇視頻的第二視頻片段,第二視頻片段包括多個(gè)視頻切片;
步驟0220、從播放列表文件提取出與視頻切片對(duì)應(yīng)的校驗(yàn)碼;
步驟0222、根據(jù)校驗(yàn)碼,獲取與已下載視頻切片的下載節(jié)點(diǎn);
步驟0224、連接下載節(jié)點(diǎn)并且下載視頻切片。
本實(shí)施例所述的第二視頻片段可以參照上述實(shí)施例對(duì)第二視頻片段的介紹,在此不贅述。
在本實(shí)施例中,第二視頻片段包括多個(gè)視頻切片,設(shè)計(jì)者可以根據(jù)業(yè)務(wù)需求自行決定視頻切片的數(shù)量和播放時(shí)長(zhǎng)。例如,第八視頻播放時(shí)序的第二視頻片段包括10個(gè)視頻切片,每個(gè)視頻切片為0.9分鐘的播放時(shí)長(zhǎng)。
對(duì)于視頻切片,主播放列表文件或從播放列表文件均有與視頻切片對(duì)應(yīng)的唯一標(biāo)識(shí),例如校驗(yàn)碼。終端通過解析主播放列表文件或從播放列表文件,從主播放列表文件或從播放列表文提取出與視頻切片對(duì)應(yīng)的校驗(yàn)碼。例如:請(qǐng)參考播放列表文件為M3U8格式文件的內(nèi)容形式:
#EXT-LETV-START-TIME:5.000
#EXT-LETV-SEGMENT-ID:2
#EXT-LETV-P2P-PIECE-NUMBER:3
#EXT-LETV-CKS:TN=2&KEY=2&SZ=564&CKS=1900
#EXT-LETV-CKS:PN=3&SZ=192512&CKS=41002&DURA=5.000
#EXT-LETV-CKS:PN=4&SZ=192512&CKS=27602
#EXT-LETV-CKS:PN=5&SZ=42676&CKS=2570
#EXTINF:5.000,
http://42.81.6.116:80/206/45/10/letv-uts/1
在該例子中,“#EXT-LETV-P2P-PIECE-NUMBER:3”提示該視頻片段包括三個(gè)視頻切片,其中,三個(gè)視頻切片的校驗(yàn)碼分別為:
第一個(gè)視頻切片的校驗(yàn)碼:
#EXT-LETV-CKS:PN=3&SZ=192512&CKS=41002&DURA=5.000
第二個(gè)視頻切片的校驗(yàn)碼:
#EXT-LETV-CKS:PN=4&SZ=192512&CKS=27602
第三個(gè)視頻切片的校驗(yàn)碼:
#EXT-LETV-CKS:PN=5&SZ=42676&CKS=2570
因此,請(qǐng)?jiān)賲⒖紙D1。終端101根據(jù)各個(gè)視頻切片的校驗(yàn)碼,向索引服務(wù)器104請(qǐng)求與校驗(yàn)碼對(duì)應(yīng)的下載名單,該下載名單包括已下載視頻切片的下載節(jié)點(diǎn)。終端根據(jù)該下載名單,連接所有下載節(jié)點(diǎn),下載各個(gè)視頻切片。進(jìn)一步的,終端還可以根據(jù)視頻片段播放時(shí)序,將下載到的各個(gè)視頻切片組合成第二視頻片段。例如,按照視頻片段播放時(shí)序,已經(jīng)下載并且存儲(chǔ)于本地存儲(chǔ)路徑(:\download\ltev\video\)的各個(gè)視頻切片分別為11.ts、12.ts、13.ts、14.ts、15.ts、16.ts、17.ts、18.ts、19.ts以及110.ts。終端將各個(gè)視頻切片的命名更新至主播放列表文件或從播放列表文件,從而實(shí)現(xiàn)將下載到的各個(gè)視頻切片組合成第二視頻片段。
可選地,在一些實(shí)施例中,如圖5所示,該視頻下載方法還包括:
步驟0226、建立新文件夾;
步驟0228、將下載到的各個(gè)視頻片段存儲(chǔ)于新文件夾;
步驟0230、按照視頻播放時(shí)序,命名第一視頻片段和/或第二視頻片段。
終端建立新文件夾,例如建立新文件夾的路徑為(c:\download\ltev\video\),將下載到的各個(gè)第一視頻片段和/或第二視頻片段存儲(chǔ)于該路徑下的新文件夾。當(dāng)然,設(shè)計(jì)者還可以將各個(gè)第一視頻片段和/或第二視頻片段存儲(chǔ)于不同路徑的文件,但是為了降低終端本地服務(wù)組件的壓力,較佳地將下載到的各個(gè)視頻片段存儲(chǔ)于同一路徑下的新文件夾。終端按照視頻播放時(shí)序,命名第一視頻片段和/或第二視頻片段。例如,在一個(gè)總時(shí)長(zhǎng)60分鐘的M3U8視頻中,設(shè)計(jì)者按照視頻播放時(shí)序?qū)⒃揗3U8視頻分割成10個(gè)視頻片段,由10段視頻播放時(shí)序的視頻片段組成,其中,1至8段為第一視頻片段,9至10為第二視頻片段。每個(gè)視頻片段具有6分鐘的播放時(shí)長(zhǎng)。第一段視頻播放時(shí)序的第一視頻片段命名為1.ts,第二段的為2.ts,以此類推得到第8段視頻播放時(shí)序的第一視頻片段為8.ts,第九段視頻播放時(shí)序的第二視頻片段命名為9.ts,第十段視頻播放時(shí)序的第二視頻片段命名為10.ts。
通過將下載到的各個(gè)視頻片段存儲(chǔ)于同一路徑下的新文件夾,避免終端播放視頻片段時(shí),需要從各個(gè)不同存儲(chǔ)路徑中查找視頻片段并播放的問題。
請(qǐng)參考圖1。當(dāng)下載該視頻的人數(shù)超過下載負(fù)荷時(shí),終端101從各個(gè)主服務(wù)器102下載第一視頻片段的下載速率變慢,甚至下載人數(shù)過多導(dǎo)致下載系統(tǒng)崩潰而影響下載系統(tǒng)的穩(wěn)定性。因此,為了提高下載速率,增強(qiáng)下載系統(tǒng)的穩(wěn)定性,如圖6所示,該視頻下載方法還包括:
步驟0232、在檢測(cè)到下載第一視頻片段的下載速率低于預(yù)設(shè)閾值時(shí),從播放列表文件提取第一視頻片段的備用下載地址;
步驟0234、根據(jù)備用下載地址下載第一視頻片段,并且中止根據(jù)主下載地址的下載。
請(qǐng)?jiān)賲⒖紙D1。假設(shè)當(dāng)終端是根據(jù)主播放列表文件下載第一視頻片段時(shí),終端101不斷檢測(cè)從主服務(wù)器102下載第一視頻片段的下載速率,當(dāng)檢測(cè)到下載第一視頻片段的下載速率低于閾值時(shí),從播放列表文件提取第一視頻片段的備用下載地址。終端根據(jù)該備用下載地址,下載第一視頻片段,與此同時(shí),終端還中止根據(jù)主下載地址的下載。終端將所有下載到的第一視頻片段存儲(chǔ)于本地。當(dāng)然,此處可以假設(shè)終端先根據(jù)從播放列表文件下載第一視頻片段,再切換至主播放列表文件。值得注意的是:對(duì)于同一個(gè)第一視頻片段,從播放列表文件中的第一視頻片段的備用下載地址和主播放列表文件中的第一視頻片段的主下載地址是不同的。例如,對(duì)于總時(shí)長(zhǎng)為60分鐘的視頻,該視頻由10個(gè)視頻片段按照視頻播放時(shí)序組合而成,即該視頻片段具有10段視頻播放時(shí)序。每段視頻播放時(shí)序的視頻片段均有6分鐘的播放時(shí)長(zhǎng),其中,對(duì)于第一段視頻播放時(shí)序的第一視頻片段在主播放列表文件的下載地址為:
http://121.18.139.36:80/188/10/96/letv-uts/14/verc-10
然而,對(duì)于第一段視頻播放時(shí)序的第一視頻片段在從播放列表文件的下載地址為:
http://134.18.139.36:80/128/15/81/letv-wts/14/wcu-20
在本實(shí)施例中,當(dāng)根據(jù)主下載地址下載第一視頻片段的下載速率變慢時(shí),通過切換至備用下載地址,并且根據(jù)該備用下載地址下載第一視頻片段,一方面,其能夠提高下載速率,從而提高用戶體驗(yàn),另一方面,其能夠節(jié)省下載網(wǎng)絡(luò)帶寬以及降低服務(wù)器壓力,維護(hù)下載系統(tǒng)的穩(wěn)定。
圖7是本發(fā)明實(shí)施例提供一種視頻下載裝置的結(jié)構(gòu)示意圖。如圖7所示,該視頻下載裝置70包括第一獲取模塊701、第一選擇模塊702、第一提取模塊703以及第一下載模塊704。第一獲取模塊701用于獲取播放列表文件。第一選擇模塊702用于根據(jù)播放列表文件,選擇視頻的第一視頻片段。第一提取模塊703用于從播放列表文件提取出第一視頻片段的主下載地址。第一下載模塊704用于根據(jù)主下載地址,下載第一視頻片段。
由于本發(fā)明裝置實(shí)施例與本發(fā)明方法實(shí)施例基于相同的發(fā)明構(gòu)思,方法實(shí)施例中的技術(shù)方案同樣適用于裝置實(shí)施例,因此,在本發(fā)明裝置實(shí)施例中不再贅述。
在本發(fā)明實(shí)施例中,視頻分割成多個(gè)第一視頻片段,通過提取每個(gè)第一視頻片段的主下載地址,根據(jù)每個(gè)主下載地址同對(duì)應(yīng)的服務(wù)器建立下載連接,下載各個(gè)第一視頻片段,從而提高下載視頻的速度和下載速率。
圖8是本發(fā)明實(shí)施例提供另一種視頻下載裝置的結(jié)構(gòu)示意圖。如圖8所示,該視頻下載裝置80包括第一獲取模塊801、第一選擇模塊802、第一提取模塊803以及第一下載模塊804。第一獲取模塊801用于獲取播放列表文件。第一選擇模塊802用于根據(jù)播放列表文件,選擇視頻的第一視頻片段。第一提取模塊803用于從播放列表文件提取出第一視頻片段的主下載地址。第一下載模塊804用于根據(jù)主下載地址,下載第一視頻片段。
可選地,該裝置80還包括第二選擇模塊805、第二提取模塊806、第二獲取模塊807以及第一連接下載模塊808。第二選擇模塊805用于根據(jù)播放列表文件,選擇視頻的第二視頻片段。第二提取模塊806用于從播放列表文件提取出第二視頻片段對(duì)應(yīng)的標(biāo)識(shí)。第二獲取模塊807用于根據(jù)標(biāo)識(shí),獲取已下載第二視頻片段的下載節(jié)點(diǎn)。第一連接下載模塊808用于連接下載節(jié)點(diǎn)并且下載第二視頻片段。
可選地,該裝置80還包括第三選擇模塊809、第三提取模塊810、第三獲取模塊811以及第二連接下載模塊812。第三選擇模塊809用于根據(jù)播放列表文件,選擇視頻的第二視頻片段,第二視頻片段包括多個(gè)視頻切片。第三提取模塊810用于從播放列表文件提取出與視頻切片對(duì)應(yīng)的校驗(yàn)碼。第三獲取模塊811用于根據(jù)校驗(yàn)碼,獲取與已下載視頻切片的下載節(jié)點(diǎn)。第二連接下載模塊812用于連接下載節(jié)點(diǎn)并且下載視頻切片。
可選地,該裝置80還包括檢測(cè)提取模塊813以及下載中止模塊814。檢測(cè)提取模塊813用于在檢測(cè)到下載第一視頻片段的下載速率低于預(yù)設(shè)閾值時(shí),從播放列表文件提取第一視頻片段的備用下載地址。下載中止模塊814用于根據(jù)備用下載地址下載第一視頻片段,并且中止根據(jù)主下載地址的下載。
可選地,該裝置80還包括建立模塊815、存儲(chǔ)模塊816以及命名模塊817。建立模塊815用于建立新文件夾。存儲(chǔ)模塊816用于將下載到的各個(gè)視頻片段存儲(chǔ)于新文件夾。命名模塊817用于按照視頻播放時(shí)序,命名第一視頻片段和/或第二視頻片段。
由于本發(fā)明裝置實(shí)施例與本發(fā)明方法實(shí)施例基于相同的發(fā)明構(gòu)思,方法實(shí)施例中的技術(shù)方案同樣適用于裝置實(shí)施例,因此,在本發(fā)明裝置實(shí)施例中不再贅述。
在本發(fā)明實(shí)施例中,視頻分割成多個(gè)第一視頻片段,通過提取每個(gè)第一視頻片段的主下載地址,根據(jù)每個(gè)主下載地址同對(duì)應(yīng)的服務(wù)器建立下載連接,下載各個(gè)第一視頻片段,從而提高下載視頻的速度和下載速率。
圖9是本發(fā)明實(shí)施例提供一種電子設(shè)備的結(jié)構(gòu)示意圖。如圖9所示,該電子設(shè)備90包括一個(gè)或多個(gè)處理器901以及存儲(chǔ)器902。其中,圖9中以一個(gè)處理器901為例。
處理器901和存儲(chǔ)器902可以通過總線或者其他方式連接,圖9中以通過總線連接為例。
存儲(chǔ)器902作為一種非易失性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),可用于存儲(chǔ)非易失性軟件程序、非易失性計(jì)算機(jī)可執(zhí)行程序以及模塊,如本發(fā)明實(shí)施例中的視頻下載方法對(duì)應(yīng)的程序指令/模塊(例如,附圖7所示的各個(gè)模塊以及附圖8所述的各個(gè)模塊)。處理器901通過運(yùn)行存儲(chǔ)在存儲(chǔ)器902中的非易失性軟件程序、指令以及模塊,從而執(zhí)行視頻下載裝置的各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述方法實(shí)施例視頻下載方法以及上述裝置實(shí)施例的各個(gè)模塊的功能。
存儲(chǔ)器902可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他非易失性固態(tài)存儲(chǔ)器件。在一些實(shí)施例中,存儲(chǔ)器902可選包括相對(duì)于處理器901遠(yuǎn)程設(shè)置的存儲(chǔ)器,這些遠(yuǎn)程存儲(chǔ)器可以通過網(wǎng)絡(luò)連接至處理器901。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動(dòng)通信網(wǎng)及其組合。
所述程序指令/模塊存儲(chǔ)在所述存儲(chǔ)器902中,當(dāng)被所述一個(gè)或者多個(gè)處理器901執(zhí)行時(shí),執(zhí)行上述任意方法實(shí)施例中的視頻下載方法,例如,執(zhí)行以上描述的圖2至6所示的各個(gè)步驟;也可實(shí)現(xiàn)圖7和圖8所述的各個(gè)模塊。
本發(fā)明實(shí)施例的電子設(shè)備90以多種形式存在,在執(zhí)行以上描述的圖2至6所示的各個(gè)步驟;也可實(shí)現(xiàn)圖7和圖8所述的各個(gè)模塊時(shí),上述電子設(shè)備90包括但不限于:
(1)移動(dòng)通信設(shè)備:這類設(shè)備的特點(diǎn)是具備移動(dòng)通信功能,并且以提供話音、數(shù)據(jù)通信為主要目標(biāo)。這類終端包括:智能手機(jī)(例如iPhone)、多媒體手機(jī)、功能性手機(jī),以及低端手機(jī)等。
(2)超移動(dòng)個(gè)人計(jì)算機(jī)設(shè)備:這類設(shè)備屬于個(gè)人計(jì)算機(jī)的范疇,有計(jì)算和處理功能,一般也具備移動(dòng)上網(wǎng)特性。這類終端包括:PDA、MID和UMPC設(shè)備等,例如iPad。
(3)便攜式娛樂設(shè)備:這類設(shè)備可以顯示和播放視頻內(nèi)容,一般也具備移動(dòng)上網(wǎng)特性。該類設(shè)備包括:視頻播放器,掌上游戲機(jī),以及智能玩具和便攜式車載導(dǎo)航設(shè)備。
(4)其他具有視頻播放功能和上網(wǎng)功能的電子設(shè)備。
本發(fā)明實(shí)施例還提供了一種非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì),所述計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令,該計(jì)算機(jī)可執(zhí)行指令被一個(gè)或多個(gè)處理器執(zhí)行,例如圖9中的一個(gè)處理器901,可使得上述一個(gè)或多個(gè)處理器可執(zhí)行上述任意方法實(shí)施例中的視頻下載方法,例如,執(zhí)行上述任意方法實(shí)施例中的視頻下載方法,例如,執(zhí)行以上描述的圖2至6所示的各個(gè)步驟;也可實(shí)現(xiàn)圖7和圖8所述的各個(gè)模塊。
以上所描述的裝置或設(shè)備實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元模塊可以是或者也可以不是物理上分開的,作為模塊單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)模塊單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對(duì)相關(guān)技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;在本發(fā)明的思路下,以上實(shí)施例或者不同實(shí)施例中的技術(shù)特征之間也可以進(jìn)行組合,步驟可以以任意順序?qū)崿F(xiàn),并存在如上所述的本發(fā)明的不同方面的許多其它變化,為了簡(jiǎn)明,它們沒有在細(xì)節(jié)中提供;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本申請(qǐng)各實(shí)施例技術(shù)方案的范圍。