两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種下載音視頻數(shù)據(jù)的方法及裝置與流程

文檔序號(hào):12378990閱讀:341來(lái)源:國(guó)知局
一種下載音視頻數(shù)據(jù)的方法及裝置與流程

本發(fā)明涉及互聯(lián)網(wǎng)應(yīng)用技術(shù)領(lǐng)域,特別涉及一種下載音視頻數(shù)據(jù)的方法及裝置。



背景技術(shù):

隨著技術(shù)的發(fā)展,廣播業(yè)務(wù)和移動(dòng)業(yè)務(wù)開(kāi)始漸漸融合,不同的多媒體內(nèi)容和業(yè)務(wù)在不同的網(wǎng)絡(luò)上傳輸,用戶希望可以利用不同的終端設(shè)備(如智能手機(jī)、平板電腦等)在不同時(shí)刻接入任何網(wǎng)絡(luò)時(shí)都能享受到這些服務(wù)。

相關(guān)技術(shù)中,采用Http流(Streaming)傳輸技術(shù)來(lái)實(shí)現(xiàn)多媒體數(shù)據(jù)的傳輸,即音頻或視頻輸入裝置將音/視頻輸入到服務(wù)器的媒體編碼器中,媒體編碼器將輸入的音/視頻進(jìn)行編碼,生成TS文件輸出給流分段裝置進(jìn)行分段后,發(fā)送給分發(fā)裝置,并生成該TS文件的索引文件,通過(guò)HTTP分發(fā)給客戶端。然而,目前的方案僅支持單線程下載,亟需解決這一技術(shù)問(wèn)題。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明提供一種下載音視頻數(shù)據(jù)的方法及裝置,用以實(shí)現(xiàn)快速、便捷地下載音視頻數(shù)據(jù)的目的。

本發(fā)明提供一種下載音視頻數(shù)據(jù)的方法,包括:

接收下載音視頻數(shù)據(jù)的請(qǐng)求,獲取待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址;

調(diào)起任務(wù)管理模塊,由所述任務(wù)管理模塊將所述一個(gè)或多個(gè)TS文件分配給至少一個(gè)線程,由所述至少一個(gè)線程根據(jù)所述一個(gè)或多個(gè)TS文件的下載地址下載所述一個(gè)或多個(gè)TS文件。

在本發(fā)明一實(shí)施例中,由所述任務(wù)管理模塊將所述一個(gè)或多個(gè)TS文件分配給至少一個(gè)線程,由所述至少一個(gè)線程根據(jù)所述一個(gè)或多個(gè)TS文件的下載地址下載所述一個(gè)或多個(gè)TS文件,包括:

由所述任務(wù)管理模塊獲取所述一個(gè)或多個(gè)TS文件中的第一個(gè)TS文件的多個(gè)分段各自的下載地址,并創(chuàng)建用于記錄下載完成事件的數(shù)組;

由所述任務(wù)管理模塊將所述第一個(gè)TS文件的多個(gè)分段分配給至少一個(gè)線程,由所述至少一個(gè)線程根據(jù)所述第一個(gè)TS文件的多個(gè)分段各自的下載地址下載所述多個(gè)分段;每當(dāng)所述至少一個(gè)線程中的任意線程下載完成相應(yīng)的分段后,在創(chuàng)建的所述數(shù)組中進(jìn)行記錄;

當(dāng)根據(jù)所述數(shù)組的記錄確定所述第一個(gè)TS文件下載完成后,獲取所述一個(gè)或多個(gè)TS文件中的第二個(gè)TS文件的多個(gè)分段各自的下載地址,并清空所述數(shù)組的記錄;

由所述任務(wù)管理模塊將所述第二個(gè)TS文件的多個(gè)分段分配給至少一個(gè)線程,由所述至少一個(gè)線程根據(jù)所述第二個(gè)TS文件的多個(gè)分段各自的下載地址下載所述多個(gè)分段;每當(dāng)所述至少一個(gè)線程中的任意線程下載完成相應(yīng)的分段后,在清空后的所述數(shù)組中進(jìn)行記錄,以此類(lèi)推,直至下載完成所述一個(gè)或多個(gè)TS文件。

在本發(fā)明一實(shí)施例中,由所述任務(wù)管理模塊將所述一個(gè)或多個(gè)TS文件分配給至少一個(gè)線程,由所述至少一個(gè)線程根據(jù)所述一個(gè)或多個(gè)TS文件的下載地址下載所述一個(gè)或多個(gè)TS文件,包括:

由所述任務(wù)管理模塊獲取所述一個(gè)或多個(gè)TS文件中的每個(gè)TS文件的多個(gè)分段各自的下載地址,并針對(duì)所述每個(gè)TS文件創(chuàng)建用于記錄下載完成事件的數(shù)組;

由所述任務(wù)管理模塊將所述每個(gè)TS文件分配給至少一個(gè)線程,由所述至少一個(gè)線程根據(jù)所述每個(gè)TS文件的多個(gè)分段各自的下載地址下載所述多個(gè)分段;每當(dāng)所述至少一個(gè)線程中的任意線程下載完成相應(yīng)的分段后,在創(chuàng)建的所述數(shù)組中進(jìn)行記錄;

當(dāng)根據(jù)所述數(shù)組的記錄確定所述每個(gè)TS文件下載完成后,將所述每個(gè)TS文件發(fā)送給客戶端播放器,以播放所述每個(gè)TS文件。

在本發(fā)明一實(shí)施例中,所述請(qǐng)求中攜帶有所述待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址,獲取待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址,包括:

從所述請(qǐng)求中解析出待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址。

在本發(fā)明一實(shí)施例中,獲取待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址,包括:

獲取預(yù)設(shè)的第一代理服務(wù)、第二代理服務(wù)以及待下載音視頻數(shù)據(jù)的源服務(wù)器的地址;

利用所述第一代理服務(wù)和所述源服務(wù)器的地址,獲取所述待下載音視頻數(shù)據(jù)的m3u8文件,并由所述第一代理服務(wù)對(duì)所述m3u8文件進(jìn)行解析,得到所述待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址。

本發(fā)明還提供一種下載音視頻數(shù)據(jù)的裝置,包括:

獲取模塊,用于接收下載音視頻數(shù)據(jù)的請(qǐng)求,獲取待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址;

下載模塊,用于調(diào)起任務(wù)管理模塊,由所述任務(wù)管理模塊將所述一個(gè)或多個(gè)TS文件分配給至少一個(gè)線程,由所述至少一個(gè)線程根據(jù)所述一個(gè)或多個(gè)TS文件的下載地址下載所述一個(gè)或多個(gè)TS文件。

在本發(fā)明一實(shí)施例中,所述下載模塊還用于:

由所述任務(wù)管理模塊獲取所述一個(gè)或多個(gè)TS文件中的第一個(gè)TS文件的多個(gè)分段各自的下載地址,并創(chuàng)建用于記錄下載完成事件的數(shù)組;

由所述任務(wù)管理模塊將所述第一個(gè)TS文件的多個(gè)分段分配給至少一個(gè)線程,由所述至少一個(gè)線程根據(jù)所述第一個(gè)TS文件的多個(gè)分段各自的下載地址下載所述多個(gè)分段;每當(dāng)所述至少一個(gè)線程中的任意線程下載完成相應(yīng)的分段后,在創(chuàng)建的所述數(shù)組中進(jìn)行記錄;

當(dāng)根據(jù)所述數(shù)組的記錄確定所述第一個(gè)TS文件下載完成后,獲取所述一個(gè)或多個(gè)TS文件中的第二個(gè)TS文件的多個(gè)分段各自的下載地址,并清空所述數(shù)組的記錄;

由所述任務(wù)管理模塊將所述第二個(gè)TS文件的多個(gè)分段分配給至少一個(gè)線程,由所述至少一個(gè)線程根據(jù)所述第二個(gè)TS文件的多個(gè)分段各自的下載地址下載所述多個(gè)分段;每當(dāng)所述至少一個(gè)線程中的任意線程下載完成相應(yīng)的分段后,在清空后的所述數(shù)組中進(jìn)行記錄,以此類(lèi)推,直至下載完成所述一個(gè)或多個(gè)TS文件。

在本發(fā)明一實(shí)施例中,所述下載模塊還用于:

由所述任務(wù)管理模塊獲取所述一個(gè)或多個(gè)TS文件中的每個(gè)TS文件的多個(gè)分段各自的下載地址,并針對(duì)所述每個(gè)TS文件創(chuàng)建用于記錄下載完成事件的數(shù)組;

由所述任務(wù)管理模塊將所述每個(gè)TS文件分配給至少一個(gè)線程,由所述至少一個(gè)線程根據(jù)所述每個(gè)TS文件的多個(gè)分段各自的下載地址下載所述多個(gè)分段;每當(dāng)所述至少一個(gè)線程中的任意線程下載完成相應(yīng)的分段后,在創(chuàng)建的所述數(shù)組中進(jìn)行記錄;

當(dāng)根據(jù)所述數(shù)組的記錄確定所述每個(gè)TS文件下載完成后,將所述每個(gè)TS文件發(fā)送給客戶端播放器,以播放所述每個(gè)TS文件。

在本發(fā)明一實(shí)施例中,所述請(qǐng)求中攜帶有所述待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址,所述獲取模塊還用于:

從所述請(qǐng)求中解析出待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址。

在本發(fā)明一實(shí)施例中,所述獲取模塊還用于:

獲取預(yù)設(shè)的第一代理服務(wù)、第二代理服務(wù)以及待下載音視頻數(shù)據(jù)的源服務(wù)器的地址;

利用所述第一代理服務(wù)和所述源服務(wù)器的地址,獲取所述待下載音視頻數(shù)據(jù)的m3u8文件,并由所述第一代理服務(wù)對(duì)所述m3u8文件進(jìn)行解析,得到所述待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址。

在本發(fā)明實(shí)施例中,接收下載音視頻數(shù)據(jù)的請(qǐng)求,獲取待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址;隨后,調(diào)起任務(wù)管理模塊,由任務(wù)管理模塊將一個(gè)或多個(gè)TS文件分配給至少一個(gè)線程,由至少一個(gè)線程根據(jù)一個(gè)或多個(gè)TS文件的下載地址下載一個(gè)或多個(gè)TS文件。由此可見(jiàn),本發(fā)明實(shí)施例利用至少一個(gè)線程下載TS文件,實(shí)現(xiàn)快速、便捷地下載音視頻數(shù)據(jù)的目的。

本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書(shū)中闡述,并且,部分地從說(shuō)明書(shū)中變得顯而易見(jiàn),或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過(guò)在所寫(xiě)的說(shuō)明書(shū)、權(quán)利要求書(shū)、以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。

下面通過(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。

附圖說(shuō)明

附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說(shuō)明書(shū)的一部分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:

圖1所示為本發(fā)明一實(shí)施例中下載音視頻數(shù)據(jù)的方法的流程圖;以及

圖2所示為本發(fā)明一實(shí)施例中下載音視頻數(shù)據(jù)的裝置的結(jié)構(gòu)示意圖。

具體實(shí)施方式

以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說(shuō)明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。

如圖1所示為本發(fā)明一實(shí)施例中下載音視頻數(shù)據(jù)的方法的流程圖,該方法可以包括以下步驟S11-S12。

步驟S11,接收下載音視頻數(shù)據(jù)的請(qǐng)求,獲取待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址。

在該步驟中,TS文件是指音視頻內(nèi)容文件,其格式為T(mén)S格式。如前文介紹,目前采用Http流(Streaming)傳輸技術(shù)來(lái)實(shí)現(xiàn)多媒體數(shù)據(jù)的傳輸,即音頻或視頻輸入裝置將音/視頻輸入到服務(wù)器的媒體編碼器中,媒體編碼器將輸入的音/視頻進(jìn)行編碼,生成TS文件輸出給流分段裝置進(jìn)行分段后,發(fā)送給分發(fā)裝置,并生成該TS文件的索引文件,通過(guò)HTTP分發(fā)給客戶端。

當(dāng)請(qǐng)求中攜帶有待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址,則從該請(qǐng)求中解析出待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址。

步驟S12,調(diào)起任務(wù)管理模塊,由任務(wù)管理模塊將一個(gè)或多個(gè)TS文件分配給至少一個(gè)線程,由至少一個(gè)線程根據(jù)一個(gè)或多個(gè)TS文件的下載地址下載一個(gè)或多個(gè)TS文件。

在本發(fā)明實(shí)施例中,接收下載音視頻數(shù)據(jù)的請(qǐng)求,獲取待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址;隨后,調(diào)起任務(wù)管理模塊,由任務(wù)管理模塊將一個(gè)或多個(gè)TS文件分配給至少一個(gè)線程,由至少一個(gè)線程根據(jù)一個(gè)或多個(gè)TS文件的下載地址下載一個(gè)或多個(gè)TS文件。由此可見(jiàn),本發(fā)明實(shí)施例利用至少一個(gè)線程下載TS文件,實(shí)現(xiàn)快速、便捷地下載音視頻數(shù)據(jù)的目的。

HTTP live Streaming(HLS)是蘋(píng)果公司實(shí)現(xiàn)的基于HTTP(Hypertext transfer protocol,超文本傳輸協(xié)議)的流媒體傳輸協(xié)議,可以實(shí)現(xiàn)流媒體的播放。HLS基于HTTP協(xié)議實(shí)現(xiàn),HLS協(xié)議在服務(wù)器端將數(shù)據(jù)流存儲(chǔ)為連續(xù)的、很短時(shí)長(zhǎng)的媒體文件,傳輸內(nèi)容包括兩部分,一是m3u8文件(是蘋(píng)果公司HLS協(xié)議里規(guī)定的一種描述文件,用文本方式對(duì)媒體文件進(jìn)行描述,由一系列標(biāo)簽組成);二是MPEG-TS(Moving Pictures Experts Group/Motion Pictures Experts Group-Transport Stream,動(dòng)態(tài)圖像專家組-傳輸流)格式的媒體文件。m3u8文件是為這些MPEG-TS格式的媒體文件創(chuàng)建的索引文件??蛻舳瞬粩嗟南螺d并播放這些媒體文件,就實(shí)現(xiàn)了流媒體的播放。

上文步驟S11中獲取待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址,本發(fā)明實(shí)施例提供了一種可選的方案,包括以下步驟A1-A2。

步驟A1,獲取預(yù)設(shè)的第一代理服務(wù)、第二代理服務(wù)以及待下載音視頻數(shù)據(jù)的源服務(wù)器的地址。

在該步驟中,本發(fā)明實(shí)施例預(yù)先定義一個(gè)類(lèi)(包含set方法),該類(lèi)繼承了音視頻數(shù)據(jù)的播放器的函數(shù)(或者方法),并且該類(lèi)中還增加了用于下載音視頻數(shù)據(jù)的函數(shù),所述用于下載音視頻數(shù)據(jù)的函數(shù)中包括第一代理服務(wù)和第二代理服務(wù);從該類(lèi)中獲取第一代理服務(wù)和第二代理服務(wù)。

步驟A2,利用第一代理服務(wù)和源服務(wù)器的地址,獲取待下載音視頻數(shù)據(jù)的m3u8文件,并由第一代理服務(wù)對(duì)m3u8文件進(jìn)行解析,得到待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址。

在該步驟中,set方法將源服務(wù)器的地址發(fā)送給第一代理服務(wù),set方法調(diào)用播放器的函數(shù),發(fā)送獲取待下載音視頻數(shù)據(jù)的m3u8文件的請(qǐng)求消息,其中,該請(qǐng)求消息中攜帶有第一代理服務(wù)的地址,由第一代理服務(wù)根據(jù)接收到的請(qǐng)求消息和源服務(wù)器的地址,從源服務(wù)器處獲取待下載音視頻數(shù)據(jù)的m3u8文件。具體地,第一代理服務(wù)根據(jù)源服務(wù)器的地址,向源服務(wù)器發(fā)送獲取待下載音視頻數(shù)據(jù)的m3u8文件的請(qǐng)求;第一代理服務(wù)接收源服務(wù)器返回的待下載音視頻數(shù)據(jù)的m3u8文件。第一代理服務(wù)從源服務(wù)器處獲取待下載音視頻數(shù)據(jù)的m3u8文件之后,對(duì)m3u8文件進(jìn)行解析,得到待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址。

由于HTTP協(xié)議本質(zhì)上屬于文本傳輸協(xié)議,并不適合實(shí)時(shí)的流媒體傳輸。因此,為了便于實(shí)現(xiàn)直播回放(針對(duì)時(shí)移業(yè)務(wù))和邊下載邊看的功能,通常將節(jié)目?jī)?nèi)容在物理或邏輯上分成許多的小分段??蛻舳烁鶕?jù)節(jié)目索引(Media Presentation Description,MPD)信息每次下載媒體文件的一個(gè)或多個(gè)分段進(jìn)行播放,其中,MPD信息中包含有媒體分段的索引等信息,然后對(duì)已下載的數(shù)據(jù)進(jìn)行解碼播放??蛻舳隧樞蛳螺d并播放所述TS文件的分段文件。

例如,客戶端可以在需要播放該TS文件時(shí),先獲取該TS文件的索引信息,還可以獲取該TS文件的MPD(Media Presentation Description,節(jié)目索引)信息,其中,索引信息和MPD信息文件可以在同一個(gè)文件中,也可以位于不同文件中,并且,為了不改變?cè)糡S文件的格式,可以將TS文件的描述信息(包括關(guān)鍵幀索引信息和/或MPD信息)存放于另一個(gè)文件中。記錄TS文件的索引信息的文件稱為T(mén)S文件的索引文件。

上文步驟S12中,由任務(wù)管理模塊將一個(gè)或多個(gè)TS文件分配給至少一個(gè)線程,由至少一個(gè)線程根據(jù)一個(gè)或多個(gè)TS文件的下載地址下載一個(gè)或多個(gè)TS文件,本發(fā)明實(shí)施例提供了一種可選的方案,該方案包括以下步驟B1-B4。

步驟B1,由任務(wù)管理模塊獲取一個(gè)或多個(gè)TS文件中的第一個(gè)TS文件的多個(gè)分段各自的下載地址,并創(chuàng)建用于記錄下載完成事件的數(shù)組。

步驟B2,由任務(wù)管理模塊將第一個(gè)TS文件的多個(gè)分段分配給至少一個(gè)線程,由至少一個(gè)線程根據(jù)第一個(gè)TS文件的多個(gè)分段各自的下載地址下載多個(gè)分段;每當(dāng)至少一個(gè)線程中的任意線程下載完成相應(yīng)的分段后,在創(chuàng)建的數(shù)組中進(jìn)行記錄。

步驟B3,當(dāng)根據(jù)數(shù)組的記錄確定第一個(gè)TS文件下載完成后,獲取一個(gè)或多個(gè)TS文件中的第二個(gè)TS文件的多個(gè)分段各自的下載地址,并清空數(shù)組的記錄。

步驟B4,由任務(wù)管理模塊將第二個(gè)TS文件的多個(gè)分段分配給至少一個(gè)線程,由至少一個(gè)線程根據(jù)第二個(gè)TS文件的多個(gè)分段各自的下載地址下載多個(gè)分段;每當(dāng)至少一個(gè)線程中的任意線程下載完成相應(yīng)的分段后,在清空后的數(shù)組中進(jìn)行記錄,以此類(lèi)推,直至下載完成一個(gè)或多個(gè)TS文件。

在上述實(shí)施例中,客戶端播放器(player)請(qǐng)求一次TS文件時(shí),任務(wù)管理模塊創(chuàng)建一個(gè)數(shù)組。任務(wù)管理模塊獲知所有線程下載結(jié)束,且TS文件下載完成后,player再請(qǐng)求一個(gè)TS文件,任務(wù)管理模塊清空原數(shù)組,再重新計(jì)數(shù)。

上文步驟S12中,由任務(wù)管理模塊將一個(gè)或多個(gè)TS文件分配給至少一個(gè)線程,由至少一個(gè)線程根據(jù)一個(gè)或多個(gè)TS文件的下載地址下載一個(gè)或多個(gè)TS文件,本發(fā)明實(shí)施例還提供了一種可選的方案,該方案包括以下步驟C1-C3。

步驟C1,由任務(wù)管理模塊獲取一個(gè)或多個(gè)TS文件中的每個(gè)TS文件的多個(gè)分段各自的下載地址,并針對(duì)每個(gè)TS文件創(chuàng)建用于記錄下載完成事件的數(shù)組。

步驟C2,由任務(wù)管理模塊將每個(gè)TS文件分配給至少一個(gè)線程,由至少一個(gè)線程根據(jù)每個(gè)TS文件的多個(gè)分段各自的下載地址下載多個(gè)分段;每當(dāng)至少一個(gè)線程中的任意線程下載完成相應(yīng)的分段后,在創(chuàng)建的數(shù)組中進(jìn)行記錄。

步驟C3,當(dāng)根據(jù)數(shù)組的記錄確定每個(gè)TS文件下載完成后,將每個(gè)TS文件發(fā)送給客戶端播放器,以播放每個(gè)TS文件。

在上述實(shí)施例中,任務(wù)管理模塊針對(duì)每個(gè)TS文件建立一個(gè)數(shù)組,可以有多個(gè)數(shù)組。當(dāng)有線程空閑時(shí),也就是說(shuō)其余線程足夠?qū)?dāng)前TS文件下載完成,任務(wù)管理模塊主動(dòng)向服務(wù)器請(qǐng)求下一個(gè)TS文件,繼續(xù)下載。例如,一個(gè)m3u8文件包括3個(gè)TS文件的下載地址,所以任務(wù)管理模塊是可以知道下一個(gè)TS文件的下載地址的,可以主動(dòng)發(fā)請(qǐng)求。當(dāng)player發(fā)送請(qǐng)求時(shí),任務(wù)管理模塊不用再向服務(wù)器發(fā)送請(qǐng)求,而是直接給player反饋?;蛘撸?dāng)有線程空閑時(shí),任務(wù)管理模塊就通知player完成,由player向服務(wù)器發(fā)送請(qǐng)求,觸發(fā)任務(wù)管理模塊繼續(xù)分配任務(wù)。

需要說(shuō)明的是,在實(shí)際應(yīng)用中,上述所有可選實(shí)施方式可以采用結(jié)合的方式任意組合,形成本發(fā)明的可選實(shí)施例,在此不再一一贅述。

對(duì)應(yīng)于上述實(shí)施例中的下載音視頻數(shù)據(jù)的方法,本發(fā)明還提供一種下載音視頻數(shù)據(jù)的裝置。如圖2所示為本發(fā)明一實(shí)施例中下載音視頻數(shù)據(jù)的裝置的結(jié)構(gòu)示意圖,包括:

獲取模塊21,用于接收下載音視頻數(shù)據(jù)的請(qǐng)求,獲取待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址;

下載模塊22,用于調(diào)起任務(wù)管理模塊,由所述任務(wù)管理模塊將所述一個(gè)或多個(gè)TS文件分配給至少一個(gè)線程,由所述至少一個(gè)線程根據(jù)所述一個(gè)或多個(gè)TS文件的下載地址下載所述一個(gè)或多個(gè)TS文件。

在本發(fā)明一實(shí)施例中,所述下載模塊22還用于:

由所述任務(wù)管理模塊獲取所述一個(gè)或多個(gè)TS文件中的第一個(gè)TS文件的多個(gè)分段各自的下載地址,并創(chuàng)建用于記錄下載完成事件的數(shù)組;

由所述任務(wù)管理模塊將所述第一個(gè)TS文件的多個(gè)分段分配給至少一個(gè)線程,由所述至少一個(gè)線程根據(jù)所述第一個(gè)TS文件的多個(gè)分段各自的下載地址下載所述多個(gè)分段;每當(dāng)所述至少一個(gè)線程中的任意線程下載完成相應(yīng)的分段后,在創(chuàng)建的所述數(shù)組中進(jìn)行記錄;

當(dāng)根據(jù)所述數(shù)組的記錄確定所述第一個(gè)TS文件下載完成后,獲取所述一個(gè)或多個(gè)TS文件中的第二個(gè)TS文件的多個(gè)分段各自的下載地址,并清空所述數(shù)組的記錄;

由所述任務(wù)管理模塊將所述第二個(gè)TS文件的多個(gè)分段分配給至少一個(gè)線程,由所述至少一個(gè)線程根據(jù)所述第二個(gè)TS文件的多個(gè)分段各自的下載地址下載所述多個(gè)分段;每當(dāng)所述至少一個(gè)線程中的任意線程下載完成相應(yīng)的分段后,在清空后的所述數(shù)組中進(jìn)行記錄,以此類(lèi)推,直至下載完成所述一個(gè)或多個(gè)TS文件。

在本發(fā)明一實(shí)施例中,所述下載模塊22還用于:

由所述任務(wù)管理模塊獲取所述一個(gè)或多個(gè)TS文件中的每個(gè)TS文件的多個(gè)分段各自的下載地址,并針對(duì)所述每個(gè)TS文件創(chuàng)建用于記錄下載完成事件的數(shù)組;

由所述任務(wù)管理模塊將所述每個(gè)TS文件分配給至少一個(gè)線程,由所述至少一個(gè)線程根據(jù)所述每個(gè)TS文件的多個(gè)分段各自的下載地址下載所述多個(gè)分段;每當(dāng)所述至少一個(gè)線程中的任意線程下載完成相應(yīng)的分段后,在創(chuàng)建的所述數(shù)組中進(jìn)行記錄;

當(dāng)根據(jù)所述數(shù)組的記錄確定所述每個(gè)TS文件下載完成后,將所述每個(gè)TS文件發(fā)送給客戶端播放器,以播放所述每個(gè)TS文件。

在本發(fā)明一實(shí)施例中,所述請(qǐng)求中攜帶有所述待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址,所述獲取模塊21還用于:

從所述請(qǐng)求中解析出待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址。

在本發(fā)明一實(shí)施例中,所述獲取模塊21還用于:

獲取預(yù)設(shè)的第一代理服務(wù)、第二代理服務(wù)以及待下載音視頻數(shù)據(jù)的源服務(wù)器的地址;

利用所述第一代理服務(wù)和所述源服務(wù)器的地址,獲取所述待下載音視頻數(shù)據(jù)的m3u8文件,并由所述第一代理服務(wù)對(duì)所述m3u8文件進(jìn)行解析,得到所述待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址。

本發(fā)明實(shí)施例的上述裝置:接收下載音視頻數(shù)據(jù)的請(qǐng)求,獲取待下載音視頻數(shù)據(jù)的一個(gè)或多個(gè)TS文件的下載地址;隨后,調(diào)起任務(wù)管理模塊,由任務(wù)管理模塊將一個(gè)或多個(gè)TS文件分配給至少一個(gè)線程,由至少一個(gè)線程根據(jù)一個(gè)或多個(gè)TS文件的下載地址下載一個(gè)或多個(gè)TS文件。由此可見(jiàn),本發(fā)明實(shí)施例利用至少一個(gè)線程下載TS文件,實(shí)現(xiàn)快速、便捷地下載音視頻數(shù)據(jù)的目的。

本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。

本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。

這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。

這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。

顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
监利县| 山阴县| 元朗区| 改则县| 忻州市| 庄河市| 长汀县| 孟津县| 呈贡县| 奉化市| 拉孜县| 呼和浩特市| 嘉义市| 五华县| 柳林县| 昂仁县| 聊城市| 黎平县| 新和县| 淅川县| 潼南县| 大化| 新营市| 保靖县| 蒙自县| 拜城县| 恩平市| 台东县| 平度市| 咸宁市| 齐河县| 开封市| 武汉市| 孝感市| 赤水市| 白玉县| 怀化市| 新宁县| 安阳县| 淄博市| 新田县|