一種流媒體播放方法及裝置制造方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種流媒體播放方法及裝置,該方法包括:獲取媒體流的索引文件,其中媒體流包括索引文件和至少兩個(gè)切片文件,索引文件記錄有所述至少兩個(gè)切片文件中各切片文件的時(shí)間信息和地址信息;根據(jù)索引文件獲取媒體流的各切片文件;將所獲取到的所有的切片文件合并轉(zhuǎn)換為一個(gè)本地媒體文件;利用本地播放器播放本地媒體文件;其中,本地媒體文件的格式為本地播放器所支持的格式。本發(fā)明能夠?qū)⒈镜夭シ牌鞣侵С值母袷降拿襟w流利用本地播放器進(jìn)行播放。
【專(zhuān)利說(shuō)明】一種流媒體播放方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息【技術(shù)領(lǐng)域】,具體涉及流媒體【技術(shù)領(lǐng)域】,尤其涉及一種流媒體播放方法及裝置。
【背景技術(shù)】
[0002]通過(guò)互聯(lián)網(wǎng)獲取流媒體并進(jìn)行播放,已經(jīng)成為用戶(hù)設(shè)備(例如智能手機(jī)、臺(tái)式電腦、筆記本電腦)上最重要的功能之一。傳統(tǒng)的流媒體傳輸是基于專(zhuān)門(mén)的流媒體傳輸協(xié)議來(lái)實(shí)現(xiàn)的,例如 RTMP (Routing Table Maintenance Protocol,路由選擇表維護(hù)協(xié)議)、RTSP(Real Time Streaming Protocol,實(shí)時(shí)流傳輸協(xié)議)、MMS (Multimedia Message Service,多媒體短信服務(wù))協(xié)議等。但是,采用基于上述專(zhuān)門(mén)的流媒體傳輸協(xié)議對(duì)流媒體進(jìn)行傳輸時(shí),在實(shí)際的網(wǎng)絡(luò)環(huán)境中通常會(huì)由于防火墻、NAT (Network Address Translat1n,網(wǎng)絡(luò)地址轉(zhuǎn)換)路由器的存在,而無(wú)法建立有效的傳輸數(shù)據(jù)的網(wǎng)絡(luò)通路。
[0003]為此,蘋(píng)果公司提出HLS (HTTP Live Streaming,超文本傳輸協(xié)議實(shí)時(shí)流)協(xié)議,將原本連續(xù)的媒體流切分為若干個(gè)TS (Transport Stream,傳輸流)切片文件,并相應(yīng)生成一個(gè)M3U8索引文件(播放列表文件),然后將TS切片文件和M3U8索引文件存儲(chǔ)至HTTP服務(wù)器。所述若干個(gè)TS切片文件和M3U8索引文件組成HLS媒體流。相應(yīng)的終端,例如IPhone、Ipad, ItoucKMac,利用HTTP協(xié)議從HTTP服務(wù)器獲取M3U8索引文件,并根據(jù)M3U8索引文件提供的URL (Uniform Resourse Locator,統(tǒng)一資源定位符)獲取TS切片文件,進(jìn)而實(shí)現(xiàn)對(duì)流媒體的播放。由于流媒體數(shù)據(jù)通過(guò)HTTP協(xié)議傳輸,可以完全不用考慮防火墻或者代理的問(wèn)題,而且TS切片文件的時(shí)長(zhǎng)很短,相應(yīng)的終端可以很快的選擇和切換碼率,以適應(yīng)不同帶寬條件下的播放。然而,目前諸多除蘋(píng)果終端外的其它被廣泛使用的終端不支持對(duì)基于HLS協(xié)議的媒體流的播放,并且即便是支持基于HLS協(xié)議的媒體流播放的終端也不能夠?qū)崿F(xiàn)基于HLS協(xié)議的媒體流的離線(xiàn)播放,嚴(yán)重影響用戶(hù)的視頻觀(guān)看體驗(yàn)。
【發(fā)明內(nèi)容】
[0004]鑒于以上理由,本發(fā)明實(shí)施例提出一種流媒體播放方法及裝置,來(lái)解決以上【背景技術(shù)】部分提到的技術(shù)問(wèn)題。
[0005]一種流媒體播放方法,所述方法包括:
[0006]獲取媒體流的索引文件,其中所述媒體流包括索引文件和至少兩個(gè)切片文件,所述索引文件記錄有所述至少兩個(gè)切片文件中各切片文件的時(shí)間信息和地址信息;
[0007]根據(jù)所述索引文件獲取所述媒體流的各切片文件;
[0008]將所獲取到的所有的切片文件合并轉(zhuǎn)換為一個(gè)本地媒體文件;
[0009]利用本地播放器播放所述本地媒體文件;
[0010]其中,所述本地媒體文件的格式為所述本地播放器所支持的格式。
[0011]相應(yīng)地,本發(fā)明實(shí)施例還提供了一種流媒體播放裝置,所述裝置包括:
[0012]索引文件獲取模塊,用于獲取媒體流的索引文件,其中所述媒體流包括索引文件和至少兩個(gè)切片文件,所述索引文件記錄有所述至少兩個(gè)切片文件中各切片文件的時(shí)間信息和地址信息;
[0013]切片文件獲取模塊,用于根據(jù)所述索引文件獲取所述媒體流的各切片文件;
[0014]轉(zhuǎn)換模塊,用于將所獲取到的所有的切片文件合并轉(zhuǎn)換為一個(gè)本地媒體文件;
[0015]播放模塊,用于利用本地播放器播放所述本地媒體文件;
[0016]其中,所述本地媒體文件的格式為所述本地播放器所支持的格式。
[0017]相較于現(xiàn)有技術(shù),本發(fā)明實(shí)施例通過(guò)將所獲取到的所有的切片文件合并轉(zhuǎn)換為一個(gè)本地媒體文件,利用本地播放器播放本地媒體文件,進(jìn)而實(shí)現(xiàn)了終端上對(duì)本地播放器不支持的格式的媒體流的播放,提高了用戶(hù)對(duì)流媒體的觀(guān)看體驗(yàn)。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0018]圖1是本發(fā)明第一實(shí)施例提供的一種流媒體播放方法的流程示意圖;
[0019]圖2是本發(fā)明第一實(shí)施例提供的一種基于HLS協(xié)議的流媒體傳輸系統(tǒng)的結(jié)構(gòu)示意圖;
[0020]圖3是本發(fā)明第二實(shí)施例提供的一種流媒體播放方法的流程示意圖;
[0021]圖4是本發(fā)明第二實(shí)施例提供的根據(jù)所述M3U8索引文件,從HTTP服務(wù)器、本地存儲(chǔ)器獲取所述媒體流的各TS切片文件的流程示意圖;
[0022]圖5是本發(fā)明第三實(shí)施例提供的一種流媒體播放裝置的結(jié)構(gòu)示意圖;
[0023]圖6是本發(fā)明第四實(shí)施例提供的一種流媒體播放裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0024]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明??梢岳斫獾氖牵颂幩枋龅木唧w實(shí)施例僅用于解釋本發(fā)明,而非對(duì)本發(fā)明的限定。另外還需要說(shuō)明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部?jī)?nèi)容。
[0025]本發(fā)明實(shí)施例的流媒體播放方法、流媒體播放裝置可以運(yùn)行于安裝有Android(谷歌公司開(kāi)發(fā)的用于便攜式可移動(dòng)智能設(shè)備的操作系統(tǒng)平臺(tái))、1S (蘋(píng)果公司開(kāi)發(fā)的用于便攜式可移動(dòng)智能設(shè)備的操作系統(tǒng)平臺(tái))、Windows Phone (微軟公司開(kāi)發(fā)的用于便攜式可移動(dòng)智能設(shè)備的操作系統(tǒng)平臺(tái))等操作系統(tǒng)的終端中,該終端可以是智能手機(jī)、平板電腦、個(gè)人數(shù)字助理、筆記本電腦、臺(tái)式電腦等等中的任意一種,該終端中可以包括中央處理器、存儲(chǔ)器、開(kāi)關(guān)器件、電源、時(shí)鐘信號(hào)生成器、圖像處理器、聲音處理器等中的任意組合,上述中央處理器、存儲(chǔ)器、開(kāi)關(guān)器件、電源、時(shí)鐘信號(hào)生成器、圖像處理器、聲音處理器等中的任意組合用于實(shí)現(xiàn)本發(fā)明的實(shí)施例的流媒體播放方法及流媒體播放裝置中的功能。
[0026]在本發(fā)明實(shí)施例的流媒體播放方法、流媒體播放裝置中,所涉及的媒體流為包括索引文件和至少兩個(gè)切片文件,且所述索引文件記錄有所述至少兩個(gè)切片文件中各切片文件的時(shí)間信息和地址信息的媒體流,以下各實(shí)施例均以基于HLS協(xié)議的媒體流為例進(jìn)行闡述。其中,基于HLS協(xié)議的媒體流的索引文件為M3U8索引文件,切片文件為T(mén)S文件。
[0027]圖1-2示出了本發(fā)明的第一實(shí)施例。
[0028]圖1是本發(fā)明第一實(shí)施例提供的一種流媒體播放方法的流程示意圖。參見(jiàn)圖1,該方法包括:
[0029]步驟S101、獲取基于HLS協(xié)議的媒體流的M3U8索引文件。
[0030]圖2是本發(fā)明第一實(shí)施例提供的一種基于HLS協(xié)議的流媒體傳輸系統(tǒng)的結(jié)構(gòu)示意圖。參見(jiàn)圖2,發(fā)射流媒體的衛(wèi)星201或者采集流媒體的攝像機(jī)202將流媒體傳送至編碼切割裝置203中;編碼切割裝置203對(duì)所接收的流媒體進(jìn)行編碼和封裝,生成TS文件,并采用切片工具將TS文件切割成多個(gè)連續(xù)的、固定長(zhǎng)度的TS小文件得到TS切片文件,同時(shí)生成與TS切片文件相對(duì)應(yīng)的M3U8索引文件;HTTP服務(wù)器204接收并存儲(chǔ)編碼切割裝置203發(fā)送的基于HLS協(xié)議的媒體流:TS切片文件和M3U8索引文件;臺(tái)式電腦205或者智能手機(jī)206從HTTP服務(wù)器204不斷地下載并播放TS切片文件。
[0031]在本實(shí)施例中,可通過(guò)無(wú)線(xiàn)連接方式將媒體播放請(qǐng)求發(fā)送給存儲(chǔ)有TS切片文件和M3U8索引文件的HTTP服務(wù)器,其中所述媒體播放請(qǐng)求為HTTP請(qǐng)求;然后,接收所述HTTP服務(wù)器提供的對(duì)上述媒體播放請(qǐng)求的回復(fù),其中所述回復(fù)包含了與媒體播放請(qǐng)求相對(duì)應(yīng)的基于HLS協(xié)議的媒體流的M3U8索引文件。M3U8索引文件記錄有至少兩條時(shí)間信息及與所述至少兩條時(shí)間信息中的每一條時(shí)間信息對(duì)應(yīng)的TS切片文件的時(shí)間信息(播放長(zhǎng)度)和地址信息(定位所述TS切片文件的URL)。
[0032]步驟S102、根據(jù)所述M3U8索引文件,從HTTP服務(wù)器獲取所述媒體流的各TS切片文件。
[0033]在步驟S102中,首先按照M3U格式和UTF-8字符編碼格式對(duì)M3U8索引文件進(jìn)行解析,確定所述媒體流的各TS切片文件的地址信息;然后向HTTP服務(wù)器發(fā)送TS切片文件獲取請(qǐng)求,其中該請(qǐng)求包括了所有TS切片文件的地址信息;最后接收HTTP服務(wù)器根據(jù)所述請(qǐng)求發(fā)送的各TS切片文件。
[0034]例如,一個(gè)基于HLS協(xié)議的媒體流的M3U8索引文件可以描述為:
[0035]#EXTM3U
[0036]#EXT-X-MEDIA-SEQUENCE:6
[0037]#EXT-X-TARGETDURAT1N:10
[0038]#EXTINF:10,
[0039]http: //live, example, com/1, ts
[0040]#EXTINF:10,
[0041]http: //live, example, com/2, ts
[0042]#EXTINF:10,
[0043]http: //live, example, com/3, ts
[0044]通過(guò)對(duì)上述M3U8索引文件進(jìn)行解析,得出該M3U8索引文件共包括3個(gè)TS切片文件,所述3個(gè)TS切片文件的名稱(chēng)信息分別為:1.ts、2.ts、3.ts,時(shí)間信息(播放長(zhǎng)度)分別為10 秒、10 秒、10 秒,地址信息 URL 分另Ij為:http: //live, example, com/1, ts、http: //live,example, com/2, ts、http: //live, example, com/3, ts。
[0045]步驟S103、將所獲取到的所有的TS切片文件合并轉(zhuǎn)換為一個(gè)本地媒體文件。
[0046]從HTTP服務(wù)器獲取到所有的TS切片文件后,按照M3U8索引文件中的時(shí)間信息將所有的TS切片文件合并為一個(gè)完整TS文件,然后將該完整TS文件轉(zhuǎn)換成本地播放器所支持的播放格式的本地媒體文件。其中,轉(zhuǎn)換過(guò)程可根據(jù)TS封裝格式標(biāo)準(zhǔn)及本地播放器所支持的播放格式標(biāo)準(zhǔn)實(shí)現(xiàn)。例如,可將完整TS文件轉(zhuǎn)換成本地Flash播放器所支持的FLV格式的本地媒體文件。當(dāng)然,本地媒體文件的格式還可以是MPEG、MPG、DAT、AV1、M0V、3GP等為本地播放器所支持的格式。
[0047]步驟S104、利用本地播放器播放所述本地媒體文件。
[0048]在本實(shí)施中,本地播放器為終端上已安裝好的流媒體播放器。
[0049]本發(fā)明第一實(shí)施例,通過(guò)將所獲取到的所有的傳輸流切片文件合并轉(zhuǎn)換為一個(gè)本地媒體文件,利用本地播放器播放本地媒體文件,能夠使得除蘋(píng)果終端外的其它被廣泛使用的終端也能夠播放基于HLS協(xié)議的媒體流。
[0050]圖3-4示出了本發(fā)明的第二實(shí)施例。
[0051]圖3是本發(fā)明第二實(shí)施例提供的一種流媒體播放方法的流程示意圖。參見(jiàn)圖3,該方法包括:
[0052]步驟S301、獲取基于HLS協(xié)議的媒體流的M3U8索引文件。
[0053]與第一實(shí)施例的步驟SlOl相同,這里不再贅述。
[0054]步驟S302、根據(jù)所述M3U8索引文件,從HTTP服務(wù)器、本地存儲(chǔ)器獲取所述媒體流的各TS切片文件。
[0055]圖4是本發(fā)明第二實(shí)施例提供的根據(jù)所述M3U8索引文件,從HTTP服務(wù)器、本地存儲(chǔ)器獲取所述媒體流的各TS切片文件的流程示意圖。參見(jiàn)圖4,步驟S302進(jìn)一步包括:
[0056]子步驟S3021、解析所述M3U8索引文件,確定所述媒體流的各TS切片文件的地址信息和地址信息中所包含的名稱(chēng)信息;
[0057]子步驟S3022、對(duì)本地存儲(chǔ)器進(jìn)行掃描,獲取所述本地存儲(chǔ)器中已下載的TS切片文件,其中已下載的TS切片文件為與所述媒體流的TS切片文件名稱(chēng)相一致的TS切片文件;
[0058]子步驟S3023、根據(jù)所述地址信息,從HTTP服務(wù)器獲取除已下載的TS切片文件之外的其它TS切片文件。
[0059]在子步驟S3023中,可先向HTTP服務(wù)器發(fā)送TS切片文件獲取請(qǐng)求,其中該請(qǐng)求包括了除已下載的TS切片文件之外的其它TS切片文件的地址信息;然后接收HTTP服務(wù)器根據(jù)所述請(qǐng)求發(fā)送的TS切片文件。
[0060]步驟S303、將從HTTP服務(wù)器獲取的各TS切片文件保存至本地存儲(chǔ)器。
[0061]在根據(jù)所述M3U8索引文件,獲取到所述媒體流的各TS切片文件之后,將從HTTP服務(wù)器獲取的各TS切片文件保存至本地存儲(chǔ)器,其中所保存的位置可以是外存(例如,本地磁盤(pán))或內(nèi)存中。由于內(nèi)存通常用來(lái)存儲(chǔ)CPU運(yùn)算所需要的代碼,為了減小內(nèi)存負(fù)擔(dān)、不影響CPU執(zhí)行速度,優(yōu)選的,將所述各TS切片文件保存至本地磁盤(pán)。
[0062]步驟S304、將所獲取到的所有的TS切片文件合并轉(zhuǎn)換為一個(gè)本地媒體文件。
[0063]與第一實(shí)施例的步驟S103相同,這里不再贅述。
[0064]步驟S305、利用本地播放器播放所述本地媒體文件。
[0065]與第一實(shí)施例的步驟S104相同,這里不再贅述。
[0066]在本實(shí)例中,步驟S303和步驟S304-S305是沒(méi)有先后順序關(guān)系的,可先執(zhí)行步驟S304-S305,再執(zhí)行步驟S303,或者先執(zhí)行步驟S304,再執(zhí)行步驟S303,最后執(zhí)行步驟S305。
[0067]本發(fā)明第二實(shí)施例通過(guò)將所獲取到的所有的傳輸流切片文件合并轉(zhuǎn)換為一個(gè)本地媒體文件,利用本地播放器播放本地媒體文件,能夠使得除蘋(píng)果終端外的其它被廣泛使用的終端也能夠支持基于HLS協(xié)議的媒體流的播放;通過(guò)將各傳輸流切片文件保存至本地存儲(chǔ)器,能夠使得后續(xù)在重復(fù)播放HLS媒體時(shí)可無(wú)需再?gòu)腍TTP服務(wù)器獲取傳輸流切片文件,而直接查找本地存儲(chǔ)器中存儲(chǔ)的傳輸流切片文件,這樣可以不必受限于網(wǎng)絡(luò)環(huán)境,節(jié)省上網(wǎng)流量,大大提升了用戶(hù)的視頻觀(guān)看體驗(yàn)。
[0068]圖5示出了本發(fā)明的第三實(shí)施例。
[0069]圖5是本發(fā)明第三實(shí)施例提供的一種流媒體播放裝置的結(jié)構(gòu)示意圖。參見(jiàn)圖5,該裝置包括:索引文件獲取模塊501,用于獲取基于HLS協(xié)議的媒體流的M3U8索引文件;切片文件獲取模塊502,用于根據(jù)所述M3U8索引文件,從HTTP服務(wù)器獲取所述媒體流的各TS切片文件;轉(zhuǎn)換模塊503,用于將所獲取到的所有的TS切片文件合并轉(zhuǎn)換為一個(gè)本地媒體文件;播放模塊504,用于利用本地播放器播放所述本地媒體文件。其中,所述本地媒體文件的格式為所述本地播放器所支持的格式。
[0070]在本實(shí)施例中,索引文件獲取模塊501可通過(guò)無(wú)線(xiàn)連接方式將媒體播放請(qǐng)求發(fā)送給存儲(chǔ)有TS切片文件和M3U8索引文件的HTTP服務(wù)器,其中所述媒體播放請(qǐng)求為HTTP請(qǐng)求;然后,索引文件獲取模塊501接收所述HTTP服務(wù)器提供的對(duì)上述媒體播放請(qǐng)求的回復(fù),其中所述回復(fù)包含了與媒體播放請(qǐng)求相對(duì)應(yīng)的基于HLS協(xié)議的媒體流的M3U8索引文件。M3U8索引文件記錄有至少兩條時(shí)間信息及與所述至少兩條時(shí)間信息中的每一條時(shí)間信息對(duì)應(yīng)的TS切片文件的時(shí)間信息(播放長(zhǎng)度)和地址信息(定位所述TS切片文件的URL)。
[0071]在本實(shí)施例中,切片文件獲取模塊502包括:
[0072]解析子模塊5021,用于首先按照M3U格式和UTF-8字符編碼格式對(duì)M3U8索引文件進(jìn)行解析,確定所述媒體流的各TS切片文件的地址信息;
[0073]獲取子模塊5022,用于根據(jù)所述媒體流的各傳輸流切片文件的地址信息,從HTTP服務(wù)器獲取各傳輸流切片文件。
[0074]具體的,獲取子模塊5022先向HTTP服務(wù)器發(fā)送TS切片文件獲取請(qǐng)求,其中該請(qǐng)求包括了所有TS切片文件的地址信息,而后接收HTTP服務(wù)器根據(jù)所述請(qǐng)求發(fā)送的各TS切片文件。
[0075]在本實(shí)施例中,在切片文件獲取模塊502從HTTP服務(wù)器獲取到所有的TS切片文件后,轉(zhuǎn)換模塊503按照M3U8索引文件記錄的時(shí)間信息將所有的TS切片文件合并為一個(gè)完整TS文件,然后將該完整TS文件轉(zhuǎn)換成本地播放器所支持的播放格式的一個(gè)本地媒體文件。其中,轉(zhuǎn)換過(guò)程可根據(jù)TS封裝格式標(biāo)準(zhǔn)及本地播放器所支持的播放格式標(biāo)準(zhǔn)實(shí)現(xiàn)。例如,轉(zhuǎn)換模塊503可將完整TS文件轉(zhuǎn)換成本地Flash播放器所支持的FLV格式的本地媒體文件。當(dāng)然,本地媒體文件的格式還可以是MPEG、MPG、DAT、AV1、M0V、3GP等為本地播放器所支持的格式。
[0076]本發(fā)明第三實(shí)施例,通過(guò)將所獲取到的所有的傳輸流切片文件合并轉(zhuǎn)換為一個(gè)本地媒體文件,利用本地播放器播放本地媒體文件,能夠使得除蘋(píng)果終端外的其它被廣泛使用的終端也能夠支持基于HLS協(xié)議的媒體流的播放。
[0077]圖6示出了本發(fā)明的第四實(shí)施例。
[0078]圖6是本發(fā)明第四實(shí)施例提供的一種流媒體播放裝置的結(jié)構(gòu)示意圖。參見(jiàn)圖6,該裝置包括:索引文件獲取模塊601,用于獲取基于HLS協(xié)議的媒體流的M3U8索引文件;切片文件獲取模塊602,用于根據(jù)所述M3U8索引文件,從HTTP服務(wù)器、本地存儲(chǔ)器獲取所述媒體流的各TS切片文件;存儲(chǔ)模塊603,用于將切片文件獲取模塊602從HTTP服務(wù)器獲取的各TS切片文件保存至本地存儲(chǔ)器;轉(zhuǎn)換模塊604,用于將所獲取到的所有的TS切片文件合并轉(zhuǎn)換為一個(gè)本地媒體文件;播放模塊605,用于利用本地播放器播放所述本地媒體文件。其中,所述本地媒體文件的格式為所述本地播放器所支持的格式。
[0079]在本實(shí)施例中,索引文件獲取模塊601與第三實(shí)施例中的索引文件獲取模塊501的功能相同,轉(zhuǎn)換模塊604與第三實(shí)施例中的轉(zhuǎn)換模塊503的功能相同,播放模塊605與第三實(shí)施例中的播放模塊504的功能相同,這里均不再做詳細(xì)贅述。
[0080]在本實(shí)施例中,切片文件獲取模塊602包括:
[0081]解析子模塊6021,用于解析所述M3U8索引文件,確定所述媒體流的各TS切片文件的地址信息和地址信息中所包含的名稱(chēng)信息;
[0082]第一獲取子模塊6022,用于對(duì)本地存儲(chǔ)器進(jìn)行掃描,獲取所述本地存儲(chǔ)器中已下載的TS切片文件,其中已下載的TS切片文件為與所述媒體流的TS切片文件名稱(chēng)相一致的TS切片文件;
[0083]第二獲取子模塊6023,用于根據(jù)所述地址信息,從HTTP服務(wù)器獲取除已下載的TS切片文件之外的其它TS切片文件。
[0084]具體的,第二獲取子模塊6023可先向HTTP服務(wù)器發(fā)送TS切片文件獲取請(qǐng)求,其中該請(qǐng)求包括了除已下載的TS切片文件之外的其它TS切片文件的地址信息,然后接收HTTP服務(wù)器根據(jù)所述請(qǐng)求發(fā)送的TS切片文件。
[0085]在本實(shí)施例中,存儲(chǔ)模塊603將從HTTP服務(wù)器獲取的各TS切片文件保存至本地存儲(chǔ)器,其中所保存的位置可以是外存(例如,本地磁盤(pán))或內(nèi)存中。由于內(nèi)存通常用來(lái)存儲(chǔ)CPU運(yùn)算所需要的代碼,為了減小內(nèi)存負(fù)擔(dān)、不影響CPU執(zhí)行速度,優(yōu)選的,存儲(chǔ)模塊603將所述各TS切片文件保存至本地磁盤(pán)。
[0086]本發(fā)明第四實(shí)施例通過(guò)將所獲取到的所有的傳輸流切片文件合并轉(zhuǎn)換為一個(gè)本地媒體文件,利用本地播放器播放所述本地媒體文件,能夠使得除蘋(píng)果終端外的其它被廣泛使用的終端也能夠支持基于HLS協(xié)議的媒體流的播放;通過(guò)將各傳輸流切片文件保存至本地存儲(chǔ)器,能夠使得后續(xù)在重復(fù)播放HLS媒體時(shí)可無(wú)需再?gòu)腍TTP服務(wù)器獲取傳輸流切片文件,而直接查找本地存儲(chǔ)器中存儲(chǔ)的傳輸流切片文件,這樣可以不必受限于網(wǎng)絡(luò)環(huán)境,節(jié)省上網(wǎng)流量,大大提升了用戶(hù)的視頻觀(guān)看體驗(yàn)。
[0087]以上實(shí)施例提供的技術(shù)方案中的全部或部分內(nèi)容可以通過(guò)軟件編程實(shí)現(xiàn),其軟件程序存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)例如:計(jì)算機(jī)中的硬盤(pán)、光盤(pán)或軟盤(pán)。
[0088]以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種流媒體播放方法,其特征在于,所述方法包括: 獲取媒體流的索引文件,其中所述媒體流包括索引文件和至少兩個(gè)切片文件,所述索引文件記錄有所述至少兩個(gè)切片文件中各切片文件的時(shí)間信息和地址信息; 根據(jù)所述索引文件獲取所述媒體流的各切片文件; 將所獲取到的所有的切片文件合并轉(zhuǎn)換為一個(gè)本地媒體文件; 利用本地播放器播放所述本地媒體文件; 其中,所述本地媒體文件的格式為所述本地播放器所支持的格式。
2.根據(jù)權(quán)利要求1所述的流媒體播放方法,其特征在于,所述將所獲取到的所有的切片文件合并轉(zhuǎn)換為一個(gè)本地媒體文件的步驟包括: 按照所述時(shí)間信息,將所獲取到的所有的切片文件合并為一個(gè)完整文件; 將所述完整文件轉(zhuǎn)換成所述本地播放器所支持的播放格式的本地媒體文件。
3.根據(jù)權(quán)利要求1所述的流媒體播放方法,其特征在于,獲取媒體流的索引文件的步驟包括:向服務(wù)器發(fā)送媒體播放請(qǐng)求;從所述服務(wù)器獲取媒體流的索引文件。
4.根據(jù)權(quán)利要求3所述的流媒體播放方法,其特征在于,根據(jù)所述索引文件,獲取所述媒體流的各切片文件的步驟包括: 解析所述索引文件,確定所述媒體流的各切片文件的地址信息; 根據(jù)所述媒體流的各切片文件的地址信息,從所述服務(wù)器獲取各切片文件。
5.根據(jù)權(quán)利要求3所述的流媒體播放方法,其特征在于,根據(jù)所述索引文件,獲取所述媒體流的各切片文件的步驟包括: 解析所述索引文件,確定所述媒體流的各切片文件的地址信息和所述地址信息中所包含的名稱(chēng)信息; 對(duì)本地存儲(chǔ)器進(jìn)行掃描,獲取所述本地存儲(chǔ)器中已下載的切片文件,其中已下載的切片文件為與所述媒體流的切片文件名稱(chēng)相一致的切片文件; 根據(jù)所述地址信息,從所述服務(wù)器獲取除已下載的切片文件之外的其它切片文件。
6.根據(jù)權(quán)利要求5所述的流媒體播放方法,其特征在于,根據(jù)所述索引文件,獲取所述媒體流的各切片文件的步驟之后還包括:將從所述服務(wù)器獲取的各切片文件保存至本地存儲(chǔ)器。
7.根據(jù)權(quán)利要求1所述的流媒體播放方法,其特征在于,所述媒體流為基于超文本傳輸協(xié)議實(shí)時(shí)流協(xié)議的媒體流,所述索引文件為M3U8索引文件,所述切片文件為傳輸流切片文件。
8.根據(jù)權(quán)利要求1所述的流媒體播放方法,其特征在于,所述本地媒體文件的格式為FLV格式,所述本地播放器為Flash播放器。
9.一種流媒體播放裝置,其特征在于,所述裝置包括: 索引文件獲取模塊,用于獲取媒體流的索引文件,其中所述媒體流包括索引文件和至少兩個(gè)切片文件,所述索引文件記錄有所述至少兩個(gè)切片文件中各切片文件的時(shí)間信息和地址信息; 切片文件獲取模塊,用于根據(jù)所述索引文件獲取所述媒體流的各切片文件; 轉(zhuǎn)換模塊,用于將所獲取到的所有的切片文件合并轉(zhuǎn)換為一個(gè)本地媒體文件; 播放模塊,用于利用本地播放器播放所述本地媒體文件; 其中,所述本地媒體文件的格式為所述本地播放器所支持的格式。
10.根據(jù)權(quán)利要求9所述的流媒體播放裝置,其特征在于,所述轉(zhuǎn)換模塊具體用于: 按照所述時(shí)間信息,將所獲取到的所有的切片文件合并為一個(gè)完整文件; 將所述完整文件轉(zhuǎn)換成所述本地播放器所支持的播放格式的本地媒體文件。
11.根據(jù)權(quán)利要求9所述的流媒體播放裝置,其特征在于,所述索引文件獲取模塊具體用于:向服務(wù)器發(fā)送媒體播放請(qǐng)求;從所述服務(wù)器獲取媒體流的索引文件。
12.根據(jù)權(quán)利要求11所述的流媒體播放裝置,其特征在于,所述切片文件獲取模塊包括: 解析子模塊,用于解析所述索引文件,確定所述媒體流的各切片文件的地址信息; 獲取子模塊,用于根據(jù)所述媒體流的各切片文件的地址信息,從所述服務(wù)器獲取各切片文件。
13.根據(jù)權(quán)利要求11所述的流媒體播放裝置,其特征在于,所述切片文件獲取模塊包括: 解析子模塊,用于解析所述索引文件,確定所述媒體流的各切片文件的地址信息和所述地址信息中所包含的名稱(chēng)信息; 第一獲取子模塊,用于對(duì)本地存儲(chǔ)器進(jìn)行掃描,獲取所述本地存儲(chǔ)器中已下載的切片文件,其中已下載的切片文件為與所述媒體流的切片文件名稱(chēng)相一致的切片文件; 第二獲取子模塊,用于根據(jù)所述地址信息,從所述服務(wù)器獲取除已下載的切片文件之外的其它切片文件。
14.根據(jù)權(quán)利要求13所述的流媒體播放裝置,其特征在于,所述裝置還包括存儲(chǔ)模塊,用于將所述切片文件獲取模塊獲取到的各切片文件保存至所述本地存儲(chǔ)器。
15.根據(jù)權(quán)利要求9所述的流媒體播放裝置,其特征在于,所述媒體流為基于超文本傳輸協(xié)議實(shí)時(shí)流協(xié)議的媒體流,所述索引文件為M3U8索引文件,所述切片文件為傳輸流切片文件。
16.根據(jù)權(quán)利要求9所述的流媒體播放裝置,其特征在于,所述本地媒體文件的格式為FLV格式,所述本地播放器為Flash播放器。
【文檔編號(hào)】H04L29/06GK104243430SQ201310246666
【公開(kāi)日】2014年12月24日 申請(qǐng)日期:2013年6月20日 優(yōu)先權(quán)日:2013年6月20日
【發(fā)明者】周洪權(quán) 申請(qǐng)人:騰訊科技(深圳)有限公司