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