本發(fā)明涉及流媒體領(lǐng)域,特別涉及一種基于B/S架構(gòu)的視頻直播流快編收錄系統(tǒng)及實(shí)現(xiàn)方法。
背景技術(shù):隨著網(wǎng)絡(luò)媒體與傳統(tǒng)媒體的融合,對(duì)傳統(tǒng)視頻進(jìn)行簡(jiǎn)單編輯收錄,并發(fā)布到互聯(lián)網(wǎng)的需求越來越高。隨著對(duì)視頻質(zhì)量的要求不斷提高,要求對(duì)視頻的編輯能精確到幀。業(yè)界普遍的做法是:編碼器采集原始信號(hào),壓縮成視頻流;快編器解壓視頻流,供操作人員預(yù)覽,在合適的位置把視頻流切開,去除廣告,保留需要的部分。預(yù)覽方式就是利用播放器不斷前進(jìn)、后退來定位到需要的幀,不能展現(xiàn)視頻的全貌,操作起來費(fèi)時(shí)費(fèi)力。而且播放器需要定制開發(fā),來保證幀精確。B/S架構(gòu),就是browser/server(瀏覽器/服務(wù)器)架構(gòu),是隨著互聯(lián)網(wǎng)技術(shù)的興起,對(duì)C/S架構(gòu)的改進(jìn)結(jié)構(gòu)。利用瀏覽器實(shí)現(xiàn)用戶界面和極少的業(yè)務(wù)邏輯,利用服務(wù)器實(shí)現(xiàn)主要的業(yè)務(wù)邏輯。如果視頻編輯能采用B/S架構(gòu),視頻的操作和管理都在集中在服務(wù)器端,能大大減少管理成本和部署成本。但是能展現(xiàn)視頻全貌的高效操作方式并且使用B/S架構(gòu)視頻編輯軟件目前還沒有。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明要解決的技術(shù)問題就是解決傳統(tǒng)視頻編輯過程中的需要反復(fù)定位幀的缺陷,提出一種基于B/S架構(gòu)的視頻直播流快編收錄系統(tǒng)及實(shí)現(xiàn)方法,節(jié)約了開發(fā)成本和客戶的部署成本。為了解決上述問題,本發(fā)明提供一種基于B/S架構(gòu)的視頻直播流快編收錄系統(tǒng),包括采集子系統(tǒng)、編碼子系統(tǒng)、快編子系統(tǒng)和存儲(chǔ)子系統(tǒng),其中,所述編碼子系統(tǒng)分別與采集子系統(tǒng)和存儲(chǔ)子系統(tǒng)相連,所述存儲(chǔ)子系統(tǒng)分別與編碼子系統(tǒng)和快編子系統(tǒng)相連;所述采集子系統(tǒng)用于采集音視頻信號(hào),輸出未壓縮的音視頻數(shù)據(jù)至編碼子系統(tǒng);所述編碼子系統(tǒng)用于利用所述采集子系統(tǒng)輸出的音視頻數(shù)據(jù)生成第一直播流、第二直播流、秒圖以及第一直播流和第二直播流的索引信息,并存儲(chǔ)至所述存儲(chǔ)子系統(tǒng);其中,所述第一直播流為采集子系統(tǒng)輸出的音視頻數(shù)據(jù)壓縮而成的正常大小的直播視頻流,所述第二直播流為寬高小于第一直播流的直播視頻流,所述秒圖為所述第二直播流的每秒一張的縮略圖;所述快編子系統(tǒng)用于根據(jù)瀏覽器發(fā)送的視頻時(shí)間將相應(yīng)的分鐘圖、秒圖和利用第二直播流生成的幀圖發(fā)送至瀏覽器,根據(jù)瀏覽器返回的編輯參數(shù)和索引信息對(duì)存儲(chǔ)子系統(tǒng)中的第一直播流進(jìn)行編輯和收錄;其中,所述分鐘圖為所述視頻每一分鐘的縮略圖;所述存儲(chǔ)子系統(tǒng)用于存儲(chǔ)所述第一直播流、第二直播流、秒圖和索引信息。優(yōu)選地,上述系統(tǒng)還具有以下特點(diǎn):所述編碼子系統(tǒng)包括:編碼模塊以及與所述編碼模塊相連的截圖模塊和索引模塊,其中,所述編碼模塊用于生成第一直播流和第二直播流,并將所述第一直播流和第二直播流存儲(chǔ)至所述存儲(chǔ)子系統(tǒng),兩個(gè)直播流的視頻幀的時(shí)間戳完全對(duì)應(yīng);所述索引模塊用于生成所述第一直播流和第二直播流的索引信息;所述截圖模塊用于生成秒圖。優(yōu)選地,上述系統(tǒng)還具有以下特點(diǎn):所述快編子系統(tǒng)包括:WEB服務(wù)器以及與所述WEB服務(wù)器相連的解碼模塊和快編模塊,其中,所述WEB服務(wù)器用于接收瀏覽器發(fā)送的視頻時(shí)間,發(fā)送分鐘圖、秒圖至瀏覽器;接收解碼模塊發(fā)來的幀圖,將幀圖發(fā)送至瀏覽器;以及,接收瀏覽器發(fā)送的編輯參數(shù),發(fā)送至快編模塊;所述解碼模塊用于根據(jù)所述視頻時(shí)間截取所述第二直播流中1秒內(nèi)的幀圖,并記錄每幀的時(shí)間戳,將幀圖發(fā)送至WEB服務(wù)器;所述快編模塊用于根據(jù)所述編輯參數(shù)和索引信息對(duì)存儲(chǔ)子系統(tǒng)中的所述第一直播流進(jìn)行編輯和收錄。優(yōu)選地,上述系統(tǒng)還具有以下特點(diǎn):所述快編模塊根據(jù)所述WEB服務(wù)器返回的編輯參數(shù)中的時(shí)間戳對(duì)所述第一直播流進(jìn)行編輯和收錄,其中,對(duì)所述時(shí)間戳所在GOP(關(guān)鍵幀之間的組圖)進(jìn)行重新編解碼,對(duì)兩個(gè)時(shí)間戳之間的GOP直接復(fù)制。優(yōu)選地,上述系統(tǒng)還具有以下特點(diǎn):所述索引信息包括:第一直播流和第二直播流中每個(gè)關(guān)鍵幀的字節(jié)位置和時(shí)間戳,以及每個(gè)秒圖的時(shí)間戳。為了解決上述問題,本發(fā)明提供一種編碼子系統(tǒng),包括編碼模塊以及與所述編碼模塊相連的截圖模塊和索引模塊,其中,所述編碼模塊用于利用采集子系統(tǒng)輸出的音視頻數(shù)據(jù)生成第一直播流和第二直播流,兩個(gè)直播流的視頻幀的時(shí)間戳完全對(duì)應(yīng);所述索引模塊用于生成所述第一直播流和第二直播流的索引信息;所述截圖模塊用于根據(jù)所述第二直播流生成秒圖;其中,所述第一直播流為采集子系統(tǒng)輸出的音視頻數(shù)據(jù)壓縮而成的正常大小的直播視頻流,所述第二直播流為寬高小于第一直播流的直播視頻流,所述秒圖為所述第二直播流的每秒一張的縮略圖。為了解決上述問題,本發(fā)明提供一種快編子系統(tǒng),包括:WEB服務(wù)器以及與所述WEB服務(wù)器相連的解碼模塊和快編模塊,其中,所述WEB服務(wù)器用于接收瀏覽器發(fā)送的視頻時(shí)間,發(fā)送分鐘圖、秒圖至瀏覽器;接收解碼模塊發(fā)來的幀圖,將幀圖發(fā)送至瀏覽器;以及,接收瀏覽器發(fā)送的編輯參數(shù),發(fā)送至快編模塊;所述解碼模塊用于根據(jù)所述視頻時(shí)間截取所述第二直播流中1秒內(nèi)的幀圖,并記錄每幀的時(shí)間戳,將幀圖發(fā)送至WEB服務(wù)器;所述快編模塊用于根據(jù)所述編輯參數(shù)和索引信息對(duì)存儲(chǔ)子系統(tǒng)中的所述第一直播流進(jìn)行編輯和收錄。為了解決上述問題,本發(fā)明提供一種基于B/S架構(gòu)的多級(jí)預(yù)覽的視頻直播流快編收錄系統(tǒng)的實(shí)現(xiàn)方法,包括:采集子系統(tǒng)采集音視頻信號(hào),輸出未壓縮的音視頻數(shù)據(jù)至編碼子系統(tǒng);編碼子系統(tǒng)利用所述采集子系統(tǒng)輸出的音視頻數(shù)據(jù)生成第一直播流、第二直播流、秒圖以及第一直播流和第二直播流的索引信息,并存儲(chǔ)至所述存儲(chǔ)子系統(tǒng);其中,所述第一直播流為采集子系統(tǒng)輸出的音視頻數(shù)據(jù)壓縮而成的正常大小的直播視頻流,所述第二直播流為寬高小于第一直播流的直播視頻流,所述秒圖為所述第二直播流的每秒一張的縮略圖;快編子系統(tǒng)根據(jù)瀏覽器發(fā)送的視頻時(shí)間將相應(yīng)的分鐘圖、秒圖和第二直播流生成的幀圖發(fā)送至瀏覽器,根據(jù)瀏覽器返回的編輯參數(shù)和索引信息對(duì)第一直播流進(jìn)行編輯和收錄;其中,所述分鐘圖為所述視頻每一分鐘的縮略圖。優(yōu)選地,上述方法還具有以下特點(diǎn):所述快編子系統(tǒng)包括:WEB服務(wù)器、解碼模塊和快編模塊;所述快編子系統(tǒng)根據(jù)瀏覽器發(fā)送的視頻時(shí)間將相應(yīng)的分鐘圖、秒圖和第二直播流生成的幀圖發(fā)送至瀏覽器,根據(jù)瀏覽器返回的編輯參數(shù)和索引信息對(duì)第一直播流進(jìn)行編輯和收錄的步驟包括:所述WEB服務(wù)器接收瀏覽器發(fā)送視頻時(shí)間,發(fā)送至解碼模塊;所述解碼模塊根據(jù)所述視頻時(shí)間截取存儲(chǔ)子系統(tǒng)中的所述第二直播流中1秒內(nèi)的幀圖,并記錄每幀的時(shí)間戳,將幀圖發(fā)送至WEB服務(wù)器;所述WEB服務(wù)器將幀圖以及相應(yīng)的分鐘圖和秒圖發(fā)送至瀏覽器;所述WEB服務(wù)器接收瀏覽器發(fā)送的編輯參數(shù),發(fā)送至快編模塊;所述快編模塊根據(jù)所述編輯參數(shù)和索引信息,對(duì)存儲(chǔ)子系統(tǒng)中的所述第一直播流進(jìn)行編輯和收錄。優(yōu)選地,上述方法還具有以下特點(diǎn):在所述快編模塊根據(jù)所述編輯參數(shù)和索引信息對(duì)所述第一直播流進(jìn)行編輯和收錄的步驟中,所述快編模塊根據(jù)所述WEB服務(wù)器返回的編輯參數(shù)中的時(shí)間戳對(duì)所述第一直播流進(jìn)行編輯和收錄,其中,對(duì)所述時(shí)間戳所在的GOP進(jìn)行重新編解碼,對(duì)兩個(gè)時(shí)間戳之間的GOP直接復(fù)制。通過本發(fā)明,可以實(shí)現(xiàn)一種基于分鐘圖、秒圖、幀圖多級(jí)圖片的視頻瀏覽方式,非??旖?,解決了傳統(tǒng)視頻編輯過程中的需要反復(fù)定位幀的難題。此外采取多級(jí)圖片的方式,可以利用B/S架構(gòu),所有操作都在服務(wù)器上進(jìn)行,節(jié)約了開發(fā)成本和客戶的部署成本。通過本發(fā)明,實(shí)現(xiàn)了編碼模塊同時(shí)輸出正常直播流、低碼率直播流及其縮略圖、索引信息,省去了對(duì)正常直播流的重新編解碼過程。因?yàn)榈痛a率直播流及其縮略圖、索引信息是可以在編碼過程中直接得到的,如果從正常直播流計(jì)算出這些數(shù)據(jù),必定有一個(gè)對(duì)整個(gè)直播流重新編解碼過程,這在點(diǎn)播文件中可以忍受,但在直播流中會(huì)大大增加復(fù)雜度。另外通過本發(fā)明,生成的縮略圖可以供內(nèi)容管理系統(tǒng)使用,省去了重新截圖的過程。附圖說明圖1為本發(fā)明實(shí)施例的基于B/S架構(gòu)的多級(jí)預(yù)覽的視頻直播流快編收錄系統(tǒng)示意圖;圖2為本發(fā)明實(shí)施例的編碼子系統(tǒng)的示意圖;圖3為本發(fā)明實(shí)施例的編碼的流程圖;圖4為本發(fā)明實(shí)施例的快編子系統(tǒng)示意圖;圖5為本發(fā)明實(shí)施例的快編子系統(tǒng)的UI(用戶界面)示意圖;圖6為本發(fā)明實(shí)施例的快編模塊進(jìn)行編輯的示意圖。具體實(shí)施方式下文中將結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互合理組合。如圖1所示,本發(fā)明實(shí)施例的基于B/S架構(gòu)的視頻直播流快編收錄系統(tǒng),包括采集子系統(tǒng)、編碼子系統(tǒng)、快編子系統(tǒng)和存儲(chǔ)子系統(tǒng),其中,所述編碼子系統(tǒng)分別與采集子系統(tǒng)和存儲(chǔ)子系統(tǒng)相連,所述存儲(chǔ)子系統(tǒng)分別與編碼子系統(tǒng)和快編子系統(tǒng)相連;所述采集子系統(tǒng)用于采集音視頻信號(hào),輸出未壓縮的音視頻數(shù)據(jù)至編碼子系統(tǒng);所述編碼子系統(tǒng)用于利用所述采集子系統(tǒng)輸出的音視頻數(shù)據(jù)生成第一直播流、第二直播流、秒圖以及第一直播流和第二直播流的索引信息,并存儲(chǔ)至所述存儲(chǔ)子系統(tǒng);其中,所述第一直播流為采集子系統(tǒng)輸出的音視頻數(shù)據(jù)壓縮而成的正常大小的直播視頻流,所述第二直播流為寬高小于第一直播流的直播視頻流,所述秒圖為所述第二直播流的每秒一張的縮略圖;所述快編子系統(tǒng)用于根據(jù)瀏覽器發(fā)送的視頻時(shí)間將相應(yīng)的分鐘圖、秒圖和利用第二直播流生成的幀圖發(fā)送至瀏覽器,根據(jù)瀏覽器返回的編輯參數(shù)和索引信息對(duì)存儲(chǔ)子系統(tǒng)中的第一直播流進(jìn)行編輯和收錄;其中,所述分鐘圖為所述視頻每一分鐘的縮略圖;所述存儲(chǔ)子系統(tǒng)用于存儲(chǔ)所述第一直播流、第二直播流、秒圖和索引信息。下面分別對(duì)各個(gè)子系統(tǒng)進(jìn)行詳細(xì)描述。一、采集子系統(tǒng)采集子系統(tǒng)可以是視頻采集卡或視頻解碼卡。當(dāng)采集子系統(tǒng)的輸入為未壓縮的音視頻信號(hào)時(shí),采集子系統(tǒng)為視頻采集卡;當(dāng)采集子系統(tǒng)的輸入為壓縮的音視頻信號(hào)時(shí),采集子系統(tǒng)為視頻解碼卡。二、編碼子系統(tǒng)如圖1和2所示,編碼子系統(tǒng)包括所述編碼子系統(tǒng)包括:編碼模塊以及與所述編碼模塊相連的截圖模塊和索引模塊。所述編碼模塊用于生成第一直播流和第二直播流,并將所述第一直播流和第二直播流存儲(chǔ)至所述存儲(chǔ)子系統(tǒng),兩個(gè)直播流的視頻幀的時(shí)間戳完全對(duì)應(yīng);所述索引模塊用于生成所述第一直播流和第二直播流的索引信息;所述截圖模塊用于生成秒圖。索引信息包括但不限于:第一直播流和第二直播流中的每個(gè)關(guān)鍵幀的字節(jié)位置和時(shí)間戳,以及每個(gè)秒圖的時(shí)間戳。具體地,索引信息可以包括:1、每張秒圖對(duì)應(yīng)的精確時(shí)間戳。2、低碼率流每個(gè)關(guān)鍵幀的時(shí)間戳和字節(jié)位置,用于出幀圖時(shí),實(shí)時(shí)解碼用。3、正常直播流內(nèi)每個(gè)關(guān)鍵幀的時(shí)間戳和字節(jié)位置,用于對(duì)直播流編輯。第二直播流的寬高通常為第一直播流的五分之一~十分之一,為低碼率的直播流。如圖3所示,編碼子系統(tǒng)進(jìn)行編碼的過程可包括如下步驟:步驟101,編碼模塊判斷某一幀是否需要編碼,如果是,則執(zhí)行步驟102和103;步驟102,將該幀數(shù)據(jù)編入正常直播流(第一直播流),并存儲(chǔ)至存儲(chǔ)子模塊,執(zhí)行步驟106;步驟103,將該幀縮小,執(zhí)行步驟104和105;步驟104,將縮小的幀編入低碼率直播流(第二直播流),并存儲(chǔ)至存儲(chǔ)子模塊,執(zhí)行步驟106;步驟105,索引模塊判斷該幀是否是秒的第一幀,若是,則執(zhí)行步驟109;步驟106,解析第一直播流和第二直播流的流信息;步驟107,判斷該幀是否是關(guān)鍵幀,若是,則執(zhí)行下一步;步驟108,記錄下該幀的時(shí)間戳和字節(jié)位置(即索引信息),存入存儲(chǔ)子系統(tǒng),返回執(zhí)行步驟101;步驟109,截圖模塊將縮小的幀作為秒圖,存儲(chǔ)至存儲(chǔ)子系統(tǒng)。其中,上述步驟102和103并行進(jìn)行,步驟104和105并行進(jìn)行。本實(shí)施例中,秒圖為每秒的第一幀,在其他實(shí)施例中,秒圖也可以指定為每秒的其他幀。三、存儲(chǔ)子系統(tǒng)存儲(chǔ)子系統(tǒng)為存儲(chǔ)設(shè)備,用于存儲(chǔ)所述第一直播流、第二直播流、秒圖和索引信息,通常為硬盤或NAS存儲(chǔ)系統(tǒng),也可以是其它存儲(chǔ)設(shè)備。四、快編子系統(tǒng)如圖4所示,快編子系統(tǒng)包括:WEB服務(wù)器(網(wǎng)絡(luò)服務(wù)器)以及與所述WEB服務(wù)器相連的解碼模塊和快編模塊,其中,所述WEB服務(wù)器用于接收瀏覽器發(fā)送的視頻時(shí)間,發(fā)送分鐘圖、秒圖至瀏覽器;接收解碼模塊發(fā)來的幀圖,將幀圖發(fā)送至瀏覽器;以及,接收瀏覽器發(fā)送的編輯參數(shù),發(fā)送至快編模塊;所述解碼模塊用于根據(jù)所述視頻時(shí)間截取所述第二直播流中1秒內(nèi)的幀圖,并記錄每幀的時(shí)間戳,將幀圖發(fā)送至WEB服務(wù)器;所述快編模塊用于根據(jù)所述編輯參數(shù)和索引信息對(duì)存儲(chǔ)子系統(tǒng)中的所述第一直播流進(jìn)行編輯和收錄。其中,分鐘圖可利用秒圖得到,即從秒圖中選擇一張作為分鐘圖。該子系統(tǒng)的執(zhí)行可包括如下步驟:步驟201,WEB服務(wù)器接收瀏覽器發(fā)送視頻時(shí)間,發(fā)送至解碼模塊;步驟202,解碼模塊根據(jù)所述視頻時(shí)間截取存儲(chǔ)子系統(tǒng)中的所述第二直播流中1秒內(nèi)的幀圖,并記錄每幀的時(shí)間戳,將幀圖發(fā)送至WEB服務(wù)器;步驟203,WEB服務(wù)器將幀圖以及相應(yīng)的分鐘圖和秒圖和發(fā)送至瀏覽器;步驟205,WEB服務(wù)器接收瀏覽器發(fā)送的編輯參數(shù),發(fā)送至快編模塊;步驟206,快編模塊根據(jù)所述編輯參數(shù)和索引信息,對(duì)存儲(chǔ)子系統(tǒng)中的所述第一直播流進(jìn)行編輯和收錄。這里有必要解釋一下,操作人員僅僅在視頻裁切點(diǎn)才會(huì)瀏覽幀圖,瀏覽的幀圖僅占視頻所有幀的很小一部分;為了提高存儲(chǔ)效率,所以用一個(gè)低碼率直播流(第二直播流)來實(shí)時(shí)生成幀圖,而不像秒圖那樣預(yù)先保存下來。如圖5所示,為UI界面示意圖,其中,具體操作流程為:1、用戶選擇日期,小時(shí),瀏覽器顯示該小時(shí)所有的分鐘圖,第一分鐘所有秒圖,第一秒所有幀圖。2、用戶選擇分鐘,瀏覽器顯示該分鐘所有的秒圖,顯示第一秒所有的幀圖。4用戶選擇秒,瀏覽器顯示該秒的所有幀圖5、用戶選擇幀圖,記錄下該編輯點(diǎn)?!熬庉孅c(diǎn)圖”加入該幀圖。然后返回1或2。6、用戶點(diǎn)擊“收錄”,快編模塊對(duì)編輯點(diǎn)之間的直播流進(jìn)行收錄保存。通過上述流程,可以快速定位視頻裁切點(diǎn),其中,利用分鐘圖預(yù)覽大跨度時(shí)間段的流,分鐘圖可以每分鐘內(nèi)第一秒的一幀,但不限于此;利用秒圖預(yù)覽一分鐘之內(nèi)的流,秒圖可以是每秒內(nèi)的第一幀,但不限于此;利用幀圖預(yù)覽一秒內(nèi)的流。當(dāng)用戶選擇好裁切點(diǎn)(一幀)后,WEB服務(wù)器返回該幀對(duì)應(yīng)的精確時(shí)間戳??炀幠K根據(jù)WEB服務(wù)器返回的編輯參數(shù)中的時(shí)間戳對(duì)第一直播流進(jìn)行編輯和收錄,如圖6所示,對(duì)所述時(shí)間戳所在的GOP(GroupofPictures,是兩個(gè)關(guān)鍵幀之間的一組圖像,每個(gè)GOP開頭是一個(gè)關(guān)鍵幀)進(jìn)行重新編解碼,對(duì)兩個(gè)時(shí)間戳之間的GOP直接復(fù)制。這樣,僅僅對(duì)裁切點(diǎn)所在的GOP進(jìn)行重新編解碼,其他部分僅需要復(fù)制就可以了。綜上所述,本發(fā)明通過編碼子系統(tǒng)產(chǎn)生用于產(chǎn)生幀圖的低碼率流,每秒一張的縮略圖,以及產(chǎn)生視頻索引信息,能夠?qū)崿F(xiàn)對(duì)視頻幀的快速定位,減少操作人員的負(fù)擔(dān);利用B/S架構(gòu),減少管理和部署成本;以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。