一種基于hls的多媒體文件處理方法及服務(wù)器的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及多媒體技術(shù)領(lǐng)域,特別涉及一種基于HLS的多媒體文件處理方法及服務(wù)器。
【背景技術(shù)】
[0002]HLS (HTTP Live Streaming,動態(tài)碼率自適應(yīng)技術(shù))是當(dāng)前用于實現(xiàn)播放多媒體文件的主要技術(shù)手段,通過在服務(wù)器中將目標(biāo)多媒體文件(比如,音頻、視頻)轉(zhuǎn)碼成多個切片文件,然后將轉(zhuǎn)碼后的切片文件存儲至磁盤中,將每一個切片文件的轉(zhuǎn)碼時間點(diǎn)、播放時長以及在磁盤上的存儲路徑等文件信息存放在數(shù)據(jù)庫中,當(dāng)存在客戶端需要播放目標(biāo)多媒體文件時,服務(wù)器即會根據(jù)客戶端的播放需求生成一個文件目錄索引文件,客戶端可通過該文件目錄索引文件從服務(wù)器的磁盤中讀取相應(yīng)的切片文件以完成播放目標(biāo)多媒體文件。
[0003]在上述技術(shù)方案中,切片文件存儲在服務(wù)器的磁盤中,當(dāng)多個客戶端同時播放該磁盤上的目標(biāo)多媒體文件時,即需要對該磁盤進(jìn)行頻繁的讀寫操作,導(dǎo)致服務(wù)器的響應(yīng)速度較慢,甚至出現(xiàn)1瓶頸導(dǎo)致部分客戶端并不能成功播放目標(biāo)多媒體文件,用戶體驗較差。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明提供了一種基于HLS的多媒體文件處理方法及服務(wù)器,可提升用戶體驗。
[0005]第一方面,本發(fā)明提供了一種基于HLS的多媒體文件處理方法,包括:
[0006]SO:構(gòu)建tmpfs文件系統(tǒng);
[0007]S1:在tmpfs文件系統(tǒng)中構(gòu)建至少一個文件夾;
[0008]S2:獲取目標(biāo)多媒體文件,將目標(biāo)多媒體文件轉(zhuǎn)碼成至少一個切片文件,將全部切片文件存儲至至少一個文件夾下;
[0009]S3:針對存儲在至少一個文件夾下的每一個切片文件,將當(dāng)前切片文件的文件信息存儲至數(shù)據(jù)庫中;
[0010]S4:分別接收來自至少兩個客戶端的播放請求指令,分別根據(jù)不同的播放請求指令以及數(shù)據(jù)庫中存儲的每一個切片文件的文件信息,生成分別對應(yīng)于每一個客戶端的索引文件M3U8,將生成的M3U8返回至對應(yīng)的客戶端;
[0011]S5:分別接收來自至少兩個客戶端根據(jù)對應(yīng)的M3U8觸發(fā)的文件請求指令,所述文件請求指令中攜帶目標(biāo)切片文件的文件信息,根據(jù)目標(biāo)切片文件的文件信息從tmpfs文件系統(tǒng)中獲取目標(biāo)切片文件并向?qū)?yīng)的客戶端提供目標(biāo)切片文件。
[0012]進(jìn)一步的,
[0013]所述在文件系統(tǒng)中構(gòu)建至少一個文件夾之后,還包括:在至少一個文件夾下,構(gòu)建至少兩個子文件夾,每一個子文件夾分別用于存儲在不同時間段內(nèi)轉(zhuǎn)碼的切片文件;
[0014]所述將全部切片文件存儲至至少一個文件夾下,包括:確定每一個切片文件的轉(zhuǎn)碼時間,根據(jù)每一個切片文件分別對應(yīng)的轉(zhuǎn)碼時間點(diǎn)分別將每一個切片文件存儲至至少一個文件夾下的子文件夾中。
[0015]進(jìn)一步的,
[0016]所述將目標(biāo)多媒體文件轉(zhuǎn)碼成至少一個切片文件之后,進(jìn)一步包括:針對每一個切片文件,按照YYMMDDHHMMSS_LENGTH.TS格式對當(dāng)前切片文件進(jìn)行命名;
[0017]所述構(gòu)建至少兩個子文件夾之后,進(jìn)一步包括:針對每一個子文件夾,按照YYMMDDHH格式對當(dāng)前子文件夾進(jìn)行命名;
[0018]其中,YYMMDDHHMMSS用于表征當(dāng)前切片文件的轉(zhuǎn)碼時間點(diǎn)、LENGTH用于表征當(dāng)前切片文件的播放時長、TS用于表征當(dāng)前切片文件的文件格式,YYMMDDHHMM用于表征當(dāng)前子文件夾內(nèi)存儲的每一個切片文件的轉(zhuǎn)碼時間點(diǎn)對應(yīng)的時間范圍。
[0019]進(jìn)一步的,所述將當(dāng)前切片文件的文件信息存儲至數(shù)據(jù)庫中,包括:
[0020]將當(dāng)前切片文件的文件名稱、存儲路徑、以及轉(zhuǎn)碼時間存儲至數(shù)據(jù)庫中。
[0021]進(jìn)一步的,所述構(gòu)建tmpfs文件系統(tǒng),包括:
[0022]執(zhí)行如下命令以構(gòu)建tmpfs文件系統(tǒng):
[0023]#mount tmpfs/tmpfs/inspur_shift-t tmpfs ;
[0024]#mount tmpfs/tmpfs/inspur_shift-t tmpfs-o size = 3g0
[0025]第二方面,本發(fā)明提供了一種服務(wù)器,包括:
[0026]第一構(gòu)建單元,用于構(gòu)建tmpfs文件系統(tǒng);
[0027]第二構(gòu)建單元,用于在tmpfs文件系統(tǒng)中構(gòu)建至少一個文件夾;
[0028]第一處理單元,用于獲取目標(biāo)多媒體文件,將目標(biāo)多媒體文件轉(zhuǎn)碼成至少一個切片文件,將全部切片文件存儲至至少一個文件夾下;
[0029]數(shù)據(jù)庫,用于針對存儲在至少一個文件夾下的每一個切片文件,將當(dāng)前切片文件的文件信息存儲至數(shù)據(jù)庫中;
[0030]第二處理單元,用于分別接收來自至少兩個客戶端的播放請求指令,分別根據(jù)不同的播放請求指令以及數(shù)據(jù)庫中存儲的每一個切片文件的文件信息,生成分別對應(yīng)于每一個客戶端的索引文件M3U8,將生成的M3U8返回至對應(yīng)的客戶端;
[0031]第三處理單元,用于分別接收來自至少兩個客戶端根據(jù)對應(yīng)的M3U8觸發(fā)的文件請求指令,所述文件請求指令中攜帶目標(biāo)切片文件的文件信息,根據(jù)目標(biāo)切片文件的文件信息從tmpfs文件系統(tǒng)中獲取目標(biāo)切片文件并向?qū)?yīng)的客戶端提供目標(biāo)切片文件。
[0032]進(jìn)一步的,
[0033]所述第二構(gòu)建單元,進(jìn)一步用于在至少一個文件夾下,構(gòu)建至少兩個子文件夾,每一個子文件夾分別用于存儲在不同時間段內(nèi)轉(zhuǎn)碼的切片文件;
[0034]所述第一處理單元,用于確定每一個切片文件的轉(zhuǎn)碼時間,根據(jù)每一個切片文件分別對應(yīng)的轉(zhuǎn)碼時間點(diǎn)分別將每一個切片文件存儲至至少一個文件夾下的子文件夾中。
[0035]進(jìn)一步的,
[0036]所述第一處理單元,進(jìn)一步用于針對每一個切片文件,按照YYMMDDHHMMSS_LENGTH.TS格式對當(dāng)前切片文件進(jìn)行命名;;
[0037]所述第二構(gòu)建單元,進(jìn)一步用于針對每一個子文件夾,按照YYMMDDHH格式對當(dāng)前子文件夾進(jìn)行命名;
[0038]其中,YYMMDDHHMMSS用于表征當(dāng)前切片文件的轉(zhuǎn)碼時間點(diǎn)、LENGTH用于表征當(dāng)前切片文件的播放時長、TS用于表征當(dāng)前切片文件的文件格式,YYMMDDHHMM用于表征當(dāng)前子文件夾內(nèi)存儲的每一個切片文件的轉(zhuǎn)碼時間點(diǎn)對應(yīng)的時間范圍。
[0039]進(jìn)一步的,
[0040]所述數(shù)據(jù)庫,用于將當(dāng)前切片文件的文件名稱、存儲路徑、以及轉(zhuǎn)碼時間存儲至數(shù)據(jù)庫中。
[0041]進(jìn)一步的,
[0042]所述第一構(gòu)建單元,用于執(zhí)行如下命令以構(gòu)建tmpfs文件系統(tǒng):
[0043]#mount tmpfs/tmpfs/inspur_shift-t tmpfs ;
[0044]#mount tmpfs/tmpfs/inspur_shift-t tmpfs-o size = 3g0
[0045]本發(fā)明提供了一種基于HLS的多媒體文件處理方法及服務(wù)器,通過構(gòu)建tmpfs文件系統(tǒng),將目標(biāo)多媒體文件對應(yīng)的切片文件存儲至tmpfs文件系統(tǒng)下的至少一個文件夾,并將每一個切片文件在tmpfs文件系統(tǒng)下的文件信息存儲至數(shù)據(jù)庫中,當(dāng)分別接收到來自至少兩個客戶端的播放請求指令時,根據(jù)播放請求指令以及數(shù)據(jù)庫中存儲的每一個切片文件的文件信息生成分別對應(yīng)每一個客戶端的索引文件M3U8,分別將生成的索引文件返回至對應(yīng)的客戶端,以使客戶端可通過M3U8觸發(fā)攜帶目標(biāo)切片文件的文件信息的文件請求指令,當(dāng)接收到來自客戶端的文件請求指令時,即可根據(jù)文件請求指令中攜帶的目標(biāo)切片文件的文件信息從tmpfs文件系統(tǒng)中讀取對應(yīng)的目標(biāo)切片文件,并向?qū)?yīng)的客戶端提供目標(biāo)切片文件;由于tmpfs是一種基于內(nèi)存的文件系統(tǒng),目標(biāo)多媒體文件的切片文件均存儲在內(nèi)存中,因此,針對切片文件的存取過程對應(yīng)于對內(nèi)存的讀寫操作,內(nèi)存讀寫速度較快,可提高服務(wù)器的響應(yīng)速度,進(jìn)而提升用戶體驗。
【附圖說明】
[0046]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于