云導(dǎo)播臺(tái)以及多路視頻拼接方法
【專利摘要】本發(fā)明實(shí)施例公開了一種云導(dǎo)播臺(tái)以及多路視頻拼接方法,所述方法包括:在數(shù)據(jù)讀取周期到達(dá)時(shí),以并行方式讀取各路視頻的數(shù)據(jù);針對(duì)每路視頻,將讀取到的數(shù)據(jù)緩存到該路視頻的隊(duì)列中;在數(shù)據(jù)拼接周期到達(dá)時(shí),識(shí)別出緩存的最小序號(hào)的視頻幀;并判斷出各路視頻的隊(duì)列中都存有該序號(hào)的視頻幀后,將該序號(hào)的各視頻幀分別從各隊(duì)列中讀取出并進(jìn)行拼接。應(yīng)用本發(fā)明,云導(dǎo)播臺(tái)可以在網(wǎng)絡(luò)傳輸不穩(wěn)定的情況下盡量避免卡頓、或者丟失畫面的現(xiàn)象,以提升播放的流暢性,提升用戶的使用體驗(yàn)。
【專利說明】
云導(dǎo)播臺(tái)以及多路視頻拼接方法
技術(shù)領(lǐng)域
[0001]本發(fā)明實(shí)施例涉及云導(dǎo)播技術(shù)領(lǐng)域,特別是涉及一種云導(dǎo)播臺(tái)以及多路視頻拼接方法。
【背景技術(shù)】
[0002]在傳統(tǒng)的電視節(jié)目制作中,對(duì)于采用固定場(chǎng)地、固定燈光類的節(jié)目(如電視欄目、情景劇等),一般都采用多臺(tái)攝像機(jī)進(jìn)行拍攝,這樣制作完成后的節(jié)目具有多角度、多景別的特點(diǎn),也表現(xiàn)的更全面、更好看。
[0003]在這種類型的拍攝中,傳統(tǒng)的導(dǎo)播臺(tái)通過信號(hào)線接收各路視頻信號(hào),由電視節(jié)目制作人員操作視頻切換臺(tái),從多路信號(hào)中選擇一路輸出到錄像機(jī)。傳統(tǒng)的導(dǎo)播臺(tái)主要由切換臺(tái)、內(nèi)部通話系統(tǒng)、監(jiān)視器和一體化供電系統(tǒng)等設(shè)備組成,不僅結(jié)構(gòu)操作復(fù)雜,設(shè)備成本昂貴,而且需要專業(yè)的導(dǎo)播進(jìn)行操作,對(duì)于非專業(yè)電視制作媒體來說,幾乎是不可能完成的任務(wù)。
[0004]然而新媒體浪潮下網(wǎng)絡(luò)視頻的高速發(fā)展,又使得企業(yè)、團(tuán)體、個(gè)人對(duì)于制作精良化節(jié)目的技術(shù)需求與日倶增;得益于云計(jì)算技術(shù)的發(fā)展,使得互聯(lián)網(wǎng)上海量的內(nèi)容得以儲(chǔ)存和檢索,同時(shí)也大大加快了新媒體發(fā)展的步伐,這極大地推動(dòng)了基于云計(jì)算技術(shù)上的云導(dǎo)播臺(tái)的誕生。
[0005]基于新媒體云技術(shù)基礎(chǔ),云導(dǎo)播臺(tái)可以即開即用,同時(shí)能夠幫助用戶快速部署穩(wěn)定、高效的語(yǔ)音視頻導(dǎo)播場(chǎng)景,提升工作效率、降低設(shè)備技術(shù)成本。
[0006]相對(duì)于傳統(tǒng)的導(dǎo)播臺(tái)來說,云導(dǎo)播臺(tái)的最大優(yōu)點(diǎn)在于任何時(shí)間任何地點(diǎn)都可以部署使用,同時(shí)能夠使節(jié)目的場(chǎng)景更加多樣化。從信號(hào)的輸入端來說,云導(dǎo)播臺(tái)支持切換同一個(gè)場(chǎng)地不同角度的攝像機(jī)直播畫面、不同場(chǎng)地的攝像機(jī)直播畫面;同時(shí)為了簡(jiǎn)化視頻采集設(shè)備,云導(dǎo)播臺(tái)也支持來自手機(jī)端視頻采集的信號(hào)輸入;
[0007]從輸出端來說,云導(dǎo)播臺(tái)能夠在云端對(duì)視頻源進(jìn)行切換、縮放、疊加、混音等處理,能夠廣泛應(yīng)用于游戲直播行業(yè)、在線教育行業(yè)、體育直播行業(yè)、視頻娛樂互動(dòng)行業(yè)以及視頻會(huì)議行業(yè)等等。
[0008]云導(dǎo)播臺(tái)接收到多路視頻信號(hào)后,將這些信號(hào)拼接成一路信號(hào)輸出,那么想要同時(shí)對(duì)這些路信號(hào)進(jìn)行監(jiān)控,則只需一個(gè)顯示器,打開一個(gè)播放器就可以實(shí)現(xiàn)。
[0009]然而,在實(shí)際應(yīng)用中,本發(fā)明的發(fā)明人發(fā)現(xiàn),在網(wǎng)絡(luò)傳輸不穩(wěn)定的情況下,現(xiàn)有技術(shù)的云導(dǎo)播臺(tái)容易頻繁地出現(xiàn)卡頓、或者丟失畫面的現(xiàn)象,導(dǎo)致播放效果不流暢影響用戶使用體驗(yàn)。
【發(fā)明內(nèi)容】
[0010]有鑒于此,本發(fā)明的目的在于提出一種云導(dǎo)播臺(tái)以及多路視頻拼接方法,用以在網(wǎng)絡(luò)傳輸不穩(wěn)定的情況下盡量避免卡頓、或者丟失畫面的現(xiàn)象,以提升播放的流暢性,提升用戶的使用體驗(yàn)。[0011 ]基于上述目的,本發(fā)明實(shí)施例提供的一種云導(dǎo)播臺(tái)的多路視頻拼接方法,包括:
[0012]在數(shù)據(jù)讀取周期到達(dá)時(shí),以并行方式讀取各路視頻的數(shù)據(jù);
[0013]針對(duì)每路視頻,將讀取到的數(shù)據(jù)緩存到該路視頻的隊(duì)列中;
[0014]在數(shù)據(jù)拼接周期到達(dá)時(shí),識(shí)別出緩存的最小序號(hào)的視頻幀;并
[0015]判斷出各路視頻的隊(duì)列中都存有該序號(hào)的視頻幀后,將該序號(hào)的各視頻幀分別從各隊(duì)列中讀取出并進(jìn)行拼接。
[0016]進(jìn)一步,所述方法還包括:
[0017]根據(jù)拼接結(jié)果進(jìn)行視頻播放。
[0018]進(jìn)一步,所述識(shí)別出緩存的最小序號(hào)的視頻幀,具體包括:
[0019]針對(duì)每路視頻,獲取該路視頻的隊(duì)列中最先存入的視頻幀的序號(hào);
[0020]從獲取的序號(hào)中識(shí)別出最小序號(hào),作為待拼接序號(hào)。
[0021]進(jìn)一步,所述判斷出各路視頻的隊(duì)列中都存有該序號(hào)的視頻幀后,將該序號(hào)的各視頻幀分別從各隊(duì)列中讀取出,具體包括:
[0022]針對(duì)每路視頻,判斷該路視頻的隊(duì)列中最先存入的視頻幀的序號(hào)是否等于所述待拼接序號(hào);若是,將該序號(hào)的視頻幀從所述隊(duì)列中讀取出來。
[0023]進(jìn)一步,所述數(shù)據(jù)拼接周期的時(shí)長(zhǎng)等于或大于所述數(shù)據(jù)讀取周期。
[0024]在本發(fā)明實(shí)施例的另一方面,還提供了一種云導(dǎo)播臺(tái),包括:
[0025]視頻數(shù)據(jù)讀取模塊,用于在數(shù)據(jù)讀取周期到達(dá)時(shí),以并行方式讀取各路視頻的數(shù)據(jù);針對(duì)每路視頻,將讀取到的數(shù)據(jù)緩存到該路視頻的隊(duì)列中;
[0026]視頻數(shù)據(jù)拼接模塊,用于在數(shù)據(jù)拼接周期到達(dá)時(shí),識(shí)別出緩存的最小序號(hào)的視頻幀;并判斷出各路視頻的隊(duì)列中都存有該序號(hào)的視頻幀后,將該序號(hào)的各視頻幀分別從各隊(duì)列中讀取出并進(jìn)行拼接。
[0027]進(jìn)一步,所述云導(dǎo)播臺(tái)還包括:
[0028]視頻播放模塊,用于根據(jù)所述視頻數(shù)據(jù)拼接模塊的拼接結(jié)果進(jìn)行視頻播放。
[0029]進(jìn)一步,所述視頻數(shù)據(jù)拼接模塊具體包括:
[0030]最小序號(hào)識(shí)別單元,用于在數(shù)據(jù)拼接周期到達(dá)時(shí),識(shí)別出所述視頻數(shù)據(jù)讀取模塊緩存到各隊(duì)列中的最小序號(hào)的視頻幀,將識(shí)別出序號(hào)作為待拼接序號(hào)輸出;
[0031]判斷單元,用于接收所述最小序號(hào)識(shí)別單元輸出的待拼接序號(hào),并判斷各路視頻的隊(duì)列中是否都存有所述待拼接序號(hào)的視頻幀;若是,則發(fā)送拼接通知;
[0032]拼接單元,用于接收到所述拼接通知后,將所述待拼接序號(hào)的各視頻幀分別從各隊(duì)列中讀取出并進(jìn)行拼接。
[0033]本發(fā)明實(shí)施例的技術(shù)方案中,由于在數(shù)據(jù)讀取周期到達(dá)時(shí),以并行方式讀取并緩存各路視頻的數(shù)據(jù);在數(shù)據(jù)拼接周期到達(dá)時(shí),將最小序號(hào)的各視頻幀分別從各隊(duì)列中讀取出并進(jìn)行拼接;這樣,相比于現(xiàn)有技術(shù)在每個(gè)數(shù)據(jù)讀取周期中只讀取一路視頻數(shù)據(jù)的方案,一方面本發(fā)明的技術(shù)方案大大增加了每路視頻數(shù)據(jù)的讀取機(jī)會(huì),也就大大增加了每路視頻數(shù)據(jù)的獲取概率,提高每次拼接的成功率,有助于減少卡頓、丟失畫面等現(xiàn)象的出現(xiàn);另一方面,在一個(gè)數(shù)據(jù)讀取周期后即可進(jìn)行數(shù)據(jù)拼接,數(shù)據(jù)拼接等待時(shí)間相比于現(xiàn)有技術(shù)也大大縮短,同樣有助于減少卡頓、減少緩存溢出機(jī)會(huì)、減少丟失畫面等現(xiàn)象的出現(xiàn)。
【附圖說明】
[0034]圖1a為現(xiàn)有技術(shù)的5路視頻的數(shù)據(jù)讀取時(shí)序示意圖;
[0035]圖1b為本發(fā)明實(shí)施例的5路視頻的數(shù)據(jù)讀取時(shí)序示意圖;
[0036]圖2為本發(fā)明實(shí)施例的云導(dǎo)播臺(tái)的多路視頻拼接播放方法的流程圖;
[0037]圖3為本發(fā)明實(shí)施例的云導(dǎo)播臺(tái)內(nèi)部結(jié)構(gòu)框圖;
[0038]圖4為本發(fā)明實(shí)施例的視頻數(shù)據(jù)拼接模塊的內(nèi)部結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0039]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。
[0040]下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對(duì)本發(fā)明的限制。
[0041]本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個(gè)”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進(jìn)一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個(gè)或多個(gè)其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱元件被“連接”或“耦接”到另一元件時(shí),它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“親接”可以包括無(wú)線連接或無(wú)線耦接。這里使用的措辭“和/或”包括一個(gè)或更多個(gè)相關(guān)聯(lián)的列出項(xiàng)的全部或任一單元和全部組合。
[0042]需要說明的是,本發(fā)明實(shí)施例中所有使用“第一”和“第二”的表述均是為了區(qū)分兩個(gè)相同名稱非相同的實(shí)體或者非相同的參量,可見“第一” “第二”僅為了表述的方便,不應(yīng)理解為對(duì)本發(fā)明實(shí)施例的限定,后續(xù)實(shí)施例對(duì)此不再一一說明。
[0043]本發(fā)明的發(fā)明人對(duì)現(xiàn)有技術(shù)進(jìn)行分析:現(xiàn)有的云導(dǎo)播臺(tái)依次讀取各路視頻的數(shù)據(jù);在讀取某路視頻的數(shù)據(jù)時(shí),轉(zhuǎn)碼服務(wù)器向rtmp(Real Time Messaging Protocol,實(shí)時(shí)消息協(xié)議)服務(wù)器發(fā)送獲取該路視頻數(shù)據(jù)的請(qǐng)求,建立連接后rtmp服務(wù)器返回該路視頻的數(shù)據(jù),在這個(gè)過程中,網(wǎng)絡(luò)傳輸狀態(tài)將影響數(shù)據(jù)的接收。如果多路視頻中的一路或某些路此刻網(wǎng)絡(luò)傳輸情況不佳,造成轉(zhuǎn)碼服務(wù)器接收不到數(shù)據(jù),那么就無(wú)法進(jìn)行多路視頻數(shù)據(jù)的拼接,由此造成卡頓現(xiàn)象;
[0044]此外,在某路視頻因網(wǎng)絡(luò)原因沒有接收到數(shù)據(jù)的同時(shí),其它路視頻的緩存則不斷地接收并存儲(chǔ)數(shù)據(jù),這些存儲(chǔ)的數(shù)據(jù)由于不能進(jìn)行數(shù)據(jù)的拼接也就不能及時(shí)地從緩存中刪除,而緩存空間有限容易導(dǎo)致緩存溢出,出現(xiàn)部分畫面丟失,播放時(shí)就會(huì)出現(xiàn)畫面不連續(xù)的現(xiàn)象。
[0045]基于上述的分析與發(fā)現(xiàn),本發(fā)明的發(fā)明人考慮到,以并行方式分別讀取各路視頻的數(shù)據(jù)。
[0046]圖1a示出了現(xiàn)有技術(shù)的5路視頻的數(shù)據(jù)讀取時(shí)序示意圖;圖1b示出了本發(fā)明實(shí)施例技術(shù)方案的5路視頻的數(shù)據(jù)讀取時(shí)序示意圖;通常兩個(gè)圖的對(duì)比,可以看出,在現(xiàn)有技術(shù)中每次數(shù)據(jù)讀取周期到達(dá)時(shí)只讀取一路視頻數(shù)據(jù);在5次數(shù)據(jù)讀取周期后才能完成5路視頻的數(shù)據(jù)讀取任務(wù);也就是說,至少5次數(shù)據(jù)讀取周期后才能進(jìn)行5路視頻的數(shù)據(jù)拼接;如果其中有一路視頻的數(shù)據(jù)讀取失敗,則還需要等待5次數(shù)據(jù)讀取周期才能嘗試下一次的數(shù)據(jù)拼接。由于數(shù)據(jù)拼接等待時(shí)間過長(zhǎng)就容易出現(xiàn)卡頓、丟失畫面等現(xiàn)象。
[0047]而本發(fā)明實(shí)施例的技術(shù)方案中,每次數(shù)據(jù)讀取周期到達(dá)時(shí)以并行方式讀取5路視頻的數(shù)據(jù);這樣,在I次數(shù)據(jù)讀取周期后就可以進(jìn)行數(shù)據(jù)拼接任務(wù);如果,其中有一路視頻的數(shù)據(jù)讀取失敗,那么,在下一次的數(shù)據(jù)讀取周期中即可繼續(xù)讀取該路視頻的數(shù)據(jù),并在下一次的數(shù)據(jù)讀取周期后就可以再次嘗試進(jìn)行數(shù)據(jù)拼接。
[0048]這樣,在每個(gè)數(shù)據(jù)讀取周期中同時(shí)讀取各路視頻的數(shù)據(jù),相比于現(xiàn)有技術(shù)在每個(gè)數(shù)據(jù)讀取周期中只讀取一路視頻數(shù)據(jù)的方案,一方面本發(fā)明的技術(shù)方案大大增加了每路視頻數(shù)據(jù)的讀取機(jī)會(huì),也就大大增加了每路視頻數(shù)據(jù)的獲取概率,提高每次拼接的成功率,有助于減少卡頓、丟失畫面等現(xiàn)象的出現(xiàn);另一方面,數(shù)據(jù)拼接等待時(shí)間相比于現(xiàn)有技術(shù)也大大縮短,同樣有助于減少卡頓、減少緩存溢出機(jī)會(huì)、減少丟失畫面等現(xiàn)象的出現(xiàn)。
[0049]下面結(jié)合附圖詳細(xì)說明本發(fā)明實(shí)施例的技術(shù)方案。
[0050]基于上述的思路,本發(fā)明實(shí)施例提供的一種云導(dǎo)播臺(tái)的多路視頻拼接播放方法,具體流程如圖2所示,包括如下步驟:
[0051]步驟S201:云導(dǎo)播臺(tái)在數(shù)據(jù)讀取周期到達(dá)時(shí),以并行方式讀取并存儲(chǔ)各路視頻的數(shù)據(jù)。
[0052]具體地,云導(dǎo)播臺(tái)在每次數(shù)據(jù)讀取周期到達(dá)時(shí),以多個(gè)線程并行地分別讀取并存儲(chǔ)各路視頻的數(shù)據(jù):每個(gè)線程分別執(zhí)行各路視頻的數(shù)據(jù)讀取和存儲(chǔ)任務(wù)。其中,一個(gè)線程執(zhí)行一路視頻的數(shù)據(jù)讀取存儲(chǔ)任務(wù)的過程如下:
[0053]線程向rtmp服務(wù)器發(fā)送該路視頻數(shù)據(jù)的請(qǐng)求,建立連接后rtmp服務(wù)器返回該路視頻的數(shù)據(jù);
[0054]線程在讀取到該路視頻的數(shù)據(jù)后,將讀取的數(shù)據(jù)緩存到該路視頻的隊(duì)列中。進(jìn)一步,各路視頻的隊(duì)列為先入先出的隊(duì)列。這樣先存入到隊(duì)列中的視頻幀數(shù)據(jù)便可在后續(xù)步驟中先從隊(duì)列中讀取出來。
[0055]步驟S202:云導(dǎo)播臺(tái)在數(shù)據(jù)拼接周期到達(dá)時(shí),識(shí)別出緩存的最小序號(hào)的視頻幀,將識(shí)別出的視頻幀的序號(hào)作為待拼接序號(hào)。
[0056]本步驟中,云導(dǎo)播臺(tái)在數(shù)據(jù)拼接周期到達(dá)時(shí),從緩存于各路視頻的隊(duì)列中的視頻幀中,識(shí)別出最小序號(hào)的視頻幀。
[0057]進(jìn)一步,在各路視頻的隊(duì)列為先入先出的情況下,云導(dǎo)播臺(tái)在數(shù)據(jù)拼接周期到達(dá)時(shí),可以針對(duì)每路視頻,獲取該路視頻的隊(duì)列中最先存入的視頻幀的序號(hào);進(jìn)而從獲取的序號(hào)中識(shí)別出最小序號(hào),作為待拼接序號(hào)。
[0058]其中,數(shù)據(jù)拼接周期的時(shí)長(zhǎng)可以與上述的數(shù)據(jù)讀取周期的時(shí)長(zhǎng)相等,或者數(shù)據(jù)拼接周期的時(shí)長(zhǎng)大于數(shù)據(jù)讀取周期的時(shí)長(zhǎng)。
[0059]步驟S203:云導(dǎo)播臺(tái)判斷各路視頻的隊(duì)列中是否都存有待拼接序號(hào)的視頻幀;若是,則執(zhí)行步驟S204;若否,則不執(zhí)行此次拼接任務(wù)。
[0060]本步驟中,云導(dǎo)播臺(tái)判斷各路視頻的隊(duì)列中是否都存有序號(hào)與識(shí)別出的待拼接序號(hào)相同的視頻幀。
[0061]進(jìn)一步,在各路視頻的隊(duì)列為先入先出的情況下,云導(dǎo)播臺(tái)可以針對(duì)每路視頻,判斷該路視頻的隊(duì)列中最先存入的視頻幀的序號(hào)是否等于所述待拼接序號(hào)。
[0062]若是,則繼續(xù)執(zhí)行如下步驟S204;若否,則不執(zhí)行此次拼接任務(wù)。
[0063]步驟S204:云導(dǎo)播臺(tái)將待拼接序號(hào)的各視頻幀分別從各隊(duì)列中讀取出并進(jìn)行拼接。
[0064]本步驟中,云導(dǎo)播臺(tái)將序號(hào)與識(shí)別出的待拼接序號(hào)相同的視頻幀分別從各隊(duì)列中讀取出來,并將讀取出來的各視頻幀進(jìn)行拼接。
[0065]步驟S205:云導(dǎo)播臺(tái)根據(jù)拼接結(jié)果進(jìn)行視頻播放。
[0066]本步驟中,云導(dǎo)播臺(tái)根據(jù)拼接結(jié)果,播放出拼接視頻。例如,可以拼接多個(gè)攝像設(shè)備的視頻,得到全景視頻進(jìn)行播放。如何進(jìn)行視頻拼接可采用現(xiàn)有的技術(shù),此處不再贅述。
[0067]這里需要說明的是,上述步驟S201-S205雖然是以時(shí)間先后順序進(jìn)行描述的,但并不限定步驟間的邏輯先后關(guān)系。例如,上述步驟S202的執(zhí)行并不需要依賴步驟S201的執(zhí)行,而是可以由數(shù)據(jù)拼接周期的到達(dá)觸發(fā)執(zhí)行。
[0068]基于上述的方法,本發(fā)明實(shí)施例提供的一種云導(dǎo)播臺(tái)的內(nèi)部結(jié)構(gòu),如圖3所示,包括:視頻數(shù)據(jù)讀取模塊301、視頻數(shù)據(jù)拼接模塊302。
[0069]視頻數(shù)據(jù)讀取模塊301用于在數(shù)據(jù)讀取周期到達(dá)時(shí),以并行方式讀取各路視頻的數(shù)據(jù);并針對(duì)每路視頻,將讀取到的數(shù)據(jù)緩存到該路視頻的隊(duì)列中。具體地,視頻數(shù)據(jù)讀取模塊301在數(shù)據(jù)讀取周期到達(dá)時(shí),以多個(gè)線程并行地分別讀取各路視頻的數(shù)據(jù):即針對(duì)一路視頻,以一個(gè)線程讀取該路視頻的數(shù)據(jù),并將讀取的數(shù)據(jù)緩存到該路視頻的隊(duì)列中。進(jìn)一步,各路視頻的隊(duì)列為先入先出隊(duì)列。
[0070]視頻數(shù)據(jù)拼接模塊302用于在數(shù)據(jù)拼接周期到達(dá)時(shí),識(shí)別出緩存的最小序號(hào)的視頻幀;在判斷出各路視頻的隊(duì)列中都存有該序號(hào)的視頻幀后,將該序號(hào)的各視頻幀分別從各隊(duì)列中讀取出并進(jìn)行拼接。
[0071]進(jìn)一步,本發(fā)明實(shí)施例的云導(dǎo)播臺(tái)還包括:視頻播放模塊303。
[0072]視頻播放模塊303用于根據(jù)視頻數(shù)據(jù)拼接模塊302的拼接結(jié)果進(jìn)行視頻播放。
[0073]上述視頻數(shù)據(jù)拼接模塊302的一種具體內(nèi)部結(jié)構(gòu),如圖4所示,包括如下單元:最小序號(hào)識(shí)別單元401、判斷單元402、拼接單元403。
[0074]最小序號(hào)識(shí)別單元401用于在數(shù)據(jù)拼接周期到達(dá)時(shí),識(shí)別出所述視頻數(shù)據(jù)讀取模塊緩存到各隊(duì)列中的最小序號(hào)的視頻幀,將識(shí)別出序號(hào)作為待拼接序號(hào)向判斷單元402輸出;進(jìn)一步,在各路視頻的隊(duì)列為先入先出隊(duì)列的情況下,最小序號(hào)識(shí)別單元401在數(shù)據(jù)拼接周期到達(dá)時(shí),針對(duì)每路視頻,獲取該路視頻的隊(duì)列中最先存入的視頻幀的序號(hào);從獲取的序號(hào)中識(shí)別出最小序號(hào),作為待拼接序號(hào)進(jìn)行輸出。
[0075]判斷單元402用于接收到最小序號(hào)識(shí)別單元401輸出的待拼接序號(hào)后,判斷各路視頻的隊(duì)列中是否都存有所述待拼接序號(hào)的視頻幀;若是,則向拼接單元403發(fā)送拼接通知;進(jìn)一步,在各路視頻的隊(duì)列為先入先出隊(duì)列的情況下,判斷單元402針對(duì)每路視頻,判斷該路視頻的隊(duì)列中最先存入的視頻幀的序號(hào)是否等于所述待拼接序號(hào);若是,發(fā)送拼接通知。
[0076]拼接單元403用于接收到判斷單元402發(fā)送的拼接通知后,將所述待拼接序號(hào)的各視頻幀分別從各隊(duì)列中讀取出并進(jìn)行拼接。
[0077]本發(fā)明實(shí)施例的技術(shù)方案中,由于在數(shù)據(jù)讀取周期到達(dá)時(shí),以并行方式讀取并緩存各路視頻的數(shù)據(jù);在數(shù)據(jù)拼接周期到達(dá)時(shí),將最小序號(hào)的各視頻幀分別從各隊(duì)列中讀取出并進(jìn)行拼接;這樣,相比于現(xiàn)有技術(shù)在每個(gè)數(shù)據(jù)讀取周期中只讀取一路視頻數(shù)據(jù)的方案,一方面本發(fā)明的技術(shù)方案大大增加了每路視頻數(shù)據(jù)的讀取機(jī)會(huì),也就大大增加了每路視頻數(shù)據(jù)的獲取概率,提高每次拼接的成功率,有助于減少卡頓、丟失畫面等現(xiàn)象的出現(xiàn);另一方面,在一個(gè)數(shù)據(jù)讀取周期后即可進(jìn)行數(shù)據(jù)拼接,數(shù)據(jù)拼接等待時(shí)間相比于現(xiàn)有技術(shù)也大大縮短,同樣有助于減少卡頓、減少緩存溢出機(jī)會(huì)、減少丟失畫面等現(xiàn)象的出現(xiàn)。
[0078]本技術(shù)領(lǐng)域技術(shù)人員可以理解,本發(fā)明包括涉及用于執(zhí)行本申請(qǐng)中所述操作中的一項(xiàng)或多項(xiàng)的設(shè)備。這些設(shè)備可以為所需的目的而專門設(shè)計(jì)和制造,或者也可以包括通用計(jì)算機(jī)中的已知設(shè)備。這些設(shè)備具有存儲(chǔ)在其內(nèi)的計(jì)算機(jī)程序,這些計(jì)算機(jī)程序選擇性地激活或重構(gòu)。這樣的計(jì)算機(jī)程序可以被存儲(chǔ)在設(shè)備(例如,計(jì)算機(jī))可讀介質(zhì)中或者存儲(chǔ)在適于存儲(chǔ)電子指令并分別耦聯(lián)到總線的任何類型的介質(zhì)中,所述計(jì)算機(jī)可讀介質(zhì)包括但不限于任何類型的盤(包括軟盤、硬盤、光盤、CD-ROM、和磁光盤)、R0M(Read-0nly Memory,只讀存儲(chǔ)器)、RAM (Random Access Memory,隨即存儲(chǔ)器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦寫可編程只讀存儲(chǔ)器)、EEPR0M(E1 ectricalIy ErasableProgrammable Read-Only Memory,電可擦可編程只讀存儲(chǔ)器)、閃存、磁性卡片或光線卡片。也就是,可讀介質(zhì)包括由設(shè)備(例如,計(jì)算機(jī))以能夠讀的形式存儲(chǔ)或傳輸信息的任何介質(zhì)。
[0079]本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以用計(jì)算機(jī)程序指令來實(shí)現(xiàn)這些結(jié)構(gòu)圖和/或框圖和/或流圖中的每個(gè)框以及這些結(jié)構(gòu)圖和/或框圖和/或流圖中的框的組合。本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以將這些計(jì)算機(jī)程序指令提供給通用計(jì)算機(jī)、專業(yè)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理方法的處理器來實(shí)現(xiàn),從而通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理方法的處理器來執(zhí)行本發(fā)明公開的結(jié)構(gòu)圖和/或框圖和/或流圖的框或多個(gè)框中指定的方案。
[0080]本技術(shù)領(lǐng)域技術(shù)人員可以理解,本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進(jìn)一步地,具有本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進(jìn)一步地,現(xiàn)有技術(shù)中的具有與本發(fā)明中公開的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。
[0081]所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:以上任何實(shí)施例的討論僅為示例性的,并非旨在暗示本公開的范圍(包括權(quán)利要求)被限于這些例子;在本發(fā)明的思路下,以上實(shí)施例或者不同實(shí)施例中的技術(shù)特征之間也可以進(jìn)行組合,步驟可以以任意順序?qū)崿F(xiàn),并存在如上所述的本發(fā)明的不同方面的許多其它變化,為了簡(jiǎn)明它們沒有在細(xì)節(jié)中提供。因此,凡在本發(fā)明的精神和原則之內(nèi),所做的任何省略、修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種多路視頻拼接方法,其特征在于,包括: 在數(shù)據(jù)讀取周期到達(dá)時(shí),以并行方式讀取各路視頻的數(shù)據(jù); 針對(duì)每路視頻,將讀取到的數(shù)據(jù)緩存到該路視頻的隊(duì)列中; 在數(shù)據(jù)拼接周期到達(dá)時(shí),識(shí)別出緩存的最小序號(hào)的視頻幀;并 判斷出各路視頻的隊(duì)列中都存有該序號(hào)的視頻幀后,將該序號(hào)的各視頻幀分別從各隊(duì)列中讀取出并進(jìn)行拼接。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:根據(jù)拼接結(jié)果進(jìn)行視頻播放。3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述識(shí)別出緩存的最小序號(hào)的視頻幀,具體包括: 針對(duì)每路視頻,獲取該路視頻的隊(duì)列中最先存入的視頻幀的序號(hào); 從獲取的序號(hào)中識(shí)別出最小序號(hào),作為待拼接序號(hào)。4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述判斷出各路視頻的隊(duì)列中都存有該序號(hào)的視頻幀后,將該序號(hào)的各視頻幀分別從各隊(duì)列中讀取出,具體包括: 針對(duì)每路視頻,判斷該路視頻的隊(duì)列中最先存入的視頻幀的序號(hào)是否等于所述待拼接序號(hào);若是,將該序號(hào)的視頻幀從所述隊(duì)列中讀取出來。5.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述數(shù)據(jù)拼接周期的時(shí)長(zhǎng)等于或大于所述數(shù)據(jù)讀取周期。6.—種云導(dǎo)播臺(tái),其特征在于,包括: 視頻數(shù)據(jù)讀取模塊,用于在數(shù)據(jù)讀取周期到達(dá)時(shí),以并行方式讀取各路視頻的數(shù)據(jù);針對(duì)每路視頻,將讀取到的數(shù)據(jù)緩存到該路視頻的隊(duì)列中; 視頻數(shù)據(jù)拼接模塊,用于在數(shù)據(jù)拼接周期到達(dá)時(shí),識(shí)別出緩存的最小序號(hào)的視頻幀;并判斷出各路視頻的隊(duì)列中都存有該序號(hào)的視頻幀后,將該序號(hào)的各視頻幀分別從各隊(duì)列中讀取出并進(jìn)行拼接。7.根據(jù)權(quán)利要求6所述的云導(dǎo)播臺(tái),其特征在于,還包括: 視頻播放模塊,用于根據(jù)所述視頻數(shù)據(jù)拼接模塊的拼接結(jié)果進(jìn)行視頻播放。8.根據(jù)權(quán)利要求6或7所述的云導(dǎo)播臺(tái),其特征在于,所述視頻數(shù)據(jù)拼接模塊具體包括: 最小序號(hào)識(shí)別單元,用于在數(shù)據(jù)拼接周期到達(dá)時(shí),識(shí)別出所述視頻數(shù)據(jù)讀取模塊緩存到各隊(duì)列中的最小序號(hào)的視頻幀,將識(shí)別出序號(hào)作為待拼接序號(hào)輸出; 判斷單元,用于接收所述最小序號(hào)識(shí)別單元輸出的待拼接序號(hào),并判斷各路視頻的隊(duì)列中是否都存有所述待拼接序號(hào)的視頻幀;若是,則發(fā)送拼接通知; 拼接單元,用于接收到所述拼接通知后,將所述待拼接序號(hào)的各視頻幀分別從各隊(duì)列中讀取出并進(jìn)行拼接。9.根據(jù)權(quán)利要求6或7所述的云導(dǎo)播臺(tái),其特征在于,所述隊(duì)列為先入先出的隊(duì)列。10.根據(jù)權(quán)利要求6或7所述的云導(dǎo)播臺(tái),其特征在于,所述數(shù)據(jù)拼接周期的時(shí)長(zhǎng)等于或大于所述數(shù)據(jù)讀取周期。
【文檔編號(hào)】H04N5/265GK105847709SQ201610195433
【公開日】2016年8月10日
【申請(qǐng)日】2016年3月30日
【發(fā)明人】李興玉, 白茂生, 魏偉, 邊智
【申請(qǐng)人】樂視控股(北京)有限公司, 樂視云計(jì)算有限公司