一種流媒體的處理方法及裝置的制造方法
【專利摘要】本發(fā)明實(shí)施例提供一種流媒體的處理方法及裝置,其中的方法包括:在播放流媒體文件的過程中,接收來自用戶的時(shí)移指令;其中,所述時(shí)移指令中包括目標(biāo)時(shí)間點(diǎn);根據(jù)所述流媒體文件對(duì)應(yīng)的切片索引文件,確定所述目標(biāo)時(shí)間點(diǎn)對(duì)應(yīng)的傳輸流TS切片;確定所述TS切片中與所述目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀的位置信息;從所述關(guān)鍵幀的位置信息播放所述TS切片。本發(fā)明實(shí)施例可以直接從與時(shí)移目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀開始播放TS切片,因此可以提高流媒體文件播放過程中的時(shí)移準(zhǔn)確度。
【專利說明】
一種流媒體的處理方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明實(shí)施例涉及流媒體技術(shù)領(lǐng)域,尤其涉及一種流媒體的處理方法及裝置。
【背景技術(shù)】
[0002]隨著流媒體技術(shù)和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,用戶可以通過網(wǎng)絡(luò)在終端設(shè)備上觀看各種網(wǎng)絡(luò)視頻,網(wǎng)絡(luò)視頻已經(jīng)成為人們?nèi)粘I钪胁豢苫蛉钡囊徊糠帧?br>[0003]目前,視頻網(wǎng)站通常采用HLS (HTTP Live Streaming,動(dòng)態(tài)碼率自適應(yīng)技術(shù))流媒體傳輸協(xié)議來傳輸網(wǎng)絡(luò)視頻文件。通過HLS協(xié)議在服務(wù)器端將容量巨大的網(wǎng)絡(luò)視頻文件進(jìn)行分段,分割為數(shù)量眾多的TS(Transport Stream,傳輸流)切片以在互聯(lián)網(wǎng)中進(jìn)行傳輸,并且生成m3u8索引文件記錄每個(gè)TS切片的順序和時(shí)長(zhǎng),通過該索引文件來控制TS切片的下載和播放。通常,TS切片的時(shí)長(zhǎng)通常是固定的或者相等的,例如,某個(gè)總時(shí)長(zhǎng)為10分鐘的網(wǎng)絡(luò)視頻文件,以10秒為TS切片的時(shí)長(zhǎng)單位,該網(wǎng)絡(luò)視頻文件可以被分割為60個(gè)TS切片。
[0004]用戶在終端設(shè)備上觀看網(wǎng)絡(luò)視頻時(shí),通常會(huì)使用時(shí)移功能,也即通過拖拽播放進(jìn)度條,要求從指定的時(shí)間點(diǎn)開始播放視頻內(nèi)容。例如,以上述10分鐘的網(wǎng)絡(luò)視頻為例,用戶拖拽播放進(jìn)度條至25秒的位置,則終端設(shè)備會(huì)向服務(wù)器請(qǐng)求第25秒對(duì)應(yīng)的TS切片,然而,由于HLS是以切片為傳輸單位的,所以上述情形下服務(wù)器向終端設(shè)備返回的是從第20秒開始的切片,終端設(shè)備將從第20秒的位置開始播放。因此,現(xiàn)有的時(shí)移方案存在一定的誤差,無法做到精準(zhǔn)時(shí)移。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種流媒體的處理方法及裝置,用以解決現(xiàn)有的時(shí)移方案存在一定的誤差,無法做到精準(zhǔn)時(shí)移的缺陷,以提高時(shí)移的準(zhǔn)確度。
[0006]本發(fā)明實(shí)施例提供一種流媒體的處理方法,包括:
[0007]在播放流媒體文件的過程中,接收來自用戶的時(shí)移指令;其中,所述時(shí)移指令中包括目標(biāo)時(shí)間點(diǎn);
[0008]根據(jù)所述流媒體文件對(duì)應(yīng)的切片索引文件,確定所述目標(biāo)時(shí)間點(diǎn)對(duì)應(yīng)的傳輸流TS切片;
[0009]確定所述TS切片中與所述目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀的位置信息;
[0010]從所述關(guān)鍵幀的位置信息播放所述TS切片。
[0011]本發(fā)明實(shí)施例提供一種流媒體的處理裝置,包括:
[0012]指令接收模塊,用于在播放流媒體文件的過程中,接收來自用戶的時(shí)移指令;其中,所述時(shí)移指令中包括目標(biāo)時(shí)間點(diǎn);
[0013]切片確定模塊,用于根據(jù)所述流媒體文件對(duì)應(yīng)的切片索引文件,確定所述目標(biāo)時(shí)間點(diǎn)對(duì)應(yīng)的傳輸流TS切片;
[0014]位置確定模塊,用于確定所述TS切片中與所述目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀的位置信息;及
[0015]媒體播放模塊,用于從所述關(guān)鍵幀的位置信息播放所述TS切片。
[0016]本發(fā)明實(shí)施例提供的流媒體的處理方法及裝置,按照用戶指定的時(shí)移時(shí)間點(diǎn),根據(jù)切片索引文件,確定對(duì)應(yīng)的TS切片以及該TS切片中與所述時(shí)移時(shí)間點(diǎn)最接近的關(guān)鍵幀的位置信息,進(jìn)而直接從該位置信息開始播放TS切片。相對(duì)于現(xiàn)有技術(shù)中從切片頭開始播放,由于本發(fā)明實(shí)施例可以直接從與時(shí)移目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀開始播放TS切片,因此可以提高流媒體文件播放過程中的時(shí)移準(zhǔn)確度。此外,通過本發(fā)明實(shí)施例,可以直接定位到與目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀,由于關(guān)鍵幀能夠獨(dú)立解碼進(jìn)行播放,不用從TS切片的開頭進(jìn)行解碼,從而提高了解碼效率。
【附圖說明】
[0017]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0018]圖1示出了本發(fā)明的一種流媒體的處理方法實(shí)施例一的步驟流程圖;
[0019]圖2示出了本發(fā)明的一種流媒體的處理方法實(shí)施例二的步驟流程圖;
[0020]圖3示出了本發(fā)明的一種流媒體的處理方法實(shí)施例三的步驟流程圖;及
[0021]圖4示出了本發(fā)明的一種流媒體的處理裝置實(shí)施例的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0022]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0023]實(shí)施例一
[0024]參照?qǐng)D1,示出了本發(fā)明的一種流媒體的處理方法實(shí)施例一的步驟流程圖,具體可以包括:
[0025]步驟101、在播放流媒體文件的過程中,接收來自用戶的時(shí)移指令;其中,所述時(shí)移指令中包括目標(biāo)時(shí)間點(diǎn);
[0026]本發(fā)明實(shí)施例適用于任何可以播放流媒體文件的終端設(shè)備,所述終端設(shè)備可以包括蜂窩電話、智能電話、膝上型計(jì)算機(jī)、PC (personal computer,個(gè)人電腦)、電子書終端、數(shù)字廣播終端、PDA (Personal Digital Assistant,個(gè)人電子助理)、智能電視、便攜式多媒體播放器或?qū)Ш较到y(tǒng)等,可以理解,本發(fā)明實(shí)施例對(duì)于具體的終端設(shè)備不加以限制。其中,所述流媒體是指采用流式傳輸?shù)姆绞皆诰W(wǎng)絡(luò)中播放的音頻/視頻等媒體格式指采用流式傳輸?shù)姆绞皆诰W(wǎng)絡(luò)中播放的媒體格式,如音頻、視頻或多媒體文件,為了便于說明,本發(fā)明均以視頻為例進(jìn)行描述,其它格式的應(yīng)用場(chǎng)景相互參照即可。
[0027]用戶在使用終端設(shè)備播放流媒體文件的過程中,可以發(fā)送時(shí)移指令,也即拖拽播放進(jìn)度條,要求從指定的目標(biāo)時(shí)間點(diǎn)開始播放流媒體文件內(nèi)容。
[0028]步驟102、根據(jù)所述流媒體文件對(duì)應(yīng)的切片索引文件,確定所述目標(biāo)時(shí)間點(diǎn)對(duì)應(yīng)的傳輸流TS切片;
[0029]根據(jù)HLS協(xié)議,流媒體文件是由多個(gè)TS切片按時(shí)間順序組成的,切片索引文件(m3u8索引文件)中記錄了每個(gè)TS切片的順序和時(shí)長(zhǎng)。可以通過m3u8索引文件獲取流媒體文件的總時(shí)長(zhǎng)和每個(gè)TS切片的時(shí)長(zhǎng),通常TS切片的時(shí)長(zhǎng)是固定或相等的,因此,根據(jù)流媒體文件的總時(shí)長(zhǎng)以及每個(gè)TS切片的時(shí)長(zhǎng)可以確定所述目標(biāo)時(shí)間點(diǎn)對(duì)應(yīng)的TS切片。
[0030]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述切片索引文件中可以包括:TS切片的時(shí)長(zhǎng)信息;
[0031]所述根據(jù)切片索引文件,確定所述時(shí)移時(shí)間點(diǎn)對(duì)應(yīng)的傳輸流TS切片的步驟,具體可以包括:
[0032]根據(jù)所述TS切片的時(shí)長(zhǎng)信息,確定TS切片的開始時(shí)間信息;
[0033]根據(jù)所述TS切片的開始時(shí)間信息,確定所述時(shí)移時(shí)間點(diǎn)對(duì)應(yīng)的TS切片。
[0034]具體地,以如下示出的一種m3u8索引文件為例說明上述確定目標(biāo)時(shí)間點(diǎn)對(duì)應(yīng)的TS切片的過程:
[0035]#EXTM3U
[0036]#EXT-X-TARGETDURAT1N:10
[0037]SEXT-X-MEDIA-SEQUENCE:0
[0038]#EXTINF:10,
[0039]https://priv.example, com/fileSequence0.ts
[0040]#EXTINF:10,
[0041 ] https://priv.example, com/fileSequencel.ts
[0042]#EXTINF:10,
[0043]https://priv.example, com/fileSequence2.ts
[0044]其中,EXTM3U為文件頭,起標(biāo)識(shí)作用;EXT-X_VERS10N表示協(xié)議版本;EXT-X-TARGETDURAT1N表示每個(gè)TS切片的最大的時(shí)長(zhǎng);EXT-X-MEDIA-SEQUENCE表示當(dāng)前m3u8索引文件中第一個(gè)TS切片的序號(hào),每個(gè)TS切片在m3u8索引文件中都有唯一固定的序號(hào);EXTINF 表不 TS 切片的時(shí)長(zhǎng)信息;https://priv.example, com/f ileSequence0.ts 表示序號(hào)為0的TS切片對(duì)應(yīng)的URL (Uniform Resource Locator,統(tǒng)一資源定位符);在上述m3u8索引文件中包括三個(gè)TS切片,序號(hào)分別為0、1、2。
[0045]在上述應(yīng)用示例中,每個(gè)TS切片的時(shí)長(zhǎng)為10秒,則可以計(jì)算出每個(gè)TS切片的開始時(shí)間,例如,第一個(gè)TS切片開始時(shí)間為O秒,那么第二個(gè)TS切片開始的時(shí)間為10秒,第三個(gè)TS切片開始時(shí)間為30秒,假設(shè)目標(biāo)時(shí)間點(diǎn)為25秒,可以確定目標(biāo)時(shí)間點(diǎn)在第二個(gè)TS切片中。
[0046]步驟103、確定所述TS切片中與所述目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀的位置信息;
[0047]步驟104、從所述關(guān)鍵幀的位置信息播放所述TS切片。
[0048]在具體應(yīng)用中,視頻文件由I幀(關(guān)鍵幀)、P幀和B幀等組成,由于視頻播放前需要先進(jìn)行視頻幀的解碼,而只有I幀能夠獨(dú)立進(jìn)行解碼和播放,當(dāng)用戶請(qǐng)求的目標(biāo)時(shí)間點(diǎn)對(duì)應(yīng)的數(shù)據(jù)幀不是I幀則無法播放,因此,需要確定所述TS切片中與所述目標(biāo)時(shí)間點(diǎn)最接近的I幀的位置信息。
[0049]為了能夠快速定位到目標(biāo)時(shí)間點(diǎn)最接近的I幀,本發(fā)明實(shí)施例在服務(wù)器端對(duì)流媒體文件進(jìn)行切片并生成m3u8索引文件的過程中,除了記錄分片的時(shí)長(zhǎng)信息,還將所有I幀的起始時(shí)間信息和偏移量信息存儲(chǔ)到m3u8索引文件中。終端設(shè)備可以從服務(wù)器下載m3u8索引文件,在對(duì)m3u8索引文件進(jìn)行解析的過程中,就可以得到每個(gè)TS切片中I幀的起始時(shí)間信息和偏移量信息。
[0050]在本發(fā)明的一種應(yīng)用示例中,通過在m3u8索引文件的每個(gè)切片描述字段“EXTINF”后面,增加一個(gè)擴(kuò)展字段“KEYFRAME”來定義I幀的起始時(shí)間信息和偏移量信息。具體地,參見如下示出了本發(fā)明的一種m3u8索引文件的應(yīng)用示例:
[0051]#EXTM3U
[0052]#EXT-X-VERS1N:3
[0053]#EXT-X-TARGETDURAT1N:10
[0054]SEXT-X-MEDIA-SEQUENCE:0
[0055]#EXTINF:10,
[0056]#EXT-X-STREAM-1NF:KEYFRAME =”0,56 ;3.32,153224 ;5.94,683546”
[0057]https://priv.example, com/fileSequence0.ts
[0058]#EXTINF:10,
[0059]#EXT-X-STREAM-1NF:KEYFRAME =”0,72 ;4.89,124532 ;6.82,356820”
[0060]https://priv.example, com/fileSequencel.ts
[0061]其中,KEYFRAME為本發(fā)明實(shí)施例定義的擴(kuò)展字段,用于標(biāo)識(shí)I幀的起始時(shí)間信息和偏移量信息;例如,可以定義 KEYFRAME = “time,offset ;time,offset ; 其中,time為I幀的起始時(shí)間信息,offset為偏移量信息。在上述示例中,序號(hào)為O的TS切片中包括3個(gè)I幀,第一個(gè)I幀的起始時(shí)間為O秒,偏移量為56 ;第二個(gè)I幀的起始時(shí)間為4.89秒,偏移量為124532 ;第三個(gè)I幀的起始時(shí)間為6.82秒,偏移量為356820。
[0062]在本發(fā)明的一種應(yīng)用示例中,在終端設(shè)初始化時(shí),可以從服務(wù)器下載待播放流媒體文件對(duì)應(yīng)的m3u8索引文件,當(dāng)終端設(shè)備接收到來自用戶的時(shí)移指令時(shí),通過解析該m3u8索引文件,確定時(shí)移指令中目標(biāo)時(shí)間點(diǎn)對(duì)應(yīng)的TS切片,以及該TS切片中與目標(biāo)時(shí)間點(diǎn)最近的I幀的起始時(shí)間信息和偏移量信息,即可從該I幀所在位置播放所述TS切片。
[0063]在本發(fā)明的一種應(yīng)用示例中,假設(shè)流媒體文件總時(shí)長(zhǎng)為10分鐘,TS切片為10秒,目標(biāo)時(shí)間點(diǎn)為25秒,則根據(jù)上述m3u8索引文件,找到目標(biāo)時(shí)間點(diǎn)對(duì)應(yīng)的TS切片為序號(hào)為I的TS切片(fileSequencel.ts),該TS切片的起始時(shí)間為20秒,該TS切片中包括三個(gè)I幀,其中第二個(gè)I幀的起始時(shí)間為4.89秒,也即第二個(gè)I幀的起始時(shí)間為24.89秒,最接近目標(biāo)時(shí)間點(diǎn),因此,從該第二個(gè)I幀所在位置開始播放TS切片。通過本發(fā)明實(shí)施例,可以直接定位到與目標(biāo)時(shí)間點(diǎn)最接近的I幀,不用從fileSequencel.ts切片的開頭,也即第20秒開始解析播放TS切片,提高了時(shí)移精準(zhǔn)度和時(shí)移效率。
[0064]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述方法還可以包括:在從所述關(guān)鍵幀的位置信息播放所述TS切片之前,檢測(cè)是否已從服務(wù)器下載所述TS切片,若未下載,則向服務(wù)器請(qǐng)求下載所述關(guān)鍵幀的位置信息之后的TS切片。
[0065]在具體應(yīng)用中,終端設(shè)備可以向服務(wù)器發(fā)送HTTP (HyperText TransferProtocol,超文本傳輸協(xié)議)請(qǐng)求,請(qǐng)求下載所述關(guān)鍵幀的位置信息之后的TS切片。HTTP協(xié)議支持只請(qǐng)求某個(gè)資源的某一部分,具體地,可以在HTTP請(qǐng)求中添加Range信息,Range信息用于表示請(qǐng)求的資源范圍,在本發(fā)明實(shí)施例中,請(qǐng)求的資源范圍為關(guān)鍵幀的位置信息之后的TS切片,由此,從服務(wù)器下載的數(shù)據(jù)就是用戶時(shí)移的目標(biāo)時(shí)間點(diǎn)對(duì)應(yīng)的數(shù)據(jù),終端設(shè)備可以直接從該位置開始播放,這樣不但提高了時(shí)移的精確程度,還減小了服務(wù)器負(fù)擔(dān),不用傳輸用戶不希望得到的數(shù)據(jù)。
[0066]綜上,本發(fā)明實(shí)施例按照用戶指定的時(shí)移時(shí)間點(diǎn),根據(jù)切片索引文件,確定對(duì)應(yīng)的TS切片以及該TS切片中與所述時(shí)移時(shí)間點(diǎn)最接近的關(guān)鍵幀的位置信息,可以直接從該位置開始播放TS切片。本發(fā)明實(shí)施例可以直接從與時(shí)移目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀開始播放TS切片,相對(duì)于現(xiàn)有技術(shù)中從切片頭開始播放,可以提高流媒體文件播放過程中的時(shí)移準(zhǔn)確度。此外,通過本發(fā)明實(shí)施例,可以直接定位到與目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀,由于關(guān)鍵幀能夠獨(dú)立解碼進(jìn)行播放,不用從TS切片的開頭進(jìn)行解碼,從而提高了解碼效率。
[0067]實(shí)施例二
[0068]參照?qǐng)D2,示出了本發(fā)明的一種流媒體的處理方法實(shí)施例二的步驟流程圖,具體可以包括:
[0069]步驟201、在播放流媒體文件的過程中,接收來自用戶的時(shí)移指令;其中,所述時(shí)移指令中包括目標(biāo)時(shí)間點(diǎn);
[0070]步驟202、根據(jù)所述流媒體文件對(duì)應(yīng)的切片索引文件,確定所述目標(biāo)時(shí)間點(diǎn)對(duì)應(yīng)的傳輸流TS切片;
[0071]步驟203、解析所述切片索引文件,得到所述TS切片中所有關(guān)鍵幀的起始時(shí)間信息和偏移量信息;
[0072]步驟204、確定與所述目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀對(duì)應(yīng)的起始時(shí)間信息和偏移量信息;
[0073]在本發(fā)明的一種應(yīng)用示例中,終端設(shè)備對(duì)流媒體文件進(jìn)行解碼和播放,在解析m3u8索引文件過程中,當(dāng)解析到#EXT-X-STREAM-1NF:KEYFRAME字段時(shí),可以將每一個(gè)I幀對(duì)應(yīng)的起始時(shí)間信息和偏移量信息都保存到數(shù)據(jù)結(jié)構(gòu)列表(list)中,每一個(gè)TS切片都對(duì)應(yīng)一個(gè)list,以在執(zhí)行時(shí)移操作時(shí)可以快速定位到I幀的位置,不用每次時(shí)移時(shí)都要解析m3u8索引文件,從而提高時(shí)移效率。當(dāng)用戶要做時(shí)移操作時(shí),按照用戶時(shí)移的目標(biāo)時(shí)間點(diǎn),根據(jù)m3u8索引文件,找到目標(biāo)時(shí)間點(diǎn)對(duì)應(yīng)的TS切片,然后找到該切片對(duì)應(yīng)的list,根據(jù)目標(biāo)時(shí)間點(diǎn)找到最接近的I幀的起始時(shí)間信息和偏移量信息,即可從該I幀所在位置開始播放流媒體文件。
[0074]步驟205、從與所述目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀所在位置開始播放所述TS切片。
[0075]本發(fā)明實(shí)施例通過解析切片索引文件,得到TS切片中所有關(guān)鍵幀的起始時(shí)間信息和偏移量信息,確定與時(shí)移目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀對(duì)應(yīng)的起始時(shí)間信息和偏移量信息,從而可以直接從與時(shí)移目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀開始播放TS切片,相對(duì)于現(xiàn)有技術(shù)中從切片頭開始播放,可以提高流媒體文件播放過程中的時(shí)移準(zhǔn)確度。
[0076]實(shí)施例三
[0077]上述實(shí)施例一和實(shí)施例二均以終端設(shè)備的角度進(jìn)行說明,為了更清楚的描述本發(fā)明的流媒體的處理方法,下面結(jié)合實(shí)際應(yīng)用場(chǎng)景,從服務(wù)器側(cè)說明本發(fā)明的具體實(shí)現(xiàn)過程。
[0078]在服務(wù)器端,本發(fā)明實(shí)施例實(shí)現(xiàn)了對(duì)流媒體文件的轉(zhuǎn)碼和封裝,以及在此過程中,根據(jù)自定義的協(xié)議加入了 I幀的描述信息,包括I幀的起始時(shí)間信息和偏移量信息,以使客戶端播放流媒體文件時(shí),可以提高時(shí)移的精準(zhǔn)度。
[0079]參照?qǐng)D3,示出了本發(fā)明的一種流媒體的處理方法實(shí)施例三的步驟流程圖,應(yīng)用于服務(wù)器,具體可以包括:
[0080]步驟301、在對(duì)所述流媒體文件進(jìn)行封裝之前,確定TS切片中關(guān)鍵幀的起始時(shí)間信息和偏移量信息;
[0081]具體地,在服務(wù)器端進(jìn)行視頻轉(zhuǎn)碼時(shí),可以記錄視頻的每一個(gè)TS切片中I幀的起始時(shí)間信息和偏移量信息。
[0082]步驟302、將所述TS切片中關(guān)鍵幀的起始時(shí)間信息和偏移量信息存儲(chǔ)在切片索引文件中。
[0083]具體地,在生成m3u8索引文件時(shí),將所有I幀的起始時(shí)間信息和偏移量信息集成到m3u8索引文件中,定義私有協(xié)議,也即增加擴(kuò)展字段KEYFRAME = “time,offset ;time,offset ;...”,其中,time為I幀的起始時(shí)間信息,offset為偏移量信息。
[0084]本發(fā)明實(shí)施例在服務(wù)器側(cè)對(duì)流媒體文件進(jìn)行轉(zhuǎn)碼的過程中,在生成的m3u8索引文件中標(biāo)注每一個(gè)分片內(nèi)I幀的起始時(shí)間信息和偏移量信息,以使終端設(shè)備執(zhí)行時(shí)移操作時(shí),可以根據(jù)該m3u8索引文件直接定位到對(duì)應(yīng)的I幀進(jìn)行播放,從而提高時(shí)移的準(zhǔn)確度。
[0085]裝置實(shí)施例
[0086]參照?qǐng)D4,示出了本發(fā)明的一種流媒體的處理裝置實(shí)施例的結(jié)構(gòu)框圖,具體可以包括:
[0087]指令接收模塊410,用于在播放流媒體文件的過程中,接收來自用戶的時(shí)移指令;其中,所述時(shí)移指令中包括目標(biāo)時(shí)間點(diǎn);
[0088]切片確定模塊420,用于根據(jù)所述流媒體文件對(duì)應(yīng)的切片索引文件,確定所述目標(biāo)時(shí)間點(diǎn)對(duì)應(yīng)的傳輸流TS切片;
[0089]位置確定模塊430,用于確定所述TS切片中與所述目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀的位置信息;及
[0090]媒體播放模塊440,用于從所述關(guān)鍵幀的位置信息播放所述TS切片。
[0091]在本發(fā)明的一種優(yōu)選實(shí)施例中,所述切片索引文件中可以包括:TS切片的時(shí)長(zhǎng)信息;
[0092]所述切片確定模塊420,具體可以包括:
[0093]時(shí)間確定子模塊,用于根據(jù)所述TS切片的時(shí)長(zhǎng)信息,確定TS切片的開始時(shí)間信息;
[0094]切片確定子模塊,用于根據(jù)所述TS切片的開始時(shí)間信息,確定所述時(shí)移時(shí)間點(diǎn)對(duì)應(yīng)的TS切片。
[0095]在本發(fā)明的另一種優(yōu)選實(shí)施例中,所述切片索引文件中可以包括:TS切片中關(guān)鍵幀的起始時(shí)間信息和偏移量信息;
[0096]所述位置確定模塊430,具體可以包括:
[0097]解析子模塊,用于解析所述切片索引文件,得到所述TS切片中所有關(guān)鍵幀的起始時(shí)間信息和偏移量信息;
[0098]確定子模塊,用于確定與所述目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀對(duì)應(yīng)的起始時(shí)間信息和偏移量信息。
[0099]在本發(fā)明的又一種優(yōu)選實(shí)施例中,所述裝置還可以包括:
[0100]下載模塊,用于在從所述關(guān)鍵幀的位置信息播放所述TS切片之前,檢測(cè)是否已從服務(wù)器下載所述TS切片,若未下載,則向服務(wù)器請(qǐng)求下載所述關(guān)鍵幀的位置信息之后的TS切片。
[0101]在本發(fā)明的再一種優(yōu)選實(shí)施例中,所述裝置還可以包括:
[0102]關(guān)鍵幀信息確定模塊,用于在對(duì)所述流媒體文件進(jìn)行封裝之前,確定TS切片中關(guān)鍵幀的起始時(shí)間信息和偏移量信息;
[0103]關(guān)鍵幀信息存儲(chǔ)模塊,用于將所述TS切片中關(guān)鍵幀的起始時(shí)間信息和偏移量信息存儲(chǔ)在切片索引文件中。
[0104]以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動(dòng)的情況下,即可以理解并實(shí)施。
[0105]通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件。基于這樣的理解,上述技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
[0106]最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(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ì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
【主權(quán)項(xiàng)】
1.一種流媒體的處理方法,其特征在于,包括: 在播放流媒體文件的過程中,接收來自用戶的時(shí)移指令;其中,所述時(shí)移指令中包括目標(biāo)時(shí)間點(diǎn); 根據(jù)所述流媒體文件對(duì)應(yīng)的切片索引文件,確定所述目標(biāo)時(shí)間點(diǎn)對(duì)應(yīng)的傳輸流TS切片; 確定所述TS切片中與所述目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀的位置信息; 從所述關(guān)鍵幀的位置信息播放所述TS切片。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述切片索引文件中包括:TS切片的時(shí)長(zhǎng)信息; 所述根據(jù)切片索引文件,確定所述時(shí)移時(shí)間點(diǎn)對(duì)應(yīng)的傳輸流TS切片的步驟,包括: 根據(jù)所述TS切片的時(shí)長(zhǎng)信息,確定TS切片的開始時(shí)間信息; 根據(jù)所述TS切片的開始時(shí)間信息,確定所述時(shí)移時(shí)間點(diǎn)對(duì)應(yīng)的TS切片。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述切片索引文件中包括:TS切片中關(guān)鍵幀的起始時(shí)間信息和偏移量信息; 所述確定所述TS切片中與所述目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀的位置信息的步驟,包括: 解析所述切片索引文件,得到所述TS切片中所有關(guān)鍵幀的起始時(shí)間信息和偏移量信息; 確定與所述目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀對(duì)應(yīng)的起始時(shí)間信息和偏移量信息。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 在從所述關(guān)鍵幀的位置信息播放所述TS切片之前,檢測(cè)是否已從服務(wù)器下載所述TS切片,若未下載,則向服務(wù)器請(qǐng)求下載所述關(guān)鍵幀的位置信息之后的TS切片。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 在對(duì)所述流媒體文件進(jìn)行封裝之前,確定TS切片中關(guān)鍵幀的起始時(shí)間信息和偏移量信息; 將所述TS切片中關(guān)鍵幀的起始時(shí)間信息和偏移量信息存儲(chǔ)在切片索引文件中。6.一種流媒體的處理裝置,其特征在于,包括: 指令接收模塊,用于在播放流媒體文件的過程中,接收來自用戶的時(shí)移指令;其中,所述時(shí)移指令中包括目標(biāo)時(shí)間點(diǎn); 切片確定模塊,用于根據(jù)所述流媒體文件對(duì)應(yīng)的切片索引文件,確定所述目標(biāo)時(shí)間點(diǎn)對(duì)應(yīng)的傳輸流TS切片; 位置確定模塊,用于確定所述TS切片中與所述目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀的位置信息 '及 媒體播放模塊,用于從所述關(guān)鍵幀的位置信息播放所述TS切片。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述切片索引文件中包括:TS切片的時(shí)長(zhǎng)信息; 所述切片確定t吳塊,包括: 時(shí)間確定子模塊,用于根據(jù)所述TS切片的時(shí)長(zhǎng)信息,確定TS切片的開始時(shí)間信息;切片確定子模塊,用于根據(jù)所述TS切片的開始時(shí)間信息,確定所述時(shí)移時(shí)間點(diǎn)對(duì)應(yīng)的TS切片。8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述切片索引文件中包括:TS切片中關(guān)鍵幀的起始時(shí)間信息和偏移量信息; 所述位置確定模塊,包括: 解析子模塊,用于解析所述切片索引文件,得到所述TS切片中所有關(guān)鍵幀的起始時(shí)間信息和偏移量信息; 確定子模塊,用于確定與所述目標(biāo)時(shí)間點(diǎn)最接近的關(guān)鍵幀對(duì)應(yīng)的起始時(shí)間信息和偏移量信息。9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 下載模塊,用于在從所述關(guān)鍵幀的位置信息播放所述TS切片之前,檢測(cè)是否已從服務(wù)器下載所述TS切片,若未下載,則向服務(wù)器請(qǐng)求下載所述關(guān)鍵幀的位置信息之后的TS切片。10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 關(guān)鍵幀信息確定模塊,用于在對(duì)所述流媒體文件進(jìn)行封裝之前,確定TS切片中關(guān)鍵幀的起始時(shí)間信息和偏移量信息; 關(guān)鍵幀信息存儲(chǔ)模塊,用于將所述TS切片中關(guān)鍵幀的起始時(shí)間信息和偏移量信息存儲(chǔ)在切片索引文件中。
【文檔編號(hào)】H04L29/06GK105979404SQ201510870437
【公開日】2016年9月28日
【申請(qǐng)日】2015年12月1日
【發(fā)明人】蒼鵬
【申請(qǐng)人】樂視致新電子科技(天津)有限公司