一種基于裸流直播方法、回看方法及其系統(tǒng)的制作方法
【專利摘要】一種基于裸流直播方法、回看方法及其系統(tǒng),其直播的方法包括如下步驟:創(chuàng)建節(jié)點;在所述節(jié)點上根據(jù)自定義的參數(shù)獲取源的直播流數(shù)據(jù);將所述直播流數(shù)據(jù)解析為裸流,將所述裸流進行分片存儲,并為分片存儲的所述裸流創(chuàng)建相應的幀信息索引,作為取源直播流信息;將所述取源直播流信息存放到合并取源列表中;獲取用戶的直播流請求;根據(jù)所述直播流請求,獲取視頻請求對應的所述取源直播流信息;實現(xiàn)基于裸流的直播;本發(fā)明通過邊緣節(jié)點拉取封裝好的流進行直播轉(zhuǎn)發(fā),解析出裸流支持其他格式的直播流請求;同時對裸流進行存儲,并形成索引;當有回看請求的時候,就可以支持多種封裝格式。
【專利說明】一種基于裸流直播方法、回看方法及其系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及流媒體的【技術(shù)領(lǐng)域】,尤其是涉及一種基于裸流直播方法及其回看方法。
【背景技術(shù)】
[0002]現(xiàn)有技術(shù)中的流媒體大多數(shù)可單獨實現(xiàn)直播或回看功能,而現(xiàn)有技術(shù)中的流媒體在封裝格式實時輸出僅可傳輸單一固定媒體格式。現(xiàn)有技術(shù)中不能夠?qū)崿F(xiàn)一種格式流的輸入的同時支持多種格式直播流的輸出和多種格式回看流;現(xiàn)有技術(shù)中的輸出不能夠分擔服務器壓力,不能夠?qū)崿F(xiàn)資源的均衡分配。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的在于設(shè)計一種基于裸流直播方法及其回看方法,解決上述問題。
[0004]為了實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
[0005]一種基于裸流直播的方法,包括如下步驟:
[0006]步驟101,創(chuàng)建節(jié)點;在所述節(jié)點上根據(jù)自定義的參數(shù)獲取源的直播流數(shù)據(jù);
[0007]步驟102,將所述直播流數(shù)據(jù)解析為裸流,將所述裸流進行分片存儲,并為分片存儲的所述裸流創(chuàng)建相應的幀信息索引,作為取源直播流信息;將所述取源直播流信息存放到合并取源列表中;
[0008]步驟103,獲取用戶的直播流請求;根據(jù)所述直播流請求,獲取視頻請求對應的所述取源直播流信息;
[0009]步驟104,根據(jù)獲取到的所述取源直播流信息;并根據(jù)所述取源直播流信息獲取所述裸流;將所述裸流封裝成所述視頻請求的類型的視頻流數(shù)據(jù),并將所述視頻流數(shù)據(jù)返回給用戶,實現(xiàn)基于裸流的直播。
[0010]優(yōu)選的,所述合并取源列表中的所述取源直播流信息在預設(shè)定的時間內(nèi)未被引用,則刪除所述取源直播流信息及所述取源直播流信息對應的裸流。
[0011]優(yōu)選的,所述裸流為任意編碼方式的原始音視頻編碼流數(shù)據(jù)。
[0012]優(yōu)選的,步驟103中,獲取視頻請求對應的所述取源直播流信息時,還判斷所述合并取源列表中是否存在所述直播流請求對應的取源直播流信息;
[0013]若存在,則將所述直播流請求放到取源的直播流請求播放隊列中,進入步驟104 ;
[0014]若不存在,則根據(jù)所述視頻請求,向視頻源發(fā)送請求,返回步驟101。
[0015]一種采用裸流直播的回播方法,包括如下步驟:
[0016]獲取用戶的回看請求;根據(jù)所述回看請求,判斷所述合并取源列表中是否存在所述回看請求對應的取源直播流信息;
[0017]若存在,則將所述用戶的回看請求放到取源直播流請求回播隊列中,并進入步驟106 ;
[0018]若不存在,則返回錯誤信息,并結(jié)束所述回看請求;
[0019]步驟106,將分片存儲的所述裸流封裝成所述回看請求的類型的視頻文件,并返回給用戶,實現(xiàn)基于裸流直播的回看。
[0020]優(yōu)選的,所述裸流為任意編碼方式的原始音視頻編碼流數(shù)據(jù)。
[0021]一種基于裸流直播的回播系統(tǒng),包括客戶端和服務器,所述客戶端用于向所述服務器發(fā)送直播請求或回看請求;所述服務器包括:
[0022]拉流取源模塊,用于創(chuàng)建節(jié)點,并在所述節(jié)點上根據(jù)自定義的參數(shù)獲取源的直播流數(shù)據(jù);
[0023]流處理模塊,用于將所述直播流數(shù)據(jù)解析為裸流,將所述裸流進行分片存儲,并為分片存儲的所述裸流創(chuàng)建相應的幀信息索引,作為取源直播流信息;
[0024]文件控制模塊,用于獲取用戶的直播流請求或回看流請求,并根據(jù)所述直播流請求或回看流請求給用戶返回視頻流數(shù)據(jù);
[0025]流接收模塊,用于解析所述直播流請求或解析所述回看流請求。
[0026]優(yōu)選的,所述流處理模塊還用于將所述取源直播流信息存放到合并取源列表中。
[0027]優(yōu)選的,所述流接收模塊還用于將所述回看流請求放到取源直播流請求回播隊列中。
[0028]裸流是指未經(jīng)過任何文件格式封裝的原始音視頻數(shù)據(jù)流。
[0029]本發(fā)明的有益效果可以總結(jié)如下:
[0030]本發(fā)明通過邊緣節(jié)點拉取封裝好的流進行直播轉(zhuǎn)發(fā),解析出裸流支持其他格式的直播流請求。同時對裸流進行存儲,并形成索引。當有回看請求的時候,就可以支持多種封裝格式,并且形成熱點索引,加快查找速度,提供更好的用戶體驗。與現(xiàn)有技術(shù)相比,本發(fā)明支持一種格式流的輸入同時支持多種格式直播流的輸出和多種格式回看流的輸出,分擔服務器壓力,實現(xiàn)了資源的均衡分配。
【專利附圖】
【附圖說明】
[0031]圖1為本發(fā)明的基于裸流直播的方法的流程示意圖;
[0032]圖2為本發(fā)明的基于裸流直播的回看方法的流程示意圖;
[0033]圖3為本發(fā)明的整體結(jié)構(gòu)示意圖;
[0034]圖4為本發(fā)明的流接收處理流程示意圖;
[0035]圖5為本發(fā)明的文件控制模塊實現(xiàn)回看功能的流程示意圖。
【具體實施方式】
[0036]為了使本發(fā)明所解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0037]如圖1所示的一種基于裸流直播的方法,包括如下步驟:
[0038]步驟101,創(chuàng)建節(jié)點;在節(jié)點上根據(jù)自定義的參數(shù)獲取源(源指的是視頻等多媒體的源信息)的直播流數(shù)據(jù);
[0039]步驟102,將直播流數(shù)據(jù)解析為裸流,將裸流進行分片存儲,并為分片存儲的裸流創(chuàng)建相應的幀信息索引,作為取源直播流信息;將取源直播流信息存放到合并取源列表中;合并取源列表中的取源直播流信息在預設(shè)定的時間內(nèi)未被引用,則刪除取源直播流信息及取源直播流信息對應的裸流;裸流為任意編碼方式的原始音視頻編碼流數(shù)據(jù);
[0040]步驟103,獲取用戶的直播流請求;根據(jù)直播流請求,獲取視頻請求對應的取源直播流息;
[0041]步驟104,根據(jù)獲取到的取源直播流信息;并根據(jù)取源直播流信息獲取裸流;將裸流封裝成視頻請求的類型的視頻流數(shù)據(jù),并將視頻流數(shù)據(jù)返回給用戶,實現(xiàn)基于裸流的直播。
[0042]步驟103中,獲取視頻請求對應的取源直播流信息時,還判斷合并取源列表中是否存在直播流請求對應的取源直播流信息;
[0043]若存在,則將直播流請求放到取源的直播流請求播放隊列中,進入步驟104 ;
[0044]若不存在,則根據(jù)視頻請求,向視頻源發(fā)送請求,返回步驟101。
[0045]如圖2所示,一種采用權(quán)利要求1的裸流直播的回播方法,包括如下步驟:
[0046]獲取用戶的回看請求;根據(jù)回看請求,判斷合并取源列表中是否存在回看請求對應的取源直播流信息;
[0047]若存在,則將用戶的回看請求放到取源直播流請求回播隊列中,并進入步驟106 ;
[0048]若不存在,則返回錯誤信息,并結(jié)束回看請求;
[0049]步驟106,將分片存儲的裸流封裝成回看請求的類型的視頻文件,并返回給用戶,實現(xiàn)基于裸流直播的回看。
[0050]裸流為任意編碼方式的原始音視頻編碼流數(shù)據(jù)。
[0051]一種基于裸流直播的回播系統(tǒng),包括客戶端和服務器,客戶端用于向服務器發(fā)送直播請求或回看請求;服務器包括:
[0052]拉流取源模塊,用于創(chuàng)建節(jié)點,并在節(jié)點上根據(jù)自定義的參數(shù)獲取源的直播流數(shù)據(jù);
[0053]流處理模塊,用于將直播流數(shù)據(jù)解析為裸流,將裸流進行分片存儲,并為分片存儲的裸流創(chuàng)建相應的幀信息索引,作為取源直播流信息;
[0054]文件控制模塊,用于獲取用戶的直播流請求或回看流請求,并根據(jù)直播流請求或回看流請求給用戶返回視頻流數(shù)據(jù);流處理模塊還用于將取源直播流信息存放到合并取源列表中;
[0055]流接收模塊,用于解析直播流請求或解析回看流請求;流接收模塊還用于將回看流請求放到取源直播流請求回播隊列中。
[0056]如圖3所示,拉流取源模塊工作原理如下:啟動節(jié)點和源;節(jié)點依據(jù)配置主動從源拉流,并且將將配置相關(guān)信息存儲到合并取源列表。亦可被動接收源推流,并且將流相關(guān)信息加入到合并回源列表當中。節(jié)點等待用戶請求,當用戶發(fā)起請求時,節(jié)點首先查找合并取源列表,是否有相關(guān)流信息,若存在,那么將此請求放到對應流結(jié)構(gòu)隊列中等待發(fā)送;否則,節(jié)點會向源發(fā)起此請求,并且將此請求相關(guān)信息加入到合并取源列表中,并且將請求I加入到此流結(jié)構(gòu)隊列中。收到源相應并且發(fā)送.此方法配置靈活,并且如果源有頻道的加入也不需要將每個節(jié)點都修改配置,也就不需要重啟所有的節(jié)點。這樣就增加了用戶體驗,簡化了操作。
[0057]如圖4所示,對于節(jié)點,流接收處理如下:當節(jié)點接收到上層給的流數(shù)據(jù)之后,根據(jù)封裝格式,將容器解封裝,解析成裸流,然后將解析完的完整一幀放到合并取源結(jié)構(gòu)中,等待直播或者短期時移的發(fā)送,將裸流封裝成指定格式發(fā)送個用戶。同時可將此數(shù)據(jù)以裸流的形式保存到相應的文件中,并且寫索引。保存裸流數(shù)據(jù)以及索引文件是按照某些固定模式生成的,因此回看的時候可以快速定位。當超過規(guī)定時間并且該幀沒有引用的時候,刪除此幀。文件存儲的同。
[0058]如圖5所示,對于時間較早的回看功能,方案通過解析用戶傳入的參數(shù),找到對應的索引文件,通過保存的索引文件找到相應裸流文件,通過相應的索引信息找到相應的最符合用戶需求的關(guān)鍵幀,然后依據(jù)請求所要求的封裝格式將裸流進行相應的封裝,然后發(fā)送給客戶端。
[0059]對于文件控制模塊(回看功能模塊),本方案流程如下:首先解析請求回看參數(shù),如果符合規(guī)則(生成規(guī)則、時間等),那么依據(jù)參數(shù)、以及之前提到的文件生成規(guī)則,快速定位到流及其索引文件。通過索引文件找到最符合參數(shù)條件的幀的位置,然后向客戶端發(fā)送數(shù)據(jù)。對于過期的文件,及時刪除,并且刪除索引信息。
[0060]本發(fā)明解決直播和回看多封裝格式實時輸出的問題;同時通過將邊緣節(jié)點直播和回看功能放到同一服務器上的方式達到節(jié)省資源、降低源站壓力的作用。本發(fā)明通過邊緣節(jié)點拉取封裝好的流進行直播轉(zhuǎn)發(fā),解析出裸流支持其他格式的直播流請求。同時對裸流進行存儲,并形成索引。當有回看請求的時候,就可以支持多種封裝格式,并且形成熱點索弓丨,加快查找速度,提供更好的用戶體驗。與現(xiàn)有技術(shù)相比,本發(fā)明支持一種格式流的輸入同時支持多種格式直播流的輸出和多種格式回看流的輸出,分擔服務器壓力,實現(xiàn)了資源的均衡分配。
[0061]以上通過具體的和優(yōu)選的實施例詳細的描述了本發(fā)明,但本領(lǐng)域技術(shù)人員應該明白,本發(fā)明并不局限于以上所述實施例,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換等,均應包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種基于裸流直播的方法,其特征在于,包括如下步驟: 步驟101,創(chuàng)建節(jié)點;在所述節(jié)點上根據(jù)自定義的參數(shù)獲取源的直播流數(shù)據(jù); 步驟102,將所述直播流數(shù)據(jù)解析為裸流,將所述裸流進行分片存儲,并為分片存儲的所述裸流創(chuàng)建相應的幀信息索引,作為取源直播流信息;將所述取源直播流信息存放到合并取源列表中; 步驟103,獲取用戶的直播流請求;根據(jù)所述直播流請求,獲取視頻請求對應的所述取源直播流信息; 步驟104,根據(jù)獲取到的所述取源直播流信息;并根據(jù)所述取源直播流信息獲取所述裸流;將所述裸流封裝成所述視頻請求的類型的視頻流數(shù)據(jù),并將所述視頻流數(shù)據(jù)返回給用戶,實現(xiàn)基于裸流的直播。
2.根據(jù)權(quán)利要求1所述的基于裸流直播的方法,其特征在于:所述合并取源列表中的所述取源直播流信息在預設(shè)定的時間內(nèi)未被引用,則刪除所述取源直播流信息及所述取源直播流信息對應的裸流。
3.根據(jù)權(quán)利要求1所述的基于裸流直播的方法,其特征在于:所述裸流為任意編碼方式的原始音視頻編碼流數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的基于裸流直播的方法,其特征在于:步驟103中,獲取視頻請求對應的所述取源直播流信息時,還判斷所述合并取源列表中是否存在所述直播流請求對應的取源直播流信息; 若存在,則將所述直播流請求放到取源的直播流請求播放隊列中,進入步驟104 ; 若不存在,則根據(jù)所述視頻請求,向視頻源發(fā)送請求,返回步驟101。
5.一種采用權(quán)利要求1所述的裸流直播的回看方法,其特征在于,包括如下步驟: 獲取用戶的回看請求;根據(jù)所述回看請求,判斷所述合并取源列表中是否存在所述回看請求對應的取源直播流信息; 若存在,則將所述用戶的回看請求放到取源直播流請求回播隊列中,并進入步驟106 ; 若不存在,則返回錯誤信息,并結(jié)束所述回看請求; 步驟106,將分片存儲的所述裸流封裝成所述回看請求的類型的視頻文件,并返回給用戶,實現(xiàn)基于裸流直播的回看。
6.根據(jù)權(quán)利要求5所述的基于裸流直播的回看方法,其特征在于:所述裸流為任意編碼方式的原始音視頻編碼流數(shù)據(jù)。
7.一種基于裸流直播的回播系統(tǒng),包括客戶端和服務器,其特征在于:所述客戶端用于向所述服務器發(fā)送直播請求或回看請求;所述服務器包括: 拉流取源模塊,用于創(chuàng)建節(jié)點,并在所述節(jié)點上根據(jù)自定義的參數(shù)獲取源的直播流數(shù)據(jù); 流處理模塊,用于將所述直播流數(shù)據(jù)解析為裸流,將所述裸流進行分片存儲,并為分片存儲的所述裸流創(chuàng)建相應的幀信息索引,作為取源直播流信息; 文件控制模塊,用于獲取用戶的直播流請求或回看流請求,并根據(jù)所述直播流請求或回看流請求給用戶返回視頻流數(shù)據(jù); 流接收模塊,用于解析所述直播流請求或解析所述回看流請求。
8.根據(jù)權(quán)利要求7所述的將所述基于裸流直播的回播系統(tǒng),其特征在于:所述流處理模塊還用于將所述取源直播流信息存放到合并取源列表中。
9.根據(jù)權(quán)利要求7所述的將所述基于裸流直播的回播系統(tǒng),其特征在于:所述流接收模塊還用于將所述回看流請求放到取源直播流請求回播隊列中。
【文檔編號】H04N21/236GK104202616SQ201410459790
【公開日】2014年12月10日 申請日期:2014年9月11日 優(yōu)先權(quán)日:2014年9月11日
【發(fā)明者】彭揚 申請人:北京閱聯(lián)信息技術(shù)有限公司