一種基于hls協(xié)議的流媒體廣告插入方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及流媒體技術(shù)領(lǐng)域,尤其涉及一種基于HLS協(xié)議的流媒體廣告插入方法及系統(tǒng)。
【背景技術(shù)】
[0002]當(dāng)前動(dòng)態(tài)碼率自適應(yīng)技術(shù)(HTTP Live Streaming,簡(jiǎn)稱HLS,以下都用HLS代替)流媒體的廣告增加方式是在HLS流媒體流生成前配置完成,插入廣告的位置僅在視頻開(kāi)始前。片頭的廣告基本碼(Elementary Stream,簡(jiǎn)稱ES,以下用ES代替)流格式?jīng)]有限制,所以實(shí)現(xiàn)很容易,生成前廣告方便插入,流程為插入廣告YUV數(shù)據(jù),再編碼,切片,發(fā)布,其中YUV是采用明亮度、色度來(lái)表征彩色視頻信號(hào)。其中“Y”表示明亮度,“U”表示色調(diào),“V”表示飽和度。
[0003]對(duì)于流媒體的非發(fā)布方,由于其無(wú)法接觸未發(fā)布的流媒體,只能使用已經(jīng)發(fā)布的流媒體,其不能使用現(xiàn)有的在流媒體生成前的廣告增加方式進(jìn)行廣告插入。
[0004]并且,根據(jù)HLS協(xié)議,發(fā)布后增加的廣告視頻流的容器格式、ES流格式等格式、參數(shù)必須與原視頻對(duì)應(yīng)的格式、參數(shù)基本相同,如ES流格式、profile、level、寬高、是否允許加權(quán)預(yù)測(cè)等等。如果ES流格式不相同,會(huì)導(dǎo)致編碼器異常,無(wú)法解碼。
[0005]因此,現(xiàn)有技術(shù)還有待于改進(jìn)和發(fā)展。
【發(fā)明內(nèi)容】
[0006]本發(fā)明要解決的技術(shù)問(wèn)題在于,針對(duì)現(xiàn)有技術(shù)的上述缺陷,提供一種基于HLS協(xié)議的流媒體廣告插入方法及系統(tǒng),旨在解決現(xiàn)有技術(shù)中當(dāng)流媒體視頻開(kāi)始后無(wú)法插入廣告,容易出現(xiàn)編碼異常,無(wú)法解碼的缺陷。
[0007]本發(fā)明解決技術(shù)問(wèn)題所采用的技術(shù)方案如下:
一種基于HLS協(xié)議的流媒體廣告插入方法,其中,所述方法包括:
A、客戶端向服務(wù)器發(fā)送第一流媒體視頻播放請(qǐng)求;
B、服務(wù)器接收所述視頻播放請(qǐng)求后,檢測(cè)客戶端請(qǐng)求播放的第一流媒體地址,且判斷服務(wù)器中是否存在與第一流媒體地址對(duì)應(yīng)的第二流媒體片段地址,如果存在則執(zhí)行步驟E ;如果不存在則獲取流媒體中視頻基本碼流格式為H.264的第一流媒體片段的第一視頻基本碼流參數(shù)及容器格式;
C、服務(wù)器將獲取的第一視頻基本碼流參數(shù)與準(zhǔn)備插入的廣告的圖像數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行編碼,輸出插入的廣告對(duì)應(yīng)的第二流媒體片段;
D、將第二流媒體片段存儲(chǔ)到服務(wù)器上,服務(wù)器生成對(duì)應(yīng)的第二流媒體片段地址并保存;
E客戶端獲取第二流媒體片段地址,修改第一流媒體片段列表,按照更新后的第一流媒體片段列表進(jìn)行播放。
[0008]所述的基于HLS協(xié)議的流媒體廣告插入方法,其中,所述步驟B具體包括: B1、服務(wù)器檢測(cè)客戶端請(qǐng)求播放的第一流媒體地址,判斷服務(wù)器中是否存在與第一流媒體地址對(duì)應(yīng)的第二流媒體片段地址,如果存在則執(zhí)行步驟E ;如果不存在則從所述第一流媒體地址中下載原始的第一流媒體片段;
B2、從第一流媒體片段中獲取第一視頻基本碼流參數(shù),判斷當(dāng)前第一視頻基本碼流是否是H.264格式;
B3、如果第一視頻基本碼流是H.264格式,獲取H.264格式的第一流媒體片段的基本碼流參數(shù)及容器格式;
B4、如果第一視頻基本碼流不是H.264格式,退出。
[0009]所述的基于HLS協(xié)議的流媒體廣告插入方法,其中,所述步驟C具體包括:
Cl、將第一視頻基本碼流參數(shù)及準(zhǔn)備插入的廣告的圖像數(shù)據(jù)輸入H264編碼器,獲得H.264格式的第二視頻基本碼流;
C2、將準(zhǔn)備插入的廣告的音頻數(shù)據(jù)采用編碼器進(jìn)行編碼,輸出自動(dòng)數(shù)據(jù)遠(yuǎn)程通信服務(wù)格式的音頻流;
C3、根據(jù)第一流媒體的容器格式將生成的第二視頻基本碼流和音頻流進(jìn)行編碼,輸出插入的廣告對(duì)應(yīng)的第二流媒體片段。
[0010]所述的基于HLS協(xié)議的流媒體廣告插入方法,其中,所述步驟D具體包括:
D1、將第二流媒體片段存儲(chǔ)在服務(wù)器上,服務(wù)器生成對(duì)應(yīng)的第二流媒體片段地址;
D2、服務(wù)器對(duì)第一流媒體地址和對(duì)應(yīng)的第二流媒體片段地址進(jìn)行存儲(chǔ)。
[0011 ] 所述的基于HLS協(xié)議的流媒體廣告插入方法,其中,所述步驟E具體包括:
E1、服務(wù)器將第二流媒體片段地址發(fā)送給客戶端;
E2、客戶端將獲取到的第二流媒體片段地址加入第一流媒體片段列表;
E3、客戶端按照更新后的第一流媒體片段列表進(jìn)行播放。
[0012]一種基于HLS協(xié)議的流媒體廣告插入系統(tǒng),其中,所述系統(tǒng)包括:
請(qǐng)求接收模塊,用于客戶端向服務(wù)器發(fā)送第一流媒體視頻播放請(qǐng)求;
檢測(cè)與獲取模塊,用于服務(wù)器接收所述視頻播放請(qǐng)求后,檢測(cè)客戶端請(qǐng)求播放的第一流媒體地址,且判斷服務(wù)器中是否存在與第一流媒體地址相同的第二流媒體片段地址,如果存在則客戶端獲取第二流媒體片段地址,修改第一流媒體片段列表,按照更新后的第一流媒體片段列表進(jìn)行播放;如果不存在則獲取流媒體中視頻基本碼流格式為H.264的第一流媒體片段的第一視頻基本碼流參數(shù)及容器格式;
編碼與輸出模塊,用于服務(wù)器將獲取的第一視頻基本碼流參數(shù)與準(zhǔn)備插入的廣告的圖像數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行編碼,輸出插入的廣告對(duì)應(yīng)的第二流媒體片段;
存儲(chǔ)模塊,用于將第二流媒體片段存儲(chǔ)到服務(wù)器上,服務(wù)器生成對(duì)應(yīng)的第二流媒體片段地址并保存;
播放模塊,用于客戶端修改第一流媒體片段列表,按照更新后的第一流媒體片段列表進(jìn)行播放。
[0013]所述的基于HLS協(xié)議的流媒體廣告插入系統(tǒng),其中,所述檢測(cè)與獲取模塊具體包括:
檢測(cè)與下載單元,用于服務(wù)器檢測(cè)客戶端請(qǐng)求播放的第一流媒體地址,判斷服務(wù)器中是否存在與第一流媒體地址對(duì)應(yīng)的第二流媒體片段地址,如果存在則客戶端獲取第二流媒體片段地址,修改第一流媒體片段列表,按照更新后的第一流媒體片段列表進(jìn)行播放;如果不存在則從所述第一流媒體地址中下載原始的第一流媒體片段;
獲取與判斷單元,用于從第一流媒體片段中獲取第一視頻基本碼流參數(shù),判斷當(dāng)前第一視頻基本碼流是否是H.264格式;
第一控制單元,用于如果第一視頻基本碼流是H.264格式,獲取H.264格式的第一流媒體片段的基本碼流參數(shù)及容器格式;
第二控制單元,用于如果第一視頻基本碼流不是H.264格式,退出。
[0014]所述的基于HLS協(xié)議的流媒體廣告插入系統(tǒng),其中,所述編碼與輸出模塊包括:
第一編碼單元,用于將第一視頻基本碼流參數(shù)及準(zhǔn)備插入的廣告的圖像數(shù)據(jù)輸入H264
編碼器,獲得H.264格式的第二視頻基本碼流;
第二編碼單元,用于將準(zhǔn)備插入的廣告的音頻數(shù)據(jù)采用編碼器進(jìn)行編碼,輸出自動(dòng)數(shù)據(jù)遠(yuǎn)程通信服務(wù)格式的音頻流;
第三編碼與輸出單元,用于根據(jù)第一流媒體的容器格式將生成的第二視頻基本碼流和音頻流進(jìn)行編碼,輸出插入的廣告對(duì)應(yīng)的第二流媒體片段。
[0015]所述的基于HLS協(xié)議的流媒體廣告插入系統(tǒng),其中,所述存儲(chǔ)模塊具體包括:
第一存儲(chǔ)與地址生成單元,用于將第二流媒體片段存儲(chǔ)在服務(wù)器上,服務(wù)器生成對(duì)應(yīng)的第二流媒體片段地址;
第二存儲(chǔ)單元,用于服務(wù)器對(duì)第一流媒體地址和對(duì)應(yīng)的第二流媒體片段地址進(jìn)行存儲(chǔ)。
[0016]所述的基于HLS協(xié)議的流媒體廣告插入系統(tǒng),其中,所述播放模塊具體包括:
發(fā)送單元,用于當(dāng)服務(wù)器將第二流媒體片段地址發(fā)送給客戶端;
列表增加單元,用于客戶端將獲取到的第二流媒體片段地址加入第一流媒體的片段列表;
播放單元,用于客戶端按照更新后的第一流媒體片段列表進(jìn)行播放。
[0017]有益效果:本發(fā)明通過(guò)在HLS流媒體播放時(shí),對(duì)廣告片段進(jìn)行編碼,可實(shí)現(xiàn)將廣告片段地址加入流媒體的片段列表(m3u8文件)的需要位置,廣告可以通過(guò)修改后的流媒體索引文件的形式進(jìn)行插入,而且插入廣告后的流媒體播放流暢,方便快捷。
【附圖說(shuō)明】
[0018]圖1是本發(fā)明的一種基于HLS協(xié)議的流媒體廣告插入方法的較佳實(shí)施例的流程圖。
[0019]圖2是本發(fā)明的一種基于HLS協(xié)議的流媒體廣告插入系統(tǒng)的較佳實(shí)施例的功能原理框圖。
【具體實(shí)施方式】
[0020]為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚、明確,以下參照附圖并舉實(shí)施例對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0021]本發(fā)明第一實(shí)施例所述的一種基于HLS協(xié)議的流媒體廣告插入方法,如圖1所示,包括:
步驟S10、客戶端向服務(wù)器發(fā)送第一流媒體視頻播放請(qǐng)求。
[0022]具體實(shí)施時(shí),用戶通過(guò)視頻網(wǎng)站例如優(yōu)酷、愛(ài)奇藝、樂(lè)視等網(wǎng)站觀看視頻,而視頻網(wǎng)站經(jīng)常會(huì)在視頻上增加廣告。本發(fā)明中針對(duì)HLS流媒體數(shù)據(jù)中加入廣告。HLS流媒體有發(fā)布的協(xié)議,該協(xié)議保證了符合HLS協(xié)議的流媒體能正常播放