本發(fā)明涉及網(wǎng)絡(luò)直播技術(shù)領(lǐng)域,具體涉及一種直播間視頻流合成方法、裝置及終端設(shè)備。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)及智能移動(dòng)終端設(shè)備的發(fā)展,各種互聯(lián)網(wǎng)產(chǎn)品給人們的工作、生活帶來(lái)了很多便利與娛樂,近年來(lái),各類用于視頻直播的直播平臺(tái)層出不窮,視頻直播給人們帶來(lái)更實(shí)時(shí)的社交體驗(yàn)。目前的直播平臺(tái)包括了用于移動(dòng)端的直播平臺(tái)和用于PC端的直播平臺(tái)。
由于視頻直播需求的多樣性,用戶需要同時(shí)直播多個(gè)移動(dòng)端的內(nèi)容或同時(shí)直播多個(gè)PC端的內(nèi)容或同時(shí)直播移動(dòng)端跟PC端的內(nèi)容,例如用戶開始在PC端上直播,然后想暫時(shí)轉(zhuǎn)移直播場(chǎng)景至戶外,利用移動(dòng)端直播戶外此時(shí)發(fā)生的情況,在現(xiàn)有技術(shù)中,往往需要主播用戶在移動(dòng)端重新建立一個(gè)直播間開啟戶外直播,然后原來(lái)直播間的觀看用戶需要重新進(jìn)入新的直播間后才能看到主播進(jìn)行的戶外直播,由于戶外直播是暫時(shí)性的,在戶外直播停止后,主播重新回到PC端直播,而觀看用戶又得重新進(jìn)入該主播的PC端的直播間,這種方式下主播用戶跟觀看用戶的操作過程繁瑣,無(wú)法給主播用戶跟觀看用戶帶來(lái)良好體驗(yàn),降低直播平臺(tái)口碑,造成用戶流失。
所以,如何解決多個(gè)終端同時(shí)直播的多源直播模式是目前網(wǎng)絡(luò)視頻直播領(lǐng)域中亟需解決的問題,并且在多源直播模式下如何最大限度地提高網(wǎng)絡(luò)帶寬的利用率,降低直播平臺(tái)服務(wù)器的壓力同樣是需要考慮并解決的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的首要目的在于提供一種直播間視頻流合成方法、裝置。
本發(fā)明的另一目的在于提供執(zhí)行上述直播間視頻流合成方法的終端設(shè)備。
為實(shí)現(xiàn)該目的,本發(fā)明采用如下技術(shù)方案:
第一方面,本發(fā)明提供一種直播間視頻流合成方法,包括如下步驟:
響應(yīng)于主播用戶開啟多源直播的操作指令,輸出包含直播間特征信息及主播身份信息的預(yù)協(xié)議信息;
將主播用戶終端配置為服務(wù)器終端并接收第二終端根據(jù)所述預(yù)協(xié)議信息發(fā)起的連接請(qǐng)求;
響應(yīng)于所述連接請(qǐng)求,在主播用戶與至少一個(gè)第二終端確認(rèn)連接后,接收所述第二終端采集的第二視頻流;
將本地采集的第一視頻流與所述第二視頻流合成為第三視頻流后上傳到服務(wù)器,以使得所述服務(wù)器向直播間的每個(gè)用戶推送所述第三視頻流。
進(jìn)一步的,所述預(yù)協(xié)議信息以二維碼、特征口令或鏈接的形式表征。
進(jìn)一步的,所述接收第二視頻流的過程與采集本地的第一視頻流的過程與合成第三視頻流的過程與上傳第三視頻流的過程并行工作。
具體的,所述第一、第二、第三視頻流均包括圖像流和音頻流,所述第三視頻流包括第一視頻流、第二視頻流至少之一的圖像流,還包括該兩者至少之一的音頻流。
進(jìn)一步的,所述第二終端根據(jù)所述預(yù)協(xié)議信息向主播用戶終端發(fā)起連接請(qǐng)求,并與主播用戶終端保持長(zhǎng)連接。
第二方面,本發(fā)明提供一種直播間視頻流合成裝置,包括:
輸出模塊:用于響應(yīng)于主播用戶開啟多源直播的操作指令,輸出包含直播間特征信息及主播身份信息的預(yù)協(xié)議信息;
配置模塊:用于將主播用戶終端配置為服務(wù)器終端并接收第二終端根據(jù)所述預(yù)協(xié)議信息發(fā)起的連接請(qǐng)求;
接收模塊:用于響應(yīng)于所述連接請(qǐng)求,在主播用戶與至少一個(gè)第二終端確認(rèn)連接后,接收所述第二終端采集的第二視頻流;
合成模塊:用于將本地采集的第一視頻流與所述第二視頻流合成為第三視頻流后上傳到服務(wù)器,以使得所述服務(wù)器向直播間的每個(gè)用戶推送所述第三視頻流。
進(jìn)一步的,所述預(yù)協(xié)議信息以二維碼、特征口令、鏈接等形式表征。
進(jìn)一步的,所述接收第二視頻流的過程與采集本地的第一視頻流的過程與合成第三視頻流的過程與上傳第三視頻流的過程并行工作。
具體的,所述第一、第二、第三視頻流均包括圖像流和音頻流,所述第三視頻流包括第一視頻流、第二視頻流至少之一的圖像流,還包括該兩者至少之一的音頻流。
第三方面,本發(fā)明還提供一種終端設(shè)備,包括:處理器、存儲(chǔ)器,所述處理器用于調(diào)用執(zhí)行以程序形式存儲(chǔ)于所述存儲(chǔ)器的所述直播間視頻流合成方法的任意一項(xiàng)步驟。
與現(xiàn)有技術(shù)相比,本發(fā)明具備如下優(yōu)點(diǎn):
(1)本發(fā)明將主播終端配置為服務(wù)器終端,用以接收第二終端采集后直接發(fā)送至主播終端的視頻流,再由主播終端將所有視頻流合成推送至直播間的視頻流,直播間的觀眾用戶看到的視頻流與主播終端上的視頻流一致,保證了視頻流的同時(shí)性。
(2)同時(shí),由于主播終端被配置為服務(wù)器終端,第二終端采集的視頻流不需經(jīng)過直播平臺(tái)的服務(wù)器而直接發(fā)送至主播終端,直播平臺(tái)服務(wù)器只需接收主播終端上傳的最終推向直播間的視頻流,并且將其推送至直播間的每個(gè)觀看用戶,避免大量的第二終端將視頻流上傳至服務(wù)器,減少了網(wǎng)絡(luò)帶寬的占用,降低了直播平臺(tái)服務(wù)器的壓力。
(3)再者,上述推向直播間的視頻流適配于各種直播視頻播放前端(PC端、移動(dòng)端、WEB端),無(wú)需再為多種前端適配不同的視頻流解析協(xié)議,徹底解放前端。
顯然,上述有關(guān)本發(fā)明優(yōu)點(diǎn)的描述是概括性的,更多的優(yōu)點(diǎn)描述將體現(xiàn)在后續(xù)的實(shí)施例揭示中,以及,本領(lǐng)域技術(shù)人員也可以本發(fā)明所揭示的內(nèi)容合理地發(fā)現(xiàn)本發(fā)明的其他諸多優(yōu)點(diǎn)。
本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。
【附圖說明】
圖1為本發(fā)明直播間視頻流合成方法的一實(shí)施例流程示意圖;
圖2為本發(fā)明多源直播的兩種實(shí)施方式示意圖;
圖3為本發(fā)明以二維碼的形式表征預(yù)協(xié)議信息的示意圖;
圖4為本發(fā)明以特征口令的形式表征預(yù)協(xié)議信息的示意圖;
圖5為本發(fā)明以鏈接的形式表征預(yù)協(xié)議信息的示意圖;
圖6為本發(fā)明選定連接2個(gè)第二視頻流后的第三視頻流的示意圖;
圖7為本發(fā)明直播間視頻流合成裝置的一實(shí)施例示意圖。
【具體實(shí)施方式】
下面結(jié)合附圖和示例性實(shí)施例對(duì)本發(fā)明作進(jìn)一步地描述,其中附圖中相同的標(biāo)號(hào)全部指的是相同的部件。此外,如果已知技術(shù)的詳細(xì)描述對(duì)于示出本發(fā)明的特征是不必要的,則將其省略。
本技術(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)的全部或任一單元和全部組合。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(yǔ)(包括技術(shù)術(shù)語(yǔ)和科學(xué)術(shù)語(yǔ)),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語(yǔ),應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會(huì)用理想化或過于正式的含義來(lái)解釋。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,這里所使用的“終端”、“終端設(shè)備”既包括無(wú)線信號(hào)接收器的設(shè)備,其僅具備無(wú)發(fā)射能力的無(wú)線信號(hào)接收器的設(shè)備,又包括接收和發(fā)射硬件的設(shè)備,其具有能夠在雙向通信鏈路上,執(zhí)行雙向通信的接收和發(fā)射硬件的設(shè)備。這種設(shè)備可以包括:蜂窩或其他通信設(shè)備,其具有單線路顯示器或多線路顯示器或沒有多線路顯示器的蜂窩或其他通信設(shè)備;PCS(Personal Communications Service,個(gè)人通信系統(tǒng)),其可以組合語(yǔ)音、數(shù)據(jù)處理、傳真和/或數(shù)據(jù)通信能力;PDA(Personal Digital Assistant,個(gè)人數(shù)字助理),其可以包括射頻接收器、尋呼機(jī)、互聯(lián)網(wǎng)/內(nèi)聯(lián)網(wǎng)訪問、網(wǎng)絡(luò)瀏覽器、記事本、日歷和/或GPS(Global Positioning System,全球定位系統(tǒng))接收器;常規(guī)膝上型和/或掌上型計(jì)算機(jī)或其他設(shè)備,其具有和/或包括射頻接收器的常規(guī)膝上型和/或掌上型計(jì)算機(jī)或其他設(shè)備。這里所使用的“終端”、“終端設(shè)備”可以是便攜式、可運(yùn)輸、安裝在交通工具(航空、海運(yùn)和/或陸地)中的,或者適合于和/或配置為在本地運(yùn)行,和/或以分布形式,運(yùn)行在地球和/或空間的任何其他位置運(yùn)行。這里所使用的“終端”、“終端設(shè)備”還可以是通信終端、上網(wǎng)終端、音樂/視頻播放終端,例如可以是PDA、MID(Mobile Internet Device,移動(dòng)互聯(lián)網(wǎng)設(shè)備)和/或具有音樂/視頻播放功能的移動(dòng)電話,也可以是智能電視、機(jī)頂盒等設(shè)備。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,這里所使用的遠(yuǎn)端網(wǎng)絡(luò)設(shè)備,其包括但不限于計(jì)算機(jī)、網(wǎng)絡(luò)主機(jī)、單個(gè)網(wǎng)絡(luò)服務(wù)器、多個(gè)網(wǎng)絡(luò)服務(wù)器集或多個(gè)服務(wù)器構(gòu)成的云。在此,云由基于云計(jì)算(Cloud Computing)的大量計(jì)算機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成,其中,云計(jì)算是分布式計(jì)算的一種,由一群松散耦合的計(jì)算機(jī)集組成的一個(gè)超級(jí)虛擬計(jì)算機(jī)。本發(fā)明的實(shí)施例中,遠(yuǎn)端網(wǎng)絡(luò)設(shè)備、終端設(shè)備與WNS服務(wù)器之間可通過任何通信方式實(shí)現(xiàn)通信,包括但不限于,基于3GPP、LTE、WIMAX的移動(dòng)通信、基于TCP/IP、UDP協(xié)議的計(jì)算機(jī)網(wǎng)絡(luò)通信以及基于藍(lán)牙、紅外傳輸標(biāo)準(zhǔn)的近距無(wú)線傳輸方式。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,本發(fā)明所述的用戶界面/操作界面泛指能夠用于向智能終端發(fā)送控制指令的顯示界面,例如,可以為Android系統(tǒng)的設(shè)置頁(yè)面中的一個(gè)選項(xiàng)(或按鍵,由所述應(yīng)用程序添加其中,下同),也可以是從桌面呼出的通知欄或者交互頁(yè)面中的一個(gè)選項(xiàng),還可以是所述應(yīng)用程序的一個(gè)活動(dòng)組件所構(gòu)造的頁(yè)面中的一個(gè)選項(xiàng)。雖然上面已經(jīng)示出了本發(fā)明的一些示例性實(shí)施例,但是本領(lǐng)域的技術(shù)人員將理解,在不脫離本發(fā)明的原理或精神的情況下,可以對(duì)這些示例性實(shí)施例做出改變,本發(fā)明的范圍由權(quán)利要求及其等同物限定。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明所稱的“應(yīng)用”、“應(yīng)用程序”、“應(yīng)用軟件”以及類似表述的概念,是業(yè)內(nèi)技術(shù)人員所公知的相同概念,是指由一系列計(jì)算機(jī)指令及相關(guān)數(shù)據(jù)資源有機(jī)構(gòu)造的適于電子運(yùn)行的計(jì)算機(jī)軟件。除非特別指定,這種命名本身不受編程語(yǔ)言種類、級(jí)別,也不受其賴以運(yùn)行的操作系統(tǒng)或平臺(tái)所限制。理所當(dāng)然地,此類概念也不受任何形式的終端所限制。
直播間:本發(fā)明所述直播間包括以下含義,①一種基于網(wǎng)絡(luò)直播平臺(tái)創(chuàng)建的一個(gè)虛擬空間(或虛擬房間),直播間一般由主播客戶端創(chuàng)建并連接有多個(gè)觀看客戶端,即直播間中包括了主播及多個(gè)觀眾,位于該虛擬空間內(nèi)的觀看客戶端可以觀看主播客戶端的直播內(nèi)容,同時(shí)主播客戶端的用戶與觀看客戶端的用戶、觀看客戶端的用戶與觀看客戶端的用戶之間還可以進(jìn)行語(yǔ)音、圖片、文字或贈(zèng)送電子贈(zèng)品的互動(dòng);②一種以群組方式將用戶聚合在一起的即時(shí)通訊平臺(tái),例如視頻會(huì)議系統(tǒng),用戶通過登錄客戶端的方式進(jìn)入群組,用戶在群組內(nèi)以群組成員的身份存在,同一個(gè)群組內(nèi)包含有多個(gè)群組成員,用戶可任意加入或退出群組,在群組內(nèi),可以進(jìn)行文字、語(yǔ)音、視頻等多種互動(dòng)。
第一方面,如圖1所示是本發(fā)明直播間視頻流合成方法的一實(shí)施例流程示意圖,包括如下步驟:
本方法的實(shí)現(xiàn)依賴于視頻直播客戶端的某一功能模塊或插件,視頻直播客戶端包括PC端上的視頻直播軟件和移動(dòng)端上的視頻直播應(yīng)用程序,所述功能模塊或插件具體為相應(yīng)軟件/應(yīng)用程序內(nèi)的可執(zhí)行代碼,所述功能模塊或插件的具體實(shí)現(xiàn)形式不作為對(duì)本發(fā)明的具體限定。
步驟S100:響應(yīng)于主播用戶開啟多源直播的操作指令,輸出包含直播間特征信息及主播身份信息的預(yù)協(xié)議信息。
具體的,如圖2所示是多源直播的兩種實(shí)施方式:①利用多種、多臺(tái)拍攝設(shè)備同時(shí)采集多個(gè)視頻流,再在主播終端以主播身份將該多個(gè)視頻流合成推送至直播間的視頻流,例如主播剛開始是利用PC端進(jìn)行直播,然后主播要暫時(shí)轉(zhuǎn)移直播場(chǎng)景,此時(shí)可以利用手機(jī)端采集另一場(chǎng)景的視頻流然后與PC端的視頻流合并從而實(shí)現(xiàn)多源直播;②由主播終端采集第一視頻流,再連接多個(gè)用戶并接收該些用戶的第二終端采集的第二視頻流,再在主播終端上以主播身份將該多個(gè)視頻流合成推送至直播間的視頻流進(jìn)而實(shí)現(xiàn)多源直播。用戶點(diǎn)擊如圖2中的“我是主播”按鈕,然后登陸直播平臺(tái)的用戶身份信息,再通過配置直播間的標(biāo)題、封面圖片等信息后,即可以主播用身份開啟多源直播。
具體的,所述預(yù)協(xié)議信息包含直播間特征信息、主播身份信息,另外還包含建立主播終端與第二終端的專屬鏈路的授權(quán)令牌或鑒權(quán)信息,其通過加密方式處理、存儲(chǔ)在預(yù)協(xié)議信息中,必須經(jīng)相應(yīng)授權(quán)的應(yīng)用程序才能從預(yù)協(xié)議信息中解析、得到所述直播間特征信息、主播身份信息。一般地,預(yù)協(xié)議信息由各直播平臺(tái)自行定義,經(jīng)該直播平臺(tái)授權(quán)的應(yīng)用程序識(shí)別表征所述預(yù)協(xié)議信息的形式后方能得到所述預(yù)協(xié)議信息。直播間特征信息為直播間的頻道ID,用以確定唯一的直播間,主播身份信息為主播用戶的UID,用以確定用戶的主播身份。
具體的,所述預(yù)協(xié)議信息以二維碼、特征口令或鏈接的形式表征。
如圖3所示是以二維碼的形式表征預(yù)協(xié)議信息的示意圖,二維碼是通過特定的幾何圖形按預(yù)定的規(guī)律在二維平面上分布的黑白相間的圖形記錄數(shù)據(jù)符號(hào)信息,二維碼在代碼編制上巧妙地利用構(gòu)成計(jì)算機(jī)內(nèi)部邏輯基礎(chǔ)的“0”、“1”比特流的概念,使用多個(gè)與二進(jìn)制相對(duì)應(yīng)的幾何形體來(lái)表示文字、數(shù)值等信息,可以通過圖象輸入設(shè)備或光電掃描設(shè)備識(shí)讀二維碼以獲取二維碼中包含的信息。二維碼具有條碼技術(shù)的多個(gè)共性:每種碼制有其特定的字符集;每個(gè)字符占有預(yù)定的寬度;并且具有一定的校驗(yàn)功能等。
另外,預(yù)協(xié)議信息亦可以如圖4所示的特征口令的形式表征;同時(shí),預(yù)協(xié)議信息亦可以如圖5所示的鏈接的形式表征。不管預(yù)協(xié)議信息以何種形式表征,其均需由各直播平臺(tái)授權(quán)的應(yīng)用程序根據(jù)預(yù)先設(shè)定的協(xié)議獲取其中的預(yù)協(xié)議信息,再進(jìn)行后續(xù)操作。
步驟S200:將主播用戶終端配置為服務(wù)器終端并接收第二終端根據(jù)所述預(yù)協(xié)議信息發(fā)起的連接請(qǐng)求。
主播用戶開啟多源直播后,視頻直播客戶端將主播用戶終端配置為一臺(tái)服務(wù)器以接收第二終端的視頻流,為了區(qū)別于直播平臺(tái)的服務(wù)器,本實(shí)施例亦稱主播用戶終端為服務(wù)器終端;同時(shí),主播用戶將直播客戶端輸出的預(yù)協(xié)議信息發(fā)送給其它用戶/終端設(shè)備,以使該些第二終端根據(jù)所述預(yù)協(xié)議信息向服務(wù)器終端發(fā)起連接請(qǐng)求。
具體的,所述第二終端根據(jù)所述預(yù)協(xié)議信息向主播用戶終端發(fā)起連接請(qǐng)求后,直播平臺(tái)服務(wù)器驗(yàn)證預(yù)協(xié)議信息,驗(yàn)證成功則視該連接請(qǐng)求為合法連接請(qǐng)求,然后為主播用戶終端跟第二終端建立專屬的通信鏈路連接以使雙方直接進(jìn)行數(shù)據(jù)傳輸,此時(shí),第二終端與主播用戶終端以長(zhǎng)連接的形式保持雙方的通信鏈路連接。長(zhǎng)連接即是客戶端長(zhǎng)時(shí)間的連接在服務(wù)器上,在本實(shí)施例中,由于主播用戶終端被配置為服務(wù)器終端,所述長(zhǎng)連接即指第二終端的視頻直播客戶端長(zhǎng)時(shí)間的連接在服務(wù)器終端(即主播用戶終端)上,保持長(zhǎng)連接的通信雙方在一個(gè)連接上可以連續(xù)發(fā)送多個(gè)數(shù)據(jù)包,一般服務(wù)器都設(shè)有超時(shí)限制即一定時(shí)間內(nèi)連接處于非活動(dòng)狀態(tài)(沒有任何數(shù)據(jù)傳輸)服務(wù)器就會(huì)把連接自動(dòng)斷開,所以需要客戶端每隔一段時(shí)間給服務(wù)端發(fā)送一個(gè)心跳檢測(cè)數(shù)據(jù)包以保持長(zhǎng)鏈接。所以在本實(shí)施例中,主播用戶終端與第二終端在長(zhǎng)連接保持期間,如果沒有數(shù)據(jù)包發(fā)送,需要第二終端的視頻直播客戶端每隔一段時(shí)間給主播用戶終端發(fā)送一個(gè)心跳數(shù)據(jù)包以保持長(zhǎng)鏈接,長(zhǎng)連接適用于點(diǎn)對(duì)點(diǎn)通訊,對(duì)于視頻直播領(lǐng)域而言,本發(fā)明可以大大減少直播平臺(tái)服務(wù)器的帶寬,降低直播平臺(tái)服務(wù)器的壓力。
步驟S300:響應(yīng)于所述連接請(qǐng)求,在主播用戶與至少一個(gè)第二終端確認(rèn)連接后,接收所述第二終端采集的第二視頻流。
主播用戶的視頻直播客戶端響應(yīng)所述連接請(qǐng)求,在視頻直播界面上顯示保持長(zhǎng)連接狀態(tài)的一個(gè)或多個(gè)第二終端,受限于長(zhǎng)連接的特性及視頻直播界面的大小,與主播用戶終端保持長(zhǎng)連接的第二終端的數(shù)量?jī)?yōu)選小于等于5個(gè),同時(shí),在主播用戶選定與其中一個(gè)或多個(gè)第二終端確認(rèn)連接后,此時(shí)第二終端將第二視頻流傳輸至服務(wù)器終端,雙方不再需要發(fā)送心跳檢測(cè)包,服務(wù)器終端(即主播用戶終端)接收所述第二終端采集的第二視頻流;另外,主播用戶可隨時(shí)在主播用戶終端的操作界面上取消接收第二終端的視頻流,此時(shí)第二終端不再發(fā)送第二視頻流至服務(wù)器終端,在達(dá)到規(guī)定的時(shí)間后,第二終端再次向服務(wù)器終端發(fā)送心跳檢測(cè)包,以保持與服務(wù)器終端的長(zhǎng)連接;再者,主播用戶亦可斷開與第二終端的長(zhǎng)連接,在斷開后達(dá)到規(guī)定的時(shí)間,第二終端再次向服務(wù)器終端發(fā)送心跳檢測(cè)包,服務(wù)器終端沒有反饋,則此時(shí)第二終端斷開與服務(wù)器終端的長(zhǎng)連接。
步驟S400:將本地采集的第一視頻流與所述第二視頻流合成為第三視頻流后上傳到服務(wù)器,以使得所述服務(wù)器向直播間的每個(gè)用戶推送所述第三視頻流。
在主播用戶與至少一個(gè)第二終端確認(rèn)連接后接收第二終端采集的視頻流,同時(shí)將本地采集的第一視頻流與所述第二視頻流合成為第三視頻流后上傳到服務(wù)器,以使得所述服務(wù)器向直播間的每個(gè)用戶推送所述第三視頻流。所述第一、第二、第三視頻流均包括圖像流和音頻流,所述第三視頻流包括第一視頻流、第二視頻流至少之一的圖像流,還包括該兩者至少之一的音頻流;例如主播終端接收一個(gè)第二視頻流,此時(shí)在主播用戶終端上的視頻流包括一個(gè)第一視頻流的圖像流和音頻流、及一個(gè)第二視頻流的圖像流和音頻流,在合成為第三視頻流時(shí),根據(jù)主播用戶的選擇對(duì)于第一視頻流和第二視頻流的音頻流擇一選用或調(diào)整其中一個(gè)音頻流的音量大小以不影響另一音頻流的播放。如圖6所示是本發(fā)明選定連接2個(gè)第二視頻流后的第三視頻流的示意圖。
在本實(shí)施例中,所述接收第二視頻流的過程與采集本地的第一視頻流的過程與合成第三視頻流的過程與上傳第三視頻流的過程并行工作。并行工作是指同一時(shí)刻或同一時(shí)間間隔內(nèi)完成兩種或兩種以上性質(zhì)相同或不相同的工作,并行工作具有①時(shí)間重疊性:相鄰處理過程在時(shí)間上錯(cuò)開,輪流重疊使用同一套硬件的各部分;②資源共享性:讓多個(gè)用戶按照一定的時(shí)間順序輪流使用同一套資源,提高資源利用率;③資源重復(fù):重復(fù)設(shè)置硬件資源,提高硬件可靠性和性能。具體的,對(duì)于本發(fā)明實(shí)施例而言,并行工作是指主播終端在接收第二直頻流時(shí),可以同步/同步采集第一視頻流,并同時(shí)/同步將所采集的第一視頻流和所接收到的第二視頻流合并成第三視頻流,且同時(shí)/同步將第三視頻流上傳到服務(wù)器,保證了直播視頻流的同時(shí)/同步性。
相應(yīng)地,如圖7所示,本發(fā)明還提供一種直播間視頻流合成裝置,包括:
輸出模塊100:用于響應(yīng)于主播用戶開啟多源直播的操作指令,輸出包含直播間特征信息及主播身份信息的預(yù)協(xié)議信息。
用戶點(diǎn)擊如圖2中的“我是主播”按鈕,然后登陸直播平臺(tái)的用戶身份信息,再通過配置直播間的標(biāo)題、封面圖片等信息后,即可以主播用身份開啟多源直播,即觸發(fā)開啟多源直播的操作指令,輸出模塊100將包含直播間特征信息及主播身份信息的預(yù)協(xié)議信息以如圖3的二維碼形式、圖4的特征口令形式、圖5的鏈接形式輸出。
配置模塊200:用于將主播用戶終端配置為服務(wù)器終端并接收第二終端根據(jù)所述預(yù)協(xié)議信息發(fā)起的連接請(qǐng)求。
主播用戶開啟多源直播后,配置模塊200將主播用戶終端配置為一臺(tái)服務(wù)器以接收第二終端的視頻流,為了區(qū)別于直播平臺(tái)的服務(wù)器,本實(shí)施例亦稱主播用戶終端為服務(wù)器終端;同時(shí),主播用戶將直播客戶端輸出的預(yù)協(xié)議信息發(fā)送給其它用戶/終端設(shè)備,以使該些第二終端根據(jù)所述預(yù)協(xié)議信息向服務(wù)器終端發(fā)起連接請(qǐng)求。
接收模塊300:用于響應(yīng)于所述連接請(qǐng)求,在主播用戶與至少一個(gè)第二終端確認(rèn)連接后,接收所述第二終端采集的第二視頻流。
接收模塊300響應(yīng)所述連接請(qǐng)求,在視頻直播界面上顯示保持長(zhǎng)連接狀態(tài)的一個(gè)或多個(gè)第二終端,同時(shí),在主播用戶選定與其中一個(gè)或多個(gè)第二終端確認(rèn)連接后,此時(shí)第二終端將第二視頻流傳輸至服務(wù)器終端,雙方不再需要發(fā)送心跳檢測(cè)包,接收模塊300接收所述第二終端采集的第二視頻流。
合成模塊400:用于將本地采集的第一視頻流與所述第二視頻流合成為第三視頻流后上傳到服務(wù)器,以使得所述服務(wù)器向直播間的每個(gè)用戶推送所述第三視頻流。
在主播用戶與至少一個(gè)第二終端確認(rèn)連接后接收第二終端采集的視頻流,合成模塊400同時(shí)將本地采集的第一視頻流與所述第二視頻流合成為第三視頻流后上傳到服務(wù)器,以使得所述服務(wù)器向直播間的每個(gè)用戶推送所述第三視頻流。所述視頻流包括圖像流和音頻流,所述第三直播視頻流包括第一直播視頻流、第二直播視頻流至少之一的或者兩者合成后的圖像流,還包括該兩者至少之一的音頻流。
在本實(shí)施例中,所述接收第二視頻流的過程與采集本地的第一視頻流的過程與合成第三視頻流的過程與上傳第三視頻流的過程并行工作。具體的,對(duì)于本發(fā)明實(shí)施例而言,并行工作是指接收模塊300在接收第二直頻流時(shí),可以同步/同步采集第一視頻流,并同時(shí)/同步合成模塊400將所采集的第一視頻流和所接收到的第二視頻流合并成第三視頻流,且同時(shí)/同步將第三視頻流上傳到服務(wù)器,保證了直播視頻流的同時(shí)/同步性。
另外,本發(fā)明還提供一種終端設(shè)備,包括存儲(chǔ)器、處理器,所述存儲(chǔ)器用于存儲(chǔ)上述方法實(shí)現(xiàn)過程中產(chǎn)生的候選中間數(shù)據(jù)以及結(jié)果數(shù)據(jù),所述處理器用于調(diào)用執(zhí)行以程序形式存儲(chǔ)于所述存儲(chǔ)器的所述直播間視頻流合成方法的任意一項(xiàng)步驟。
本發(fā)明將主播終端配置為服務(wù)器終端,用以接收第二終端采集后直接發(fā)送至主播終端的視頻流,再由主播終端將所有視頻流合成推送至直播間的視頻流,直播間的觀眾用戶看到的視頻流與主播終端上的視頻流一致,保證了視頻流的同時(shí)性;同時(shí),由于主播終端被配置為服務(wù)器終端,第二終端采集的視頻流不需經(jīng)過直播平臺(tái)的服務(wù)器而直接發(fā)送至主播終端,直播平臺(tái)服務(wù)器只需接收主播終端上傳的最終推向直播間的視頻流,并且將其推送至直播間的每個(gè)觀看用戶,避免大量的第二終端將視頻流上傳至服務(wù)器,減少了網(wǎng)絡(luò)帶寬的占用,降低了直播平臺(tái)服務(wù)器的壓力;再者,上述推向直播間的視頻流適配于各種直播視頻播放前端(PC端、移動(dòng)端、WEB端),無(wú)需再為多種前端適配不同的視頻流解析協(xié)議,徹底解放前端。
雖然上面已經(jīng)示出了本發(fā)明的一些示例性實(shí)施例,但是本領(lǐng)域的技術(shù)人員將理解,在不脫離本發(fā)明的原理或精神的情況下,可以對(duì)這些示例性實(shí)施例做出改變,本發(fā)明的范圍由權(quán)利要求及其等同物限定。