本申請(qǐng)涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及客戶端連麥直播處理方法和裝置、直播服務(wù)器及直播系統(tǒng)。
背景技術(shù):
目前,隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,直播軟件越來越受歡迎,越來越多的主播節(jié)目利用直播平臺(tái)向觀眾播放各種內(nèi)容。在直播過程中,主播使用的主播客戶端將通過信號(hào)采集設(shè)備(如:攝像頭、麥克風(fēng)等)采集到的直播源數(shù)據(jù)上傳到直播服務(wù)器,再通過直播服務(wù)器分發(fā)到一個(gè)或多個(gè)其他客戶端進(jìn)行播放。
直播軟件可以提供多種直播模式供用戶選擇,例如主播模式或麥序模式;主播模式下,多個(gè)客戶端中其中一個(gè)客戶端擔(dān)當(dāng)主播客戶端的角色,其他客戶端均為觀眾客戶端;麥序模式可以呈現(xiàn)更多精彩內(nèi)容給觀眾,增加直播的趣味性。麥序模式下,可以存在多個(gè)主播,最先成為主播的客戶端向其他客戶端發(fā)起連麥邀請(qǐng),被連麥的客戶端接受連麥邀請(qǐng)后也成為主播。根據(jù)成為主播客戶端的次序可以將各主播客戶端依次稱為首麥、二麥、三麥…客戶端的顯示界面存在多個(gè)窗口,通常,在大窗口中顯示首麥的視頻數(shù)據(jù),小窗口中顯示其他主播客戶端(比如,二麥)的視頻數(shù)據(jù)。連麥畫面參考圖1b所示。
用戶在連麥或者觀看連麥的時(shí)候,首麥顯示為全屏大窗口,二麥、三麥等顯示為小窗口,直播焦點(diǎn)固定,對(duì)于小窗口中顯示的畫面難以看清楚,影響觀看效果。
技術(shù)實(shí)現(xiàn)要素:
為克服相關(guān)技術(shù)中存在的問題,本申請(qǐng)?zhí)峁┛蛻舳诉B麥直播處理方法和裝置、直播服務(wù)器及直播系統(tǒng)。
根據(jù)本申請(qǐng)實(shí)施例的第一方面,提供一種客戶端連麥直播處理方法,所述方法包括:
將每個(gè)連麥客戶端采集的視頻數(shù)據(jù)分別轉(zhuǎn)碼成第一視頻流和第二視頻流,所述第一視頻流與第一窗口的尺寸對(duì)應(yīng),所述第二視頻流與第二窗口的尺寸對(duì)應(yīng);并將第一連麥客戶端的第一視頻流和第二連麥客戶端的第二視頻流發(fā)送給客戶端;
接收到客戶端發(fā)送的切換窗口請(qǐng)求時(shí),獲取第一連麥客戶端的第二視頻流和第二連麥客戶端的第一視頻流,并發(fā)送至發(fā)出所述請(qǐng)求的客戶端;所述請(qǐng)求中包括第一連麥客戶端標(biāo)識(shí)和第二連麥客戶端標(biāo)識(shí)。
根據(jù)本申請(qǐng)實(shí)施例的第二方面,提供一種客戶端連麥直播處理方法,所述方法包括:
接收直播服務(wù)器發(fā)來的第一連麥客戶端的第一視頻流和第二連麥客戶端的第二視頻流;
在第一窗口播放第一連麥客戶端的第一視頻流,在第二窗口播放第二連麥客戶端的第二視頻流;
接收到用戶的切換窗口指令時(shí),向直播服務(wù)器發(fā)出切換窗口請(qǐng)求,所述請(qǐng)求中包括第一連麥客戶端標(biāo)識(shí)和第二連麥客戶端標(biāo)識(shí);
將直播服務(wù)器返回的第一連麥客戶端的第二視頻流在第二窗口播放,第二連麥客戶端的第一視頻流在第一窗口播放。
根據(jù)本申請(qǐng)實(shí)施例的第三方面,提供一種客戶端連麥直播處理方法,所述方法包括:
直播服務(wù)器接收每個(gè)連麥客戶端采集的視頻數(shù)據(jù),并分別轉(zhuǎn)碼成第一視頻流和第二視頻流,所述第一視頻流與第一窗口的尺寸對(duì)應(yīng),所述第二視頻流與第二窗口的尺寸對(duì)應(yīng);并將第一連麥客戶端的第一視頻流和第二連麥客戶端的第二視頻流發(fā)送給客戶端;
客戶端接收直播服務(wù)器發(fā)來的視頻流,并在第一窗口播放第一連麥客戶端的第一視頻流,在第二窗口播放第二連麥客戶端的第二視頻流;
客戶端接收到用戶的切換窗口指令時(shí),向直播服務(wù)器發(fā)出切換窗口請(qǐng)求,所述請(qǐng)求中包括第一連麥客戶端標(biāo)識(shí)和第二連麥客戶端標(biāo)識(shí);
直播服務(wù)器接收到客戶端發(fā)送的請(qǐng)求時(shí),獲取第一連麥客戶端的第二視頻流和第二連麥客戶端的第一視頻流,并返回至發(fā)出所述請(qǐng)求的客戶端;
客戶端接收直播服務(wù)器返回的視頻流,并將第一連麥客戶端的第二視頻流在第二窗口播放,第二連麥客戶端的第一視頻流在第一窗口播放。
根據(jù)本申請(qǐng)實(shí)施例的第四方面,提供一種客戶端連麥直播處理裝置,所述裝置包括:
轉(zhuǎn)碼模塊,被配置為將每個(gè)連麥客戶端采集的視頻數(shù)據(jù)分別轉(zhuǎn)碼成第一視頻流和第二視頻流,所述第一視頻流與第一窗口的尺寸對(duì)應(yīng),所述第二視頻流與第二窗口的尺寸對(duì)應(yīng);
獲取模塊,被配置為在接收到客戶端發(fā)送的切換窗口請(qǐng)求時(shí),獲取第一連麥客戶端的第二視頻流和第二連麥客戶端的第一視頻流;所述請(qǐng)求中包括第一連麥客戶端標(biāo)識(shí)和第二連麥客戶端標(biāo)識(shí);
發(fā)送模塊,被配置為將轉(zhuǎn)碼模塊轉(zhuǎn)碼所得的第一連麥客戶端的第一視頻流和第二連麥客戶端的第二視頻流發(fā)送給客戶端;或,在接收到客戶端發(fā)送的切換窗口請(qǐng)求時(shí),將獲取模塊獲取的視頻流發(fā)送給發(fā)出所述請(qǐng)求的客戶端。
根據(jù)本申請(qǐng)實(shí)施例的第五方面,提供一種客戶端連麥直播處理裝置,所述裝置包括:
接收模塊,被配置為接收直播服務(wù)器發(fā)來的第一連麥客戶端的第一視頻流和第二連麥客戶端的第二視頻流,或接收直播服務(wù)器發(fā)來的第一連麥客戶端的第二視頻流和第二連麥客戶端的第一視頻流,并發(fā)給播放模塊;
請(qǐng)求模塊,被配置為在接收到用戶的切換窗口指令時(shí),向直播服務(wù)器發(fā)出切換窗口請(qǐng)求,所述請(qǐng)求包中包括第一連麥客戶端標(biāo)識(shí)和第二連麥客戶端標(biāo)識(shí);
播放模塊,被配置為在接收模塊接收到直播服務(wù)器發(fā)來的視頻流時(shí),在第一窗口播放第一視頻流,在第二窗口播放第二視頻流。
根據(jù)本申請(qǐng)實(shí)施例的第六方面,提供一種直播服務(wù)器,包括:
處理器和用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;
其中,所述處理器被配置為:
將每個(gè)連麥客戶端采集的視頻數(shù)據(jù)分別轉(zhuǎn)碼成第一視頻流和第二視頻流,所述第一視頻流與第一窗口的尺寸對(duì)應(yīng),所述第二視頻流與第二窗口的尺寸對(duì)應(yīng);并將第一連麥客戶端的第一視頻流和第二連麥客戶端的第二視頻流發(fā)送給客戶端;
接收到客戶端發(fā)送的切換窗口請(qǐng)求時(shí),獲取第一連麥客戶端的第二視頻流和第二連麥客戶端的第一視頻流,并發(fā)送至發(fā)出所述請(qǐng)求的客戶端;所述請(qǐng)求中包括第一連麥客戶端標(biāo)識(shí)和第二連麥客戶端標(biāo)識(shí)。
根據(jù)本申請(qǐng)實(shí)施例的第七方面,提供一種直播處理系統(tǒng),包括:
直播服務(wù)器,用于分別與連麥客戶端和觀眾客戶端建立連接,將每個(gè)連麥客戶端采集的視頻數(shù)據(jù)分別轉(zhuǎn)碼成第一視頻流和第二視頻流,所述第一視頻流與第一窗口的尺寸對(duì)應(yīng),所述第二視頻流與第二窗口的尺寸對(duì)應(yīng);并將第一連麥客戶端的第一視頻流和第二連麥客戶端的第二視頻流發(fā)送給客戶端;接收到客戶端發(fā)送的切換窗口請(qǐng)求時(shí),獲取第一連麥客戶端的第二視頻流和第二連麥客戶端的第一視頻流,并發(fā)送至發(fā)出所述請(qǐng)求的客戶端;所述請(qǐng)求中包括第一連麥客戶端標(biāo)識(shí)和第二連麥客戶端標(biāo)識(shí);
客戶端,用于接收用戶的窗口切換指令,并與所述直播服務(wù)器建立連接,接收直播服務(wù)器發(fā)送的視頻流并進(jìn)行播放。
本申請(qǐng)的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:
在本申請(qǐng)中,通過直播服務(wù)器將連麥客戶端上傳的視頻數(shù)據(jù)分別轉(zhuǎn)碼成與直播大窗口和直播小窗口對(duì)應(yīng)的視頻流,當(dāng)觀眾客戶端請(qǐng)求切換窗口時(shí),可以根據(jù)請(qǐng)求將匹配的視頻流發(fā)送給觀眾客戶端,以切換直播小窗口與直播大窗口中播放的內(nèi)容,從而可以改變客戶端觀看的焦點(diǎn),提升客戶端觀看直播內(nèi)容的效果。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本申請(qǐng)。
附圖說明
圖1a是根據(jù)一示例性實(shí)施例示出的連麥直播的場(chǎng)景圖。
圖1b是根據(jù)一示例性實(shí)施例示出的連麥直播時(shí)客戶端的界面示意圖。
圖2是根據(jù)一示例性實(shí)施例示出的一種客戶端連麥直播處理方法的流程圖。
圖3是根據(jù)一示例性實(shí)施例示出的兩人連麥直播時(shí)客戶端切換窗口的界面示意圖。
圖4是根據(jù)一示例性實(shí)施例示出的另一種客戶端連麥直播處理方法的流程圖。
圖5是根據(jù)一示例性實(shí)施例示出的另一種客戶端連麥直播處理方法的流程圖。
圖6是根據(jù)一示例性實(shí)施例示出的客戶端和服務(wù)器交互的時(shí)序圖。
圖7是根據(jù)一示例性實(shí)施例示出的一種直播服務(wù)器的構(gòu)架圖。
圖8是根據(jù)一示例性實(shí)施例示出的一種客戶端連麥直播處理裝置的框圖。
圖9是根據(jù)一示例性實(shí)施例示出的另一種客戶端連麥直播處理裝置的框圖。
具體實(shí)施方式
這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本申請(qǐng)相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本申請(qǐng)的一些方面相一致的裝置和方法的例子。
在本申請(qǐng)使用的術(shù)語是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本申請(qǐng)。在本申請(qǐng)和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”是指并包含一個(gè)或多個(gè)相關(guān)聯(lián)的列出項(xiàng)目的任何或所有可能組合。
應(yīng)當(dāng)理解,盡管在本申請(qǐng)可能采用術(shù)語第一、第二、第三等來描述各種信息,但這些信息不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本申請(qǐng)范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時(shí)”或“當(dāng)……時(shí)”或“響應(yīng)于確定”。
目前,直播軟件可以允許主播之間連麥,進(jìn)行多人直播。如圖1a所示,圖1a是根據(jù)一示例性實(shí)施例示出的連麥直播的場(chǎng)景圖,第一連麥客戶端10a、第二連麥客戶端10b采集視頻數(shù)據(jù)并上傳到直播服務(wù)器20,直播服務(wù)器20將第一連麥客戶端10a、第二連麥客戶端10b采集的視頻數(shù)據(jù)轉(zhuǎn)碼成視頻流并發(fā)送給觀眾客戶端30,觀眾客戶端30接收直播服務(wù)器20發(fā)來的視頻流并播放。多人連麥直播界面在連麥客戶端或觀眾客戶端顯示如圖1b所示,多個(gè)窗口大小固定,通常在大窗口中顯示第一連麥客戶端的視頻數(shù)據(jù),小窗口中顯示其他連麥客戶端(比如,第二連麥客戶端)的視頻數(shù)據(jù)。由于窗口固定導(dǎo)致直播焦點(diǎn)固定,用戶難以看清楚小窗口中顯示的畫面,影響觀看效果。
本申請(qǐng)?zhí)峁┮环N客戶端連麥直播處理方法和裝置、直播服務(wù)器及直播系統(tǒng),通過直播服務(wù)器將連麥客戶端上傳的視頻數(shù)據(jù)轉(zhuǎn)碼成與直播大窗口和直播小窗口分別對(duì)應(yīng)的視頻流,當(dāng)觀眾客戶端請(qǐng)求切換窗口時(shí),可以根據(jù)請(qǐng)求將匹配的視頻流發(fā)送給觀眾客戶端,以切換直播小窗口與直播大窗口中播放的內(nèi)容,從而可以改變客戶端觀看的焦點(diǎn),提升客戶端觀看直播內(nèi)容的效果。接下來對(duì)本申請(qǐng)進(jìn)行詳細(xì)說明。
如圖2所示,圖2是本申請(qǐng)根據(jù)一示例性實(shí)施例示出的一種客戶端連麥直播處理方法的流程圖,所述客戶端的直播界面包括第一窗口和第二窗口,所述客戶端包括連麥客戶端,該方法可以應(yīng)用在直播服務(wù)器上,如圖2所示,所述方法可以包括以下步驟S201至S202:
在步驟S201中,將每個(gè)連麥客戶端采集的視頻數(shù)據(jù)分別轉(zhuǎn)碼成第一視頻流和第二視頻流,所述第一視頻流與第一窗口的尺寸對(duì)應(yīng),所述第二視頻流與第二窗口的尺寸對(duì)應(yīng);并將第一連麥客戶端的第一視頻流和第二連麥客戶端的第二視頻流發(fā)送給客戶端。
在步驟S202中,接收到客戶端發(fā)送的切換窗口請(qǐng)求時(shí),獲取第一連麥客戶端的第二視頻流和第二連麥客戶端的第一視頻流,并發(fā)送至發(fā)出所述請(qǐng)求的客戶端;所述請(qǐng)求中包括第一連麥客戶端標(biāo)識(shí)和第二連麥客戶端標(biāo)識(shí)。
在本實(shí)施例中,可以將第一視頻流或第二視頻流處理成不止一種碼率和分辨率的視頻流,其中,第一視頻流或第二視頻流可以包括至少兩種碼率和分辨率。比如可以是以下至少兩種:
碼率為200k、分辨率為240×368,
碼率為600k、分辨率為320×480,
碼率為1200k、分辨率為540×960,
碼率為2000k、分辨率為720×1280。
為第一視頻流或第二視頻流配置不同的碼率和分辨率可以匹配不同客戶端的屏幕特征。單一的視頻流往往難以適合在各種具有不同特定屏幕特征的客戶端上進(jìn)行播放。比如,若采用的單一的視頻流的碼率為600k、分辨率為320×480,則對(duì)于屏幕分辨率為“320×480”或與其分辨率相差較小的屏幕來說,該視頻流是較為適合的。但是,對(duì)于具有其他分辨率的屏幕的客戶端而言,上述視頻流是不太適合播放的,需要通過畫面拉伸或居中的方式來進(jìn)行播放。然而,畫面拉伸或居中的方式可能會(huì)造成直播的畫面不清晰,如:觀眾客戶端的屏幕分辨率是:720×1280,則畫面拉伸后的畫面顯然不夠清晰。可見,得到至少兩種不同的視頻流,從而使得上述至少兩種不同的碼率和分辨率可以分別適合于在具有不同特定屏幕特征的客戶端上進(jìn)行播放,提升了在不同的客戶端上觀看直播內(nèi)容的效果。除了上述幾種不同的碼率和分辨率,還可以按照業(yè)務(wù)需要將連麥客戶端上傳的視頻數(shù)據(jù)轉(zhuǎn)碼成其他碼率和分辨率的視頻流,本申請(qǐng)對(duì)此不作限制。
在本實(shí)施例中,發(fā)出切換窗口請(qǐng)求的客戶端可以是觀眾客戶端或連麥客戶端,其中,所述第一/第二連麥客戶端可以是作為首麥的連麥客戶端,也可以是作為非首麥的連麥客戶端。在直播場(chǎng)景中,作為觀眾,在觀看連麥過程中,可能不僅希望能看到作為首麥的主播的清晰畫面,還希望能夠看到非首麥的主播的清晰畫面;作為主播,在連麥過程中,首麥可能不僅希望看清自己的主播效果,還希望看清其他主播的效果;非首麥也希望能看清自己主播的效果。因此,不管是觀眾客戶端還是連麥客戶端都有切換窗口的需求,本實(shí)施公開的方法可以用在直播過程中所涉及的不同客戶端,以滿足不同客戶端切換窗口的需求。
以觀眾客戶端為例進(jìn)行說明,觀眾通過客戶端可以觀看連麥,其中,連麥可以是兩人連麥也可以是兩個(gè)以上的人連麥。當(dāng)多人連麥時(shí),客戶端的直播界面會(huì)出現(xiàn)多個(gè)窗口,其中,切換窗口可以是首麥對(duì)應(yīng)的窗口和非首麥對(duì)應(yīng)的窗口之間切換,也可以是非首麥對(duì)應(yīng)的窗口和非首麥對(duì)應(yīng)的窗口之間切換,還可以是第一窗口和第二窗口進(jìn)行切換、切換后的第一窗口(或第二窗口)再和第三窗口切換(以上所述窗口切換的過程中窗的口大小和位置并未改變,只是窗口中所播放的內(nèi)容進(jìn)行切換)。由于切換窗口僅是在其中兩個(gè)窗口之間進(jìn)行,因此本申請(qǐng)以兩人連麥直播為例進(jìn)行說明,兩人以上連麥直播過程中切換窗口的方法可以參考兩人連麥的情形。
在兩人連麥時(shí),假設(shè)第一連麥客戶端發(fā)起連麥邀請(qǐng),第二連麥客戶端接受連麥邀請(qǐng),發(fā)起連麥邀請(qǐng)的第一連麥客戶端稱為首麥,接收邀請(qǐng)的第二連麥客戶端稱為二麥。一般在客戶端的顯示界面中,首麥顯示為全屏大窗口,二首麥顯示為小窗口,小窗口可以位于客戶端界面的不同位置,作為一個(gè)例子,可以位于屏幕的右上角。
將作為首麥的第一連麥客戶端和作為二麥的第二連麥客戶端上傳的視頻數(shù)據(jù)分別轉(zhuǎn)碼成第一視頻流和第二視頻流,其中第一視頻流與第一窗口的尺寸對(duì)應(yīng),第二視頻流與第二窗口的尺寸對(duì)應(yīng)。假設(shè),
第一連麥客戶端為A,第二連麥客戶端為B,直播服務(wù)器接收第一連麥客戶端A、第二連麥客戶端B上傳的視頻數(shù)據(jù),并將第一連麥客戶端A上傳的視頻數(shù)據(jù)轉(zhuǎn)碼為第一視頻流A1和第二視頻流A2,將第二連麥客戶端上傳的視頻數(shù)據(jù)轉(zhuǎn)碼成第一視頻流B1和第二視頻流B2,其中,第一視頻流A1、B1與第一窗口的尺寸對(duì)應(yīng),第二視頻流A2、B2與第二窗口的尺寸對(duì)應(yīng)。
直播服務(wù)器首先將視頻流A1、B2發(fā)送至觀眾客戶端C,觀眾客戶端C界面顯示如圖3中左圖所示,其中,A1在第一窗口顯示,B2在第二窗口顯示。
當(dāng)直播服務(wù)器接收到觀眾客戶端C發(fā)送的切換窗口的請(qǐng)求時(shí),獲取視頻流A2、B1,并返回至觀眾客戶端C。
觀眾客戶端C接收到直播服務(wù)器返回的視頻數(shù)據(jù)后播放,顯示如圖3中右圖所示,其中,B1在第一窗口顯示,A2在第二窗口顯示,從而完成窗口內(nèi)容的切換。
在一個(gè)可選的實(shí)施例中,所述請(qǐng)求可以包括第一連麥客戶端標(biāo)識(shí)和第二連麥客戶端標(biāo)識(shí)。直播服務(wù)器在把第一連麥客戶端的第一視頻流和第二連麥客戶端的第二視頻流分別發(fā)送給客戶端的第一窗口和第二窗口時(shí),直播服務(wù)器可以記錄第一連麥客戶端和第二連麥客戶端的標(biāo)識(shí)以及第一、第二窗口的位置、尺寸參數(shù)。當(dāng)客戶端請(qǐng)求切換第一窗口和第二窗口時(shí),由于請(qǐng)求中包括第一連麥客戶端和第二連麥客戶端的標(biāo)識(shí),直播服務(wù)器就可以根據(jù)請(qǐng)求中所包括的標(biāo)識(shí)及所記錄的內(nèi)容,獲取第一連麥客戶端的第二視頻流和第二連麥客戶端的第一視頻流,并分別發(fā)送給第二窗口和第一窗口,以實(shí)現(xiàn)窗口切換。
在一個(gè)可選的實(shí)施例中,所述請(qǐng)求還可以包括第一、第二窗口的標(biāo)識(shí)及參數(shù),所述參數(shù)可以包括以下一種或多種:窗口位置參數(shù)及窗口尺寸參數(shù)。在這種情況下,直播服務(wù)器在將第一連麥客戶端的第一視頻流和第二連麥客戶端的第二視頻流分別發(fā)送給客戶端的第一窗口和第二窗口時(shí),可以不記錄第一連麥客戶端和第二連麥客戶端的標(biāo)識(shí)以及第一窗口和第二窗口的尺寸或位置等參數(shù)。而是在請(qǐng)求中攜帶窗口尺寸或位置參數(shù),直播服務(wù)器可以根據(jù)請(qǐng)求中所攜帶第一、第二連麥客戶端的標(biāo)識(shí)和窗口標(biāo)識(shí)及參數(shù),獲取第一連麥客戶端的與第二窗口尺寸對(duì)應(yīng)第二視頻流并發(fā)送至客戶端相應(yīng)位置,第二連麥客戶端的與第一窗口尺寸對(duì)應(yīng)的第一視頻流并發(fā)送客戶端至相應(yīng)位置。
如圖4所示,圖4是本申請(qǐng)根據(jù)一示例性實(shí)施例示出的另一種客戶端連麥直播處理方法的流程圖,所述客戶端的直播界面包括第一窗口和第二窗口,所述客戶端包括連麥客戶端,該方法可以應(yīng)用在觀眾客戶端或連麥客戶端上,如圖4所示,所述方法可以包括以下步驟S401至S404:
在步驟S401中,接收直播服務(wù)器發(fā)來的第一連麥客戶端的第一視頻流和第二連麥客戶端的第二視頻流。
在步驟S402中,在第一窗口播放第一連麥客戶端的第一視頻流,在第二窗口播放第二連麥客戶端的第二視頻流。
在步驟S403中,接收到用戶的切換窗口指令時(shí),向直播服務(wù)器發(fā)出切換窗口請(qǐng)求,所述請(qǐng)求包中包括第一連麥客戶端標(biāo)識(shí)和第二連麥客戶端標(biāo)識(shí)。
在步驟S404中,將直播服務(wù)器返回的第一連麥客戶端的第二視頻流在第二窗口播放,第二連麥客戶端的第一視頻流在第一窗口播放。
在本實(shí)施例中,所述第一/第二視頻流,客戶端,第一/第二連麥客戶端,請(qǐng)求等可以參考圖2所述實(shí)施例中的解釋,對(duì)此不再贅述。
在本實(shí)施例中,切換窗口指令可以有多種,比如可以是先點(diǎn)擊第一窗口中的切換指令,再點(diǎn)擊第二窗口,其中,第一窗口中的切換指令可以是點(diǎn)擊第一窗口、長按第一窗口或者點(diǎn)擊第一窗口中的切換窗口按鈕。本申請(qǐng)對(duì)此不作限制。
如圖5所示,是本申請(qǐng)根據(jù)一示例性實(shí)施例示出的另一種客戶端連麥直播處理方法的流程圖,本實(shí)施例描述了連麥直播時(shí),客戶端與服務(wù)器交互的部分流程。所述客戶端的直播界面包括第一窗口和第二窗口,所述客戶端包括連麥客戶端,所述方法包括以下步驟S501至S505:
在步驟S501中,直播服務(wù)器接收每個(gè)連麥客戶端上傳的視頻數(shù)據(jù),并分別轉(zhuǎn)碼成第一視頻流和第二視頻流,所述第一視頻流與第一窗口的尺寸對(duì)應(yīng),所述第二視頻流與第二窗口的尺寸對(duì)應(yīng);并將第一連麥客戶端的第一視頻流和第二連麥客戶端的第二視頻流發(fā)送給客戶端。
在步驟S502中,客戶端接收直播服務(wù)器發(fā)來的視頻流,并在第一窗口播放第一連麥客戶端的第一視頻流,在第二窗口播放第二連麥客戶端的第二視頻流。
在步驟S503中,客戶端接收到用戶的切換窗口指令時(shí),向直播服務(wù)器發(fā)出切換窗口請(qǐng)求,所述請(qǐng)求中包括第一連麥客戶端標(biāo)識(shí)和第二連麥客戶端標(biāo)識(shí)。
在步驟S504中,直播服務(wù)器接收到客戶端發(fā)送的請(qǐng)求時(shí),獲取第一連麥客戶端的第二視頻流和第二連麥客戶端的第一視頻流,并返回至發(fā)出所述請(qǐng)求的客戶端。
在步驟S505中,客戶端接收直播服務(wù)器返回的視頻流,并將第一連麥客戶端的第二視頻流在第二窗口播放,第二連麥客戶端的第一視頻流在第一窗口播放。
在本實(shí)施例中,所述第一/第二視頻流,客戶端,第一/第二連麥客戶端,請(qǐng)求、指令等可以參考圖2、圖4所述實(shí)施例中的解釋,對(duì)此不再贅述。
如圖6所示,為本申請(qǐng)根據(jù)一示例性實(shí)施例示出的客戶端與服務(wù)器交互的時(shí)序圖。結(jié)合圖1a、圖3和圖6,客戶端與服務(wù)器交互的過程可以包括以下步驟:
S601,第一連麥客戶端10a和第二連麥客戶端10b采集視頻數(shù)據(jù)。
S602,第一連麥客戶端10a、第二連麥客戶端10b將采集的視頻數(shù)據(jù)上傳至直播服務(wù)器20。
S603,直播服務(wù)器20接收第一連麥客戶端10a和第二連麥客戶端10b采集視頻數(shù)據(jù),并將第一連麥客戶端10a采集的視頻數(shù)據(jù)轉(zhuǎn)碼成第一視頻流A1和第二視頻流A2,將第二連麥客戶端10b采集的視頻數(shù)據(jù)轉(zhuǎn)碼成第一視頻流B1和第二視頻流B2,其中第一視頻流A1、B1與第一窗口的尺寸對(duì)應(yīng),第二視頻流A2、B2與第二窗口的尺寸對(duì)應(yīng)。
S604,直播服務(wù)器20將第一連麥客戶端10a的第一視頻流A1和第二連麥客戶端10b的第二視頻流B2發(fā)送給觀眾客戶端30、第一連麥客戶端10a、第二連麥客戶端10b。
S605,客戶端(觀眾客戶端30、第一連麥客戶端10a、第二連麥客戶端10b)接收直播服務(wù)器發(fā)來的視頻流,并在第一窗口播放第一連麥客戶端10a的第一視頻流A1,在第二窗口播放第二連麥客戶端10b的第二視頻流B2(客戶端界面顯示可參考圖3中左圖)。
S606,觀眾客戶端30接收用戶的切換窗口指令。
S607,觀眾客戶端30向直播服務(wù)器20發(fā)送切換窗口請(qǐng)求。
S608,直播服務(wù)器20基于所述請(qǐng)求獲取第一連麥客戶端10a的第二視頻流A2和第二連麥客戶端10b的第一視頻流B1。
S609,直播服務(wù)器20將獲取的視頻流返回給發(fā)出所述請(qǐng)求的觀眾客戶端30。
S610,觀眾客戶端30接收直播服務(wù)器返回的視頻流,并在第一窗口播放第二連麥客戶端10b的第一視頻流B1,在第二窗口播放第一連麥客戶端10a的第二視頻流A2(客戶端界面顯示可以參考圖3中右圖)。
S611,第二連麥客戶端10b接收用戶的切換窗口指令。
S612,第二連麥客戶端10b向直播服務(wù)器發(fā)出切換窗口請(qǐng)求。
S613,直播服務(wù)器20基于所述請(qǐng)求獲取第一連麥客戶端10a的第二視頻流A2和第二連麥客戶端10b的第一視頻流B1。
S614,直播服務(wù)器20將獲取的視頻流返回給發(fā)出所述請(qǐng)求的第二連麥客戶端10b。
S615,第二連麥客戶端10b接收直播服務(wù)器返回的視頻流,并在第一窗口播放第二連麥客戶端10b的第一視頻流B1,在第二窗口播放第一連麥客戶端10a的第二視頻流A2(客戶端界面顯示可以參考圖3中右圖)。
S616,觀眾客戶端30再次接收到用戶的切換窗口指令。
S617,觀眾客戶端30向直播服務(wù)器20發(fā)送窗口切換請(qǐng)求。
S618,直播服務(wù)器20基于所述請(qǐng)求獲取第一連麥客戶端10a的第一視頻流A1和第二連麥客戶端10b的第二視頻流B2。
S619,直播服務(wù)器20將獲取的視頻流返回給發(fā)出所述請(qǐng)求的觀眾客戶端30。
S620,觀眾客戶端30接收直播服務(wù)器返回的視頻流,并在第一窗口播放第一連麥客戶端10a的第二視頻流A1,在第二窗口播放第二連麥客戶端10b的第一視頻流B2(客戶端界面顯示可以參考圖3中左圖)。
與前述客戶端的連麥直播處理方法的實(shí)施例相對(duì)應(yīng),本申請(qǐng)還提供了客戶端的連麥處理裝置的實(shí)施例。
本申請(qǐng)客戶端的連麥直播處理裝置的實(shí)施例可以應(yīng)用在直播服務(wù)器上。裝置實(shí)施例可以通過軟件實(shí)現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為一個(gè)邏輯意義上的裝置,是通過其所在直播服務(wù)器的處理器將非易失性存儲(chǔ)器中對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。從硬件層面而言,如圖7所示,為本申請(qǐng)客戶端連麥直播處理裝置所在直播服務(wù)器的一種硬件結(jié)構(gòu)圖,除了圖7所示的處理器、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲(chǔ)器之外,實(shí)施例中裝置所在的直播服務(wù)器通常根據(jù)該客戶端的連麥直播處理裝置的實(shí)際功能,還可以包括其他硬件,對(duì)此不再贅述。
圖8是根據(jù)一示例性實(shí)施例示出的一種客戶端連麥直播處理裝置800的框圖,所述客戶端的直播界面包括第一窗口和第二窗口,所述客戶端包括連麥客戶端,該裝置可以應(yīng)用在直播服務(wù)器上,如圖8所述,所述裝置800包括:
轉(zhuǎn)碼模塊801,被配置為將每個(gè)連麥客戶端采集的視頻數(shù)據(jù)分別轉(zhuǎn)碼成第一視頻流和第二視頻流,所述第一視頻流與第一窗口的尺寸對(duì)應(yīng),所述第二視頻流與第二窗口的尺寸對(duì)應(yīng);
獲取模塊802,被配置為在接收到客戶端發(fā)送的切換窗口請(qǐng)求時(shí),獲取第一連麥客戶端的第二視頻流和第二連麥客戶端的第一視頻流;所述請(qǐng)求中包括第一連麥客戶端標(biāo)識(shí)和第二連麥客戶端標(biāo)識(shí);
發(fā)送模塊803,被配置為將轉(zhuǎn)碼模塊轉(zhuǎn)碼所得的第一連麥客戶端的第一視頻流和第二連麥客戶端的第二視頻流發(fā)送給客戶端;或,在接收到客戶端發(fā)送的切換窗口請(qǐng)求時(shí),將獲取模塊獲取的視頻流發(fā)送給發(fā)出所述請(qǐng)求的客戶端。
在一個(gè)可選的實(shí)施例中,第一視頻流或第二視頻流包括至少兩種碼率和分辨率的視頻流。為第一視頻流或第二視頻流配置不同的碼率和分辨率可以匹配不同終端的屏幕特征。
在一個(gè)可選的實(shí)施例中,發(fā)出切換窗口請(qǐng)求的客戶端可以是觀眾客戶端或連麥客戶端,其中,所述第一/第二連麥客戶端可以是作為首麥的連麥客戶端,也可以是作為非首麥的連麥客戶端。
在一個(gè)可選的實(shí)施例中,所述請(qǐng)求還包括第一、第二窗口的標(biāo)識(shí)及參數(shù),所述參數(shù)包括以下一種或多種:窗口位置參數(shù)及窗口尺寸參數(shù)。
圖9是根據(jù)一示例性實(shí)施例示出的另一種客戶端連麥直播處理裝置900的框圖,所述客戶端的直播界面包括第一窗口和第二窗口,所述客戶端包括連麥客戶端,該裝置可以應(yīng)用在觀眾客戶端或連麥客戶端上,如圖9所示,所述裝置900包括:
接收模塊901,被配置為接收直播服務(wù)器發(fā)來的第一連麥客戶端的第一視頻流和第二連麥客戶端的第二視頻流,或接收直播服務(wù)器發(fā)來的第一連麥客戶端的第二視頻流和第二連麥客戶端的第一視頻流,并發(fā)給播放模塊;
請(qǐng)求模塊902,被配置為在接收到用戶的切換窗口指令時(shí),向直播服務(wù)器發(fā)出切換窗口請(qǐng)求,所述請(qǐng)求包中包括第一連麥客戶端標(biāo)識(shí)和第二連麥客戶端標(biāo)識(shí);
播放模塊903,被配置為在接收模塊接收到直播服務(wù)器發(fā)來的視頻流時(shí),在第一窗口播放第一視頻流,在第二窗口播放第二視頻流。
上述裝置中各個(gè)模塊的功能和作用的實(shí)現(xiàn)過程具體詳見上述方法中對(duì)應(yīng)步驟的實(shí)現(xiàn)過程,在此不再贅述。
對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者也可以不是物理模塊,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)模塊上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本申請(qǐng)方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
以上所述僅為本申請(qǐng)的較佳實(shí)施例而已,并不用以限制本申請(qǐng),凡在本申請(qǐng)的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)保護(hù)的范圍之內(nèi)。