亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種獲取直播視頻切片的方法及服務(wù)器的制造方法_2

文檔序號(hào):9528083閱讀:來(lái)源:國(guó)知局
供的應(yīng)用場(chǎng)景二示意圖;
[0064]圖5為本發(fā)明實(shí)施例提供的服務(wù)器的組成示意圖。
【具體實(shí)施方式】
[0065]以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)說(shuō)明,應(yīng)當(dāng)理解,以下所說(shuō)明的優(yōu)選實(shí)施例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0066]圖1為本發(fā)明實(shí)施例提供的獲取直播視頻切片的方法流程示意圖;如圖1所示,所述方法包括:
[0067]步驟11:獲取切片的基準(zhǔn)時(shí)長(zhǎng);
[0068]這里,網(wǎng)絡(luò)側(cè)、具體是網(wǎng)絡(luò)側(cè)服務(wù)器接收原始直播源碼流、如接收直播源MPEG系統(tǒng)發(fā)送來(lái)的MPEG-TS碼流,因?yàn)樵贾辈ピ创a流是直播源系統(tǒng)源源不斷發(fā)送至服務(wù)器的,所以服務(wù)器對(duì)每次接收的原始直播源碼流的處理均相同,請(qǐng)參見(jiàn)以下描述。
[0069]服務(wù)器將MPEG-TS碼流轉(zhuǎn)換成實(shí)時(shí)傳輸協(xié)議(RTP, Real-time TransportProtocol)碼流,并標(biāo)識(shí)出RTP碼流中的關(guān)鍵幀信息,對(duì)RTP碼流進(jìn)行緩存、排序、解析等處理;刪除經(jīng)上述處理后的RTP碼流的RTP包頭,得到RTP凈載荷數(shù)據(jù);其中,所述關(guān)鍵幀信息包括:關(guān)鍵幀幀頭、幀尾;獲取RTP碼流中的關(guān)鍵幀長(zhǎng)度,以及用于緩存該碼流的視頻緩存檢驗(yàn)器(VBV,Video Buffering Verifier)的長(zhǎng)度,并將關(guān)鍵幀長(zhǎng)度、VBV長(zhǎng)度以及第一閾值三者求和,求和結(jié)果作為切片的基準(zhǔn)時(shí)長(zhǎng),也就是說(shuō),如果關(guān)鍵幀長(zhǎng)度為KP、VBV長(zhǎng)度為V、第一閾值為A,那么切片的基準(zhǔn)時(shí)長(zhǎng)BS = KP+V+A。
[0070]在對(duì)RTP碼流進(jìn)行緩存、排序、解析等處理的過(guò)程中,如果原始直播源碼流已被加擾(去擾),本方案中還需要去擾(加擾);如果在后續(xù)切分成切片時(shí)還需要對(duì)切片加密,本方案中還需要進(jìn)行加密處理,依據(jù)具體應(yīng)用情況而處理。
[0071]其中,所述第一閾值A(chǔ)為預(yù)先設(shè)置的,可根據(jù)MPEG-TS碼流的實(shí)際長(zhǎng)度而自行設(shè)定,例如,可以預(yù)先設(shè)置A為1,也可以預(yù)先設(shè)置為2 ;所述基準(zhǔn)時(shí)長(zhǎng)、關(guān)鍵幀長(zhǎng)度、V、A的單位均可以為秒s、或分min、或時(shí)hour等,通常取為秒。
[0072]其中,所述關(guān)鍵幀也可以稱(chēng)之為I幀;在1^?碼流中的標(biāo)識(shí)出關(guān)鍵幀信息的目的在步驟13中說(shuō)明。
[0073]步驟12:確定基準(zhǔn)時(shí)長(zhǎng)與第一預(yù)設(shè)時(shí)長(zhǎng)之和為第一時(shí)長(zhǎng),和/或確定基準(zhǔn)時(shí)長(zhǎng)與第一預(yù)設(shè)時(shí)長(zhǎng)之差為第二時(shí)長(zhǎng);
[0074]這里,所述第一預(yù)設(shè)時(shí)長(zhǎng)根據(jù)實(shí)際應(yīng)用情況而設(shè)置;以第一預(yù)設(shè)時(shí)長(zhǎng)為時(shí)長(zhǎng)B為例,計(jì)算基準(zhǔn)時(shí)長(zhǎng)BS與B之和,并將該兩者之和作為第一時(shí)長(zhǎng);和/或,計(jì)算基準(zhǔn)時(shí)長(zhǎng)BS與B之差,將該兩者之差作為第二時(shí)長(zhǎng)。
[0075]步驟13:獲取當(dāng)前原始直播源的第q個(gè)關(guān)鍵幀;
[0076]這里,依據(jù)對(duì)RTP碼流作出的關(guān)鍵幀信息,識(shí)別出第q個(gè)關(guān)鍵幀;其中,q為正整數(shù)。
[0077]步驟14:確定第q個(gè)關(guān)鍵幀的起始位置為第q個(gè)切片的起始位置;
[0078]步驟15:在第q個(gè)關(guān)鍵幀起始位置的第一時(shí)長(zhǎng)和/或第二時(shí)長(zhǎng)內(nèi),確定為存在有第q+Ι個(gè)關(guān)鍵幀時(shí),確定所述第q+Ι個(gè)關(guān)鍵幀的起始位置為第q個(gè)切片的結(jié)束位置;
[0079]這里,在第q個(gè)關(guān)鍵幀起始位置的第一時(shí)長(zhǎng)和/或第二時(shí)長(zhǎng)內(nèi),查找是否存在有第q+Ι個(gè)關(guān)鍵幀,查找到時(shí),確定所述第q+Ι個(gè)關(guān)鍵幀的起始位置為第q個(gè)切片的結(jié)束位置。
[0080]步驟16:在第q幀起始位置及結(jié)束位置處,對(duì)當(dāng)前原始直播源進(jìn)行切分,形成第q個(gè)切片;其中,q為正整數(shù)。
[0081]這里,在第q個(gè)關(guān)鍵幀起始位置及結(jié)束位置處進(jìn)行切分,形成第q個(gè)切片;也就是說(shuō),第q個(gè)切片的起始位置為第q個(gè)關(guān)鍵幀起始位置,第q個(gè)切片的結(jié)束位置為第q+Ι個(gè)關(guān)鍵幀起始位置。
[0082]優(yōu)選的,在第q個(gè)關(guān)鍵幀起始位置的第一時(shí)長(zhǎng)和/或第二時(shí)長(zhǎng)內(nèi),確定為沒(méi)有存在第q+Ι個(gè)關(guān)鍵幀時(shí),將距離第q個(gè)關(guān)鍵幀起始位置為基準(zhǔn)時(shí)長(zhǎng)的位置為第q個(gè)切片的結(jié)束位置,在第q幀起始位置及結(jié)束位置處,對(duì)當(dāng)前原始直播源進(jìn)行切分,形成第q個(gè)切片。
[0083]舉個(gè)例子,以基準(zhǔn)時(shí)長(zhǎng)BS = 10s、第一預(yù)設(shè)時(shí)長(zhǎng)B = Is為例,第一時(shí)長(zhǎng)為9s、第二時(shí)長(zhǎng)為11s ;在RTP凈載荷數(shù)據(jù)中,依據(jù)對(duì)RTP碼流作出的關(guān)鍵幀信息,識(shí)別出第1個(gè)關(guān)鍵幀,以第1個(gè)關(guān)鍵幀的起始位置為當(dāng)前原始直播源的第1個(gè)切片的起始位置,以第1個(gè)關(guān)鍵幀起始位置為0s,從Os位置處查找至9s-lls時(shí)長(zhǎng)處,在該9s-lls的時(shí)長(zhǎng)內(nèi),確定存在有第2個(gè)關(guān)鍵幀時(shí),將第2個(gè)關(guān)鍵幀的起始位置作為第1個(gè)切片的結(jié)束位置,在第1個(gè)切片的起始位置及結(jié)束位置處進(jìn)行切分,形成當(dāng)前原始直播源的第1個(gè)切片;同時(shí),第2個(gè)關(guān)鍵幀的起始位置作為當(dāng)前原始直播源的第2個(gè)切片的起始位置,以第2個(gè)切片起始位置為0s,從Os位置處再查找至9s-lls時(shí)長(zhǎng)處,在該9s-lls的時(shí)長(zhǎng)內(nèi),確定存在有第3個(gè)關(guān)鍵幀時(shí),將第3個(gè)關(guān)鍵幀的起始位置作為第2個(gè)切片的結(jié)束位置,在第2個(gè)切片的起始位置及結(jié)束位置處進(jìn)行切分,形成當(dāng)前原始直播源的第2個(gè)切片;以此類(lèi)推,服務(wù)器對(duì)每次接收到的原始直播源進(jìn)行切片的切分。也就是說(shuō),RTP凈載荷數(shù)據(jù)中,第q個(gè)關(guān)鍵幀的起始位置(開(kāi)頭位置)為第q個(gè)切片的起始位置(開(kāi)頭位置),第q+Ι個(gè)關(guān)鍵幀的起始位置為第q個(gè)切片的結(jié)束位置。
[0084]由此可見(jiàn),上述方案中,可將一個(gè)關(guān)鍵幀切分至同一個(gè)切片中去,本方案中,以關(guān)鍵幀所在位置為切分位置、或以距離第q個(gè)關(guān)鍵幀起始位置為基準(zhǔn)時(shí)長(zhǎng)的位置為切分位置,對(duì)原始直播源碼流進(jìn)行切分,能夠保證HLS切片長(zhǎng)度在基準(zhǔn)時(shí)長(zhǎng)左右波動(dòng),使得關(guān)鍵幀切分至同一個(gè)切片中,解決了切片邊緣存在數(shù)據(jù)不完整或者數(shù)據(jù)冗余的現(xiàn)象,從而解決了切片的直播畫(huà)面出現(xiàn)較慢、相鄰兩切片之間的直播畫(huà)面存在有不連續(xù)等問(wèn)題,提高了直播視頻播放流暢性、播放畫(huà)面質(zhì)量,提升了用戶觀看體驗(yàn)。
[0085]在對(duì)原始直播源碼流進(jìn)行切片的切分時(shí),被切分的切片還需要滿足:
[0086]1)從直播源碼流中獲取節(jié)目關(guān)聯(lián)表(PAT,Program Associat1n Table) PAT和節(jié)目映射表(PMT,Program Map Table),并配置PAT和PMT在每個(gè)切片的初始位置,以方便切片所承載節(jié)目?jī)?nèi)容的播放;
[0087]其中,PAT表中主要包括節(jié)目頻道號(hào)碼和每一個(gè)頻道對(duì)應(yīng)的PMT的包識(shí)別碼(PID,Packet Identifier)號(hào)碼;PMT表中包括有各個(gè)頻道的所有視頻流Video數(shù)據(jù)的PID、所有音頻流Aud1數(shù)據(jù)的PID及其他PID ;當(dāng)終端請(qǐng)求播放當(dāng)前頻道的某個(gè)Video時(shí),通過(guò)該Video的PID即可將該Video數(shù)據(jù)從該頻道中篩選出來(lái);同時(shí),PAT和PMT在原始直播源碼流中周期性出現(xiàn),以方便終端在請(qǐng)求播放視頻時(shí)可隨時(shí)接入所述播放視頻的碼流;
[0088]上述方案中,對(duì)于PAT和PMT的描述具體請(qǐng)參見(jiàn)現(xiàn)有相關(guān)說(shuō)明,這里不再贅述。在本方案中,PAT和PMT配置在每個(gè)切片的開(kāi)頭位置,能夠?qū)崿F(xiàn)對(duì)每個(gè)切片的獨(dú)立播放。
[0089]2)當(dāng)確定出當(dāng)前原始直播源存在有至少兩種碼率時(shí),配置不同碼率的切片所承載的節(jié)目?jī)?nèi)容的長(zhǎng)度為相同,以方便不同碼流切片的切換,也就是,為了方便直播視頻在不同碼率間的切換。
[0090]由于HLS協(xié)議中,每個(gè)切片(也可稱(chēng)為T(mén)S切片)均具有自身所支持的播放碼率、序號(hào)標(biāo)識(shí)、形成時(shí)間等信息,所以通過(guò)對(duì)索引文件(m3u8格式)的查找,可查找到具有同一個(gè)播放碼率的所有切片,該切片按照切片序號(hào)的大小進(jìn)行排序。
[0091]例如,以原始直播源碼流為單碼率(1024kbps)為例,直播單碼率文件包括:主索引文件、子索引文件及TS切片;其中,主索引文件命名為index.m3u8、子索引文件以碼率命名為 1024.m3u8(碼率是 1024kbps)、TS 切片命名為 $time-1024-$seq.ts ;其中:$time表不切片的形成時(shí)間,1024表不切片碼率是1024kbps, $seq表不切片的序號(hào);播放碼率相同的切片需要放在同一個(gè)子索引文件下。同時(shí),子索引文件1024.m3u8的文件內(nèi)容能夠表征出其所能夠索引到的所有切片的名稱(chēng),例如,當(dāng)配置子索引文件1024.m3u8最多可索引3個(gè)TS切片時(shí),其可索引到命名為20140521160000-1024-1.ts的切片1、命名為20140521160000-1024-2.ts 的切片 2、及命名為 20140521160000-1024-2.ts 的切片 3。原始直播源碼流為多碼率與上述原始直播源碼流為單碼率的描述相類(lèi)似,只不過(guò)在多碼率原始直播源碼流中,子索引文件的個(gè)數(shù)等于原始直播源碼流所采用的碼率的個(gè)數(shù)。
[0092]由于本發(fā)明實(shí)施例涉及到的是直播多媒體碼流,隨著服務(wù)器對(duì)原始直播源碼流的不斷獲取,對(duì)原始直播源碼流的不斷切分,新切片不斷形成,所以需要主、子索引文件隨著新切片的形成而不斷發(fā)生更新,例如,lmin內(nèi)服務(wù)器可將原始直播源碼流切分為6個(gè)TS切片,那么子索引文件每10s更新一次,更新為對(duì)6個(gè)最新TS切片的索引,并刪除對(duì)之前6個(gè)TS切片的索引,以適應(yīng)HLS直播規(guī)范的要求;該過(guò)程可視為對(duì)切片的回滾過(guò)程。
[0093]上述方案中,對(duì)于切片的回滾,及通過(guò)對(duì)主、子索引文件查找到某個(gè)切片的具體過(guò)程請(qǐng)參見(jiàn)HLS協(xié)議的相關(guān)說(shuō)明,這里不再贅述。
[0094]圖2為本發(fā)明實(shí)施例的應(yīng)用場(chǎng)景一示意圖;圖3為本發(fā)明實(shí)施例提供的獲取直播視頻切片的方法的一具體實(shí)現(xiàn)流程示意圖;結(jié)合圖2與圖3,對(duì)本發(fā)明實(shí)施例作進(jìn)一步描述。
[0095]在圖2中,以服務(wù)器位于單節(jié)點(diǎn)、原始直播源碼流為單碼率、第一閾值為A= Is、第一預(yù)設(shè)時(shí)長(zhǎng)B =
...
當(dāng)前第2頁(yè)1 2 3 4 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1