一種數(shù)據(jù)流的命名方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明公開(kāi)了一種數(shù)據(jù)流的命名方法,屬于數(shù)據(jù)處理技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]數(shù)據(jù)流是網(wǎng)絡(luò)中數(shù)據(jù)傳輸?shù)囊环N常用的形式,數(shù)據(jù)經(jīng)處理后,能夠形成穩(wěn)定連續(xù)的數(shù)據(jù)流。數(shù)據(jù)流在實(shí)時(shí)采集多媒體數(shù)據(jù)(如聲音、視頻)方面得到了廣泛的應(yīng)用。利用數(shù)據(jù)流傳播技術(shù),客戶機(jī)中的瀏覽器或插件在數(shù)據(jù)流被完全傳輸?shù)娇蛻魴C(jī)中之前就可以開(kāi)始播放多媒體數(shù)據(jù)?,F(xiàn)有技術(shù)的過(guò)程大致是:通過(guò)網(wǎng)絡(luò)獲取標(biāo)準(zhǔn)編碼的音視頻基本流,然后將該基本流分割成多個(gè)流切片,并按遞增的順序?qū)@些流切片命名。根據(jù)這些流切片生成索引文件,并實(shí)時(shí)更新索引文件。現(xiàn)有技術(shù)對(duì)于流切片的這種命名方法,當(dāng)編碼器因?yàn)樽陨砘蚱渌蛑貑⒌臅r(shí)候就會(huì)對(duì)這些流切片從頭開(kāi)始重新命名,索引文件讀取音頻和視頻的流切片就會(huì)出現(xiàn)異常。
[0003]鑒于此,迫切的需要一種新的數(shù)據(jù)流命名方法來(lái)解決現(xiàn)有技術(shù)中存在的上述問(wèn)題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是提出一種新的流切片的命名方法,通過(guò)這種對(duì)流切片的新的命名方法來(lái)避免索引文件出現(xiàn)讀取異常。
[0005]為了實(shí)現(xiàn)本發(fā)明的目的,本發(fā)明提出的多媒體流文件的命名方法,包括以下步驟:
1.首先獲取壓縮編碼為符合特定標(biāo)準(zhǔn)的音視頻或其它類型的基本流。
[0006]2.將該基本流按照固定的時(shí)間長(zhǎng)度切成長(zhǎng)度相同的流切片(一般取5s或10s)。
[0007]3.取一個(gè)時(shí)間作為參考時(shí)間,這個(gè)時(shí)間是任意的,可以是當(dāng)前時(shí)間以前的任何一個(gè)時(shí)間(例如:可以取格林威治標(biāo)準(zhǔn)時(shí)間即1970年I月I日的00:00:00.000,一般以秒為單位)。
[0008]4.借助計(jì)算機(jī)系統(tǒng)內(nèi)部的簡(jiǎn)單的計(jì)時(shí)方式,獲取以秒為單位的當(dāng)前時(shí)間的時(shí)間串序列。
[0009]5.將當(dāng)前時(shí)間距參考時(shí)間的時(shí)間差序列串作為編碼器開(kāi)啟后命名的首個(gè)流切片文件的文件名。
[0010]6.將首個(gè)流切片文件的文件名逐次加一依次作為以后的流切片文件的文件名,如此某個(gè)流切片文件的文件名即為其上一個(gè)流切片文件的文件名加一。
[0011]本發(fā)明提出的流切片的命名方法是以距參考時(shí)間的時(shí)間差序列串作為編碼器開(kāi)啟后的首個(gè)流切片文件的文件名,以后的流切片文件的文件名依次加一的。由于流切片切割的單位時(shí)間的取值一般是大于I秒的且時(shí)間是逐漸增加的,所以當(dāng)編碼器因?yàn)樽陨砘蚱渌蛑貑⒑髮?duì)下一個(gè)流切片文件重新命名的文件名的值一定大于編碼器重啟以前的最后一個(gè)流切片文件的文件名。所以這種流切片文件的命名方式可以很好的解決編碼器重啟后重新對(duì)流文件進(jìn)行命名的缺點(diǎn),避免由于編碼器重啟對(duì)流切片重新命名的引起的一系列異常。
[0012]具體實(shí)例
為了使本發(fā)明的目的,技術(shù)方案及有益效果更加清楚明白,以下結(jié)合實(shí)例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解為此處所描述的具體實(shí)例僅僅用以解釋本發(fā)明,并不用于限制本發(fā)明的保護(hù)范圍。
[0013]本發(fā)明提出的流切片的命名方法,包括以下步驟:
SlOl首先獲取壓縮編碼為符合特定標(biāo)準(zhǔn)的音視頻或其它類型的基本流。
[0014]S102將該基本流按照固定的時(shí)間長(zhǎng)度切成長(zhǎng)度相同的流切片(一般取5s或10s)。
[0015]S103取一個(gè)時(shí)間作為參考時(shí)間,這個(gè)時(shí)間是任意的,可以是當(dāng)前時(shí)間以前的任何一個(gè)時(shí)間。(例如:可以取格林威治標(biāo)準(zhǔn)時(shí)間即1970年I月I日的00:00:00.000 —般以秒為單位)。
[0016]S104借助計(jì)算機(jī)系統(tǒng)內(nèi)部的簡(jiǎn)單的計(jì)時(shí)方式,獲取以秒為單位的當(dāng)前時(shí)間的時(shí)間串序列。
[0017]S105將當(dāng)前時(shí)間距參考時(shí)間的時(shí)間差序列串作為編碼器開(kāi)啟后命名的首個(gè)流切片文件的文件名。
[0018]S106將首個(gè)流切片文件的文件名逐次加一依次作為以后的流切片文件的文件名,如此某個(gè)流切片文件的文件名即為其上一個(gè)流切片文件的文件名加一。
[0019]所以當(dāng)編碼器重啟后對(duì)下一個(gè)流文件重新命名的文件名的值一定大于編碼器重啟以前的最后一個(gè)流切片文件的文件名。這樣的流切片文件的命名方式既可以避免索引文件的讀取異常,又可以通過(guò)流切片的文件名知道編碼器的重啟的時(shí)間、次數(shù)等相關(guān)信息。
[0020]以上所述僅是本發(fā)明的優(yōu)選方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
[0021]
【附圖說(shuō)明】
[0022]圖1是本發(fā)明的流程圖
圖2是本發(fā)明實(shí)例I中正常傳輸?shù)那闆r示意圖圖3是本發(fā)明實(shí)例I中傳輸異常中斷的情況示意圖圖4是本發(fā)明實(shí)例2中正常傳輸?shù)那闆r示意圖圖5是本發(fā)明實(shí)例2中傳輸異常中斷的情況示意圖以下詳細(xì)介紹本發(fā)明的內(nèi)容:
以HTTP Live Streaming (簡(jiǎn)稱HLS)為例,HLS是蘋(píng)果公司實(shí)現(xiàn)的基于HTTP的流媒體傳輸協(xié)議,可實(shí)現(xiàn)流媒體的直播和點(diǎn)播,HLS直播最大的不同在于,直播客戶端獲取到的,并不是一個(gè)完整的數(shù)據(jù)流。HLS協(xié)議在服務(wù)器端將直播數(shù)據(jù)流存儲(chǔ)為連續(xù)的、很短時(shí)長(zhǎng)的媒體文件,而客戶端則不斷的下載并播放這些小文件,因?yàn)榉?wù)器端總是會(huì)將最新的直播數(shù)據(jù)生成新的小文件,這樣客戶端只要不停的按順序播放從服務(wù)器獲取到的文件,就實(shí)現(xiàn)了直播。
[0023]我們以現(xiàn)有技術(shù)和本發(fā)明分別作為例I和例2來(lái)描述整個(gè)過(guò)程,從而對(duì)比出本發(fā)明的技術(shù)優(yōu)勢(shì)。
[0024]例I現(xiàn)有技術(shù)的操作步驟如圖2所示
步驟I通過(guò)音頻和視頻設(shè)備分別獲取相應(yīng)的音頻和視頻數(shù)據(jù),然后將這些音頻和視頻數(shù)據(jù)通AAC編碼器和H.264編碼器壓縮編碼為符合特定標(biāo)準(zhǔn)的音視頻基本流。
[0025]步驟2對(duì)這些流文件采用相應(yīng)的分片策略將這些較大的流文件切成滿足符合播放需求的流切片文件。本例為5s —個(gè)文件。
[0026]步驟3按照固定的時(shí)間單位將這些流文件切成流切片以后,按照文件序號(hào)遞增的順序?qū)@些流切片進(jìn)行命名。本例中第一個(gè)切片的名字便是00000001.ts。
[0027]步驟4將首個(gè)流切片文件的文件名逐次加一便得到以后各流切片的文件名。本例中本例中第二個(gè),第三個(gè),第四個(gè)……切片的名字便分別是00000001.ts, 00000002.ts,00000003.ts.......假設(shè)在傳到第100個(gè)即00000100.ts的文件時(shí)編碼器因?yàn)樽陨砘蛘咄獠吭蛑貑?,現(xiàn)有技術(shù)會(huì)重復(fù)步驟3,并且重新從開(kāi)始計(jì)數(shù),新的切片文件會(huì)重新被命名為00000001.ts,如圖3所示,這時(shí)接收客戶端得到的切片名無(wú)法根據(jù)順序而自動(dòng)接上解碼器故障前的切片,導(dǎo)致直播無(wú)法繼續(xù)。
[0028]例2本發(fā)明技術(shù)操作步驟如圖4所示
SlOl首先獲取壓縮編碼為符合特定標(biāo)準(zhǔn)的音視頻或其它類型的基本流。
[0029]S102將該基本流按照固定的時(shí)間長(zhǎng)度切成長(zhǎng)度相同的流切片,本例為Is。
[0030]S103取一個(gè)時(shí)間作為參考時(shí)間,這個(gè)時(shí)間是任意的,可以是當(dāng)前時(shí)間以前的任何一個(gè)時(shí)間,本例取格林威治標(biāo)準(zhǔn)時(shí)間即1970年I月I日的00:00:00.000為時(shí)間串。
[0031]S104借助計(jì)算機(jī)系統(tǒng)內(nèi)部的簡(jiǎn)單的計(jì)時(shí)方式,獲取以秒為單位的當(dāng)前時(shí)間的時(shí)間串序列。本例以2014年3月24日00:00:00.000作為首個(gè)流切面文件的當(dāng)前時(shí)間。
[0032]S105將當(dāng)前時(shí)間距參考時(shí)間的時(shí)間差序列串作為編碼器開(kāi)啟后命名的首個(gè)流切片文件的文件名。本例為兩個(gè)時(shí)間差為1378425600妙。所以收個(gè)切片名就是1378425600.ts
S106將首個(gè)流切片文件的文件名逐次加一依次作為以后的流切片文件的文件名,如此某個(gè)流切片文件的文件名即為其上一個(gè)流切片文件的文件名加一。本例中第二個(gè),第三個(gè),第四個(gè)......切片的名字便分別是 1378425601.ts, 1378425602.ts, 1378425603.ts
O
[0033]同樣假設(shè)假設(shè)在傳到第100個(gè)即1378425699.ts的文件時(shí)編碼器因?yàn)樽陨砘蛘咄獠吭蛑貑?,歷時(shí)3秒,解碼器正常工作后重新開(kāi)始接收流時(shí)按照步驟S103到S106來(lái)命名新的切片。本例中,中斷時(shí)間為3秒,所以新開(kāi)始的切片會(huì)被命名為1378425703.ts,如圖5所示,這時(shí)接收客戶端只要還是按照切片名順序接收切片便會(huì)自動(dòng)接上解碼器故障前的切片,保證了直播的正常播出。
【主權(quán)項(xiàng)】
1.一種數(shù)據(jù)流的命名方法,其特征在于該方法包括以下各步驟: 取一個(gè)單位時(shí)間作為流切片的單位時(shí)間,這個(gè)切片時(shí)間可以根據(jù)具體網(wǎng)絡(luò)情況確定。
2.取一個(gè)時(shí)間作為參考時(shí)間,這個(gè)時(shí)間是任意的,可以是當(dāng)前時(shí)間以前的任何一個(gè)時(shí)間(例如:可以取格林威治標(biāo)準(zhǔn)時(shí)間即1970年I月I日的00:00:00.000)時(shí)間串(一般以秒為單位)。
3.借助計(jì)算機(jī)系統(tǒng)內(nèi)部的簡(jiǎn)單的計(jì)時(shí)方式,獲取以秒為單位的當(dāng)前時(shí)間的時(shí)間串序列。
4.將當(dāng)前時(shí)間距參考時(shí)間的時(shí)間差序列串作為編碼器開(kāi)啟后命名的首個(gè)流切片文件的文件名。
5.將首個(gè)流切片文件的文件名的逐次加一,依次作為以后流切片文件的文件名。
6.只要編碼器重啟后,對(duì)首個(gè)流切片文件的命名方式就采用上述所述的方式,按照上述方式完成對(duì)流切片的命名。
【專利摘要】本發(fā)明公開(kāi)了一種數(shù)據(jù)流的命名方法,屬于數(shù)據(jù)處理技術(shù)領(lǐng)域。首先獲取壓縮編碼為符合特定標(biāo)準(zhǔn)的音視頻或其它類型的基本流,將該數(shù)據(jù)流按照固定的單位時(shí)間切成數(shù)據(jù)流的切片,然后選取當(dāng)前時(shí)間以前的任意一個(gè)時(shí)間作為參考時(shí)間,借助計(jì)算機(jī)獲取當(dāng)前時(shí)間并取得當(dāng)前時(shí)間距參考時(shí)間的以秒為單位的時(shí)間序列串,并將該序列串作為編碼器開(kāi)啟后命名的首個(gè)流切片文件的文件名。在首個(gè)流切片文件名的基礎(chǔ)上逐次加一依次作為后續(xù)流切片文件的文件名。通過(guò)本發(fā)明的命名方式可以很好的解決編碼器重啟后重新對(duì)流文件進(jìn)行命名的缺點(diǎn),避免由于編碼器重啟對(duì)流切片重新命名的引起的一系列異常。
【IPC分類】H04N21-845, H04N21-262
【公開(kāi)號(hào)】CN104581435
【申請(qǐng)?zhí)枴緾N201510025931
【發(fā)明人】趙樹(shù)喬
【申請(qǐng)人】趙樹(shù)喬
【公開(kāi)日】2015年4月29日
【申請(qǐng)日】2015年1月20日