本發(fā)明實(shí)施例涉及通信技術(shù)領(lǐng)域,尤其涉及一種基于WebRTC的交互式直播方法及裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,互聯(lián)網(wǎng)的多媒體內(nèi)容已經(jīng)成為人們的信息需求,在網(wǎng)絡(luò)帶寬不斷提升與視頻傳輸技術(shù)不斷發(fā)展下,網(wǎng)絡(luò)視頻的直播需求也在日益增加。
現(xiàn)有技術(shù),網(wǎng)絡(luò)視頻直播服務(wù)由視頻內(nèi)容提供方提供,且視頻內(nèi)容提供方與接收方都需要安裝專門的軟件或插件,導(dǎo)致實(shí)現(xiàn)網(wǎng)絡(luò)視頻直播服務(wù)的操作復(fù)雜。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種基于WebRTC的交互式直播方法及裝置,以有效簡單地實(shí)現(xiàn)了網(wǎng)絡(luò)視頻直播服務(wù)。
本發(fā)明實(shí)施例的一個(gè)方面是提供一種基于WebRTC的交互式直播方法,包括:
服務(wù)器通過服務(wù)器WebRTC接口接收第一用戶終端從第一WebRTC接口發(fā)送的第一視頻數(shù)據(jù);
所述服務(wù)器將所述第一視頻數(shù)據(jù)通過所述服務(wù)器WebRTC接口發(fā)送給第二用戶終端的第二WebRTC接口。
本發(fā)明實(shí)施例的另一個(gè)方面是提供一種服務(wù)器,包括:
接收模塊,用于通過服務(wù)器WebRTC接口接收第一用戶終端從第一WebRTC接口發(fā)送的第一視頻數(shù)據(jù);
發(fā)送模塊,用于將所述第一視頻數(shù)據(jù)通過所述服務(wù)器WebRTC接口發(fā)送給第二用戶終端的第二WebRTC接口。
本發(fā)明實(shí)施例提供的基于WebRTC的交互式直播方法及裝置,用戶終端通過WebRTC接口將視頻數(shù)據(jù)發(fā)送給服務(wù)器,服務(wù)器通過WebRTC接口向其他用戶終端轉(zhuǎn)發(fā)視頻數(shù)據(jù),使得用戶終端與服務(wù)器均不需要安裝專門的軟件或插件便能實(shí)現(xiàn)網(wǎng)絡(luò)視頻直播服務(wù),有效簡單地實(shí)現(xiàn)了網(wǎng)絡(luò)視頻直播服務(wù)。
附圖說明
圖1為本發(fā)明實(shí)施例提供的基于WebRTC的交互式直播方法流程圖;
圖2為本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)架構(gòu)圖;
圖3為本發(fā)明實(shí)施例提供的基于WebRTC的交互式直播方法適用的信令圖;
圖4為本發(fā)明實(shí)施例提供的基于WebRTC的交互式直播方法適用的信令圖;
圖5為本發(fā)明實(shí)施例提供的基于WebRTC的交互式直播方法適用的信令圖;
圖6為本發(fā)明實(shí)施例提供的服務(wù)器的結(jié)構(gòu)圖;
圖7為本發(fā)明實(shí)施例提供的基于WebRTC的交互式直播系統(tǒng)的結(jié)構(gòu)圖。
具體實(shí)施方式
圖1為本發(fā)明實(shí)施例提供的基于WebRTC的交互式直播方法流程圖;圖2為本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)架構(gòu)圖。本發(fā)明實(shí)施例針視頻內(nèi)容提供方與接收方都需要安裝專門的軟件或插件實(shí)現(xiàn)網(wǎng)絡(luò)視頻直播服務(wù),提供基于WebRTC的交互式直播方法,該方法具體步驟如下:
步驟S101、服務(wù)器通過服務(wù)器WebRTC接口接收第一用戶終端從第一WebRTC接口發(fā)送的第一視頻數(shù)據(jù);
如圖2所示,服務(wù)器22與多臺(tái)用戶終端相連,且服務(wù)器22與每個(gè)用戶終端具體通過網(wǎng)頁實(shí)時(shí)通信(Web Real-Time Communication,簡稱WebRTC)接口相連。
WebRTC接口是一個(gè)支持網(wǎng)頁瀏覽器進(jìn)行實(shí)時(shí)語音對(duì)話或視頻對(duì)話的技術(shù),WebRTC技術(shù)實(shí)現(xiàn)了基于網(wǎng)頁的視頻會(huì)議,標(biāo)準(zhǔn)是網(wǎng)頁超文本應(yīng)用技術(shù)工作小組(Web Hypertext Application Technology Working Group,簡稱 WHATWG)協(xié)議,目的是通過瀏覽器提供簡單的javascript就可以達(dá)到實(shí)時(shí)通信的能力。
步驟S102、所述服務(wù)器將所述第一視頻數(shù)據(jù)通過所述服務(wù)器WebRTC接口發(fā)送給第二用戶終端的第二WebRTC接口。
第一用戶終端21通過第一用戶終端21的第一WebRTC接口向服務(wù)器22的WebRTC接口發(fā)送第一視頻數(shù)據(jù),第一視頻數(shù)據(jù)即從第一用戶終端21到服務(wù)器22的上行數(shù)據(jù),服務(wù)器22將第一視頻數(shù)據(jù)發(fā)送給與其相連的其他用戶終端,即從服務(wù)器22到其他用戶終端的下行數(shù)據(jù)傳輸。
本發(fā)明實(shí)施例用戶終端通過WebRTC接口將視頻數(shù)據(jù)發(fā)送給服務(wù)器,服務(wù)器通過WebRTC接口向其他用戶終端轉(zhuǎn)發(fā)視頻數(shù)據(jù),使得用戶終端與服務(wù)器均不需要安裝專門的軟件或插件便能實(shí)現(xiàn)網(wǎng)絡(luò)視頻直播服務(wù),有效簡單地實(shí)現(xiàn)了網(wǎng)絡(luò)視頻直播服務(wù)。
圖3為本發(fā)明實(shí)施例提供的基于WebRTC的交互式直播方法適用的信令圖圖;4為本發(fā)明實(shí)施例提供的基于WebRTC的交互式直播方法適用的信令圖;圖5為本發(fā)明實(shí)施例提供的基于WebRTC的交互式直播方法適用的信令圖。本發(fā)明實(shí)施例提供了第一用戶終端與服務(wù)器進(jìn)行信令交互的過程,具體過程如下:
步驟S301、第一用戶終端向服務(wù)器請(qǐng)求發(fā)布直播;
第一用戶終端向服務(wù)器發(fā)送請(qǐng)求信息,該請(qǐng)求信息表示向服務(wù)器發(fā)布直播。
步驟S302、服務(wù)器向第一用戶終端發(fā)送邏輯組標(biāo)識(shí);
服務(wù)器為第一用戶終端分配一個(gè)邏輯組標(biāo)識(shí),即服務(wù)器建立一個(gè)“視頻直播間”的邏輯,該“視頻直播間”的標(biāo)識(shí)即為邏輯組標(biāo)識(shí),該“視頻直播間”中包括服務(wù)器與多個(gè)用戶終端。
步驟S303、第一用戶終端向服務(wù)器請(qǐng)求建立WebRTC連接;
第一用戶終端通過WebRTC接口與服務(wù)器建立連接,在建立連接之前,第一用戶終端向服務(wù)器發(fā)送建立請(qǐng)求。
步驟S304、服務(wù)器向第一用戶終端發(fā)送連接建立成功消息;
服務(wù)器接受第一用戶終端的建立請(qǐng)求后向第一用戶終端發(fā)送連接建立成功消息。
步驟S305、第一用戶終端向服務(wù)器發(fā)送第一視頻數(shù)據(jù)。
第一用戶終端通過WebRTC接口向服務(wù)器發(fā)送第一視頻數(shù)據(jù),第一視頻數(shù)據(jù)對(duì)應(yīng)邏輯組標(biāo)識(shí)。
在上述實(shí)施例的基礎(chǔ)上,所述服務(wù)器將所述第一視頻數(shù)據(jù)發(fā)送給第二用戶終端包括:所述服務(wù)器通過所述服務(wù)器WebRTC接口向第二WebRTC接口發(fā)送所述第一視頻數(shù)據(jù),所述第二WebRTC接口建立在所述第二用戶終端上。
如圖2所示,第二用戶終端23對(duì)應(yīng)建立第二WebRTC接口,服務(wù)器22接收到第一用戶終端21發(fā)送的第一視頻數(shù)據(jù)后,將第一視頻數(shù)據(jù)通過服務(wù)器WebRTC接口向第二WebRTC接口發(fā)送所述第一視頻數(shù)據(jù)。
所述服務(wù)器將所述第一視頻數(shù)據(jù)通過所述服務(wù)器WebRTC接口發(fā)送給第二用戶終端的第二WebRTC接口之前,還包括:所述服務(wù)器接收所述第二用戶終端發(fā)送的請(qǐng)求消息;所述服務(wù)器依據(jù)所述請(qǐng)求消息向所述第二用戶終端發(fā)送多個(gè)邏輯組標(biāo)識(shí);所述服務(wù)器接收所述第二用戶終端從所述多個(gè)邏輯組標(biāo)識(shí)中選取的目標(biāo)邏輯組標(biāo)識(shí),所述目標(biāo)邏輯組標(biāo)識(shí)與所述第一視頻數(shù)據(jù)對(duì)應(yīng)。
如圖4所示,提供了第二用戶終端與服務(wù)器進(jìn)行信令交互的過程,具體過程如下:
步驟S401、第二用戶終端向服務(wù)器發(fā)送請(qǐng)求消息;
步驟S402、服務(wù)器向第二用戶終端發(fā)送多個(gè)邏輯組標(biāo)識(shí);
步驟S403、第二用戶終端向服務(wù)器發(fā)送目標(biāo)邏輯組標(biāo)識(shí);
第二用戶終端從多個(gè)邏輯組標(biāo)識(shí)中選出目標(biāo)邏輯組標(biāo)識(shí),并向服務(wù)器發(fā)送目標(biāo)邏輯組標(biāo)識(shí)。
步驟S404、第二用戶終端向服務(wù)器請(qǐng)求建立WebRTC連接;
步驟S405、服務(wù)器向第二用戶終端發(fā)送連接建立成功消息;
步驟S406、第二用戶終端向服務(wù)器請(qǐng)求數(shù)據(jù);
步驟S407、服務(wù)器向第二用戶終端發(fā)送第一視頻數(shù)據(jù)。
在本發(fā)明實(shí)施例中,基于WebRTC的交互式直播方法還包括:所述服務(wù)器將所述第二用戶終端發(fā)送的視頻數(shù)據(jù)發(fā)送請(qǐng)求轉(zhuǎn)發(fā)給所述第一用戶終端;所述服務(wù)器將所述第一用戶終端發(fā)送的許可發(fā)送消息轉(zhuǎn)發(fā)給所述第二用戶終端;所述服務(wù)器接收所述第二用戶終端依據(jù)所述許可發(fā)送消息發(fā)送的第二視頻數(shù)據(jù)。
所述第一視頻數(shù)據(jù)和所述第二視頻數(shù)據(jù)屬于同一邏輯組;所述方法還包括:所述服務(wù)器將所述第一用戶終端發(fā)送的禁止發(fā)送消息轉(zhuǎn)發(fā)給所述第二用戶終端,以使所述第二用戶終端停止向所述服務(wù)器發(fā)送所述第二視頻數(shù)據(jù)。
如圖5所示,提供了第二用戶終端、服務(wù)器和第一用戶終端進(jìn)行信令交互的過程,具體過程如下:
步驟S501、第二用戶終端向服務(wù)器發(fā)送視頻數(shù)據(jù)發(fā)送請(qǐng)求;
在本發(fā)明實(shí)施例中,第二用戶終端不僅可以接收服務(wù)器發(fā)送第一視頻數(shù)據(jù),還可以向服務(wù)器發(fā)送第二視頻數(shù)據(jù),在向服務(wù)器發(fā)送第二視頻數(shù)據(jù)之前,第二用戶終端向服務(wù)器發(fā)送視頻數(shù)據(jù)發(fā)送請(qǐng)求。
步驟S502、服務(wù)器向第一用戶終端轉(zhuǎn)發(fā)視頻數(shù)據(jù)發(fā)送請(qǐng)求;
步驟S503、第一用戶終端向服務(wù)器發(fā)送許可發(fā)送消息;
第一用戶終端若允許第二用戶終端發(fā)送第二視頻數(shù)據(jù),則向服務(wù)器發(fā)送許可發(fā)送消息。
步驟S504、服務(wù)器向第二用戶終端轉(zhuǎn)發(fā)許可發(fā)送消息;
步驟S505、第二用戶終端向服務(wù)器發(fā)送第二視頻數(shù)據(jù);
步驟S506、第一用戶終端向服務(wù)器發(fā)送禁止發(fā)送消息;
第一用戶終端若禁止第二用戶終端發(fā)送第二視頻數(shù)據(jù),則向服務(wù)器發(fā)送禁止發(fā)送消息。
步驟S507、服務(wù)器向第二用戶終端轉(zhuǎn)發(fā)禁止發(fā)送消息;
步驟S508、第二用戶終端停止發(fā)送第二視頻數(shù)據(jù)。
在本發(fā)明實(shí)施例中,第一用戶終端或第二用戶終端與服務(wù)器之間通過WebRTC接口交互視頻數(shù)據(jù),通過可擴(kuò)展通訊和表示協(xié)議(Extensible Messaging and Presence Protocol,簡稱XMPP)交互控制指令,具體如請(qǐng)求消息、許可發(fā)送消息、禁止發(fā)送消息等。
本發(fā)明實(shí)施例具體提供了用戶終端與服務(wù)器的信令交互過程,通過WebRTC接口交互視頻數(shù)據(jù),通過XMPP協(xié)議交互控制指令,使得用戶終端與服務(wù)器均不需要安裝專門的軟件或插件便能實(shí)現(xiàn)網(wǎng)絡(luò)視頻直播服務(wù),有效簡單地實(shí)現(xiàn)了網(wǎng)絡(luò)視頻直播服務(wù)。
圖6為本發(fā)明實(shí)施例提供的服務(wù)器的結(jié)構(gòu)圖。本發(fā)明實(shí)施例提供的服務(wù)器可以執(zhí)行基于WebRTC的交互式直播方法實(shí)施例提供的處理流程,如圖6所 示,服務(wù)器60包括接收模塊61和發(fā)送模塊62,其中,接收模塊61用于通過服務(wù)器WebRTC接口接收第一用戶終端從第一WebRTC接口發(fā)送的第一視頻數(shù)據(jù);發(fā)送模塊62用于將所述第一視頻數(shù)據(jù)通過所述服務(wù)器WebRTC接口發(fā)送給第二用戶終端的第二WebRTC接口。
本發(fā)明實(shí)施例用戶終端通過WebRTC接口將視頻數(shù)據(jù)發(fā)送給服務(wù)器,服務(wù)器通過WebRTC接口向其他用戶終端轉(zhuǎn)發(fā)視頻數(shù)據(jù),使得用戶終端與服務(wù)器均不需要安裝專門的軟件或插件便能實(shí)現(xiàn)網(wǎng)絡(luò)視頻直播服務(wù),有效簡單地實(shí)現(xiàn)了網(wǎng)絡(luò)視頻直播服務(wù)。
在上述實(shí)施例的基礎(chǔ)上,接收模塊61還用于接收所述第二用戶終端發(fā)送的請(qǐng)求消息;發(fā)送模塊62還用于依據(jù)所述請(qǐng)求消息向所述第二用戶終端發(fā)送多個(gè)邏輯組標(biāo)識(shí);接收模塊61還用于接收所述第二用戶終端從所述多個(gè)邏輯組標(biāo)識(shí)中選取的目標(biāo)邏輯組標(biāo)識(shí),所述目標(biāo)邏輯組標(biāo)識(shí)與所述第一視頻數(shù)據(jù)對(duì)應(yīng)。
發(fā)送模塊62還用于將所述第二用戶終端發(fā)送的視頻數(shù)據(jù)發(fā)送請(qǐng)求轉(zhuǎn)發(fā)給所述第一用戶終端;將所述第一用戶終端發(fā)送的許可發(fā)送消息轉(zhuǎn)發(fā)給所述第二用戶終端;接收模塊61還用于接收所述第二用戶終端依據(jù)所述許可發(fā)送消息發(fā)送的第二視頻數(shù)據(jù)。
所述第一視頻數(shù)據(jù)和所述第二視頻數(shù)據(jù)屬于同一邏輯組;發(fā)送模塊62還用于將所述第一用戶終端發(fā)送的禁止發(fā)送消息轉(zhuǎn)發(fā)給所述第二用戶終端,以使所述第二用戶終端停止向所述服務(wù)器發(fā)送所述第二視頻數(shù)據(jù)。
本發(fā)明實(shí)施例提供的服務(wù)器可以具體用于執(zhí)行上述圖1所提供的方法實(shí)施例,具體功能此處不再贅述。
本發(fā)明實(shí)施例具體提供了用戶終端與服務(wù)器的信令交互過程,通過WebRTC接口交互視頻數(shù)據(jù),通過XMPP協(xié)議交互控制指令,使得用戶終端與服務(wù)器均不需要安裝專門的軟件或插件便能實(shí)現(xiàn)網(wǎng)絡(luò)視頻直播服務(wù),有效簡單地實(shí)現(xiàn)了網(wǎng)絡(luò)視頻直播服務(wù)。
圖7為本發(fā)明實(shí)施例提供的基于WebRTC的交互式直播系統(tǒng)的結(jié)構(gòu)圖。本發(fā)明實(shí)施例提供的基于WebRTC的交互式直播系統(tǒng)可以基于WebRTC的交互式直播方法實(shí)施例提供的處理流程,如圖7所示,基于WebRTC的交互式直播系統(tǒng)80包括上述實(shí)施例中的服務(wù)器60、上述實(shí)施例中的第一用戶終端70和上 述實(shí)施例中的第二用戶終端90。
本發(fā)明實(shí)施例提供的基于WebRTC的交互式直播系統(tǒng)可以基于WebRTC的交互式直播方法實(shí)施例提供的處理流程。
綜上所述,本發(fā)明實(shí)施例用戶終端通過WebRTC接口將視頻數(shù)據(jù)發(fā)送給服務(wù)器,服務(wù)器通過WebRTC接口向其他用戶終端轉(zhuǎn)發(fā)視頻數(shù)據(jù),使得用戶終端與服務(wù)器均不需要安裝專門的軟件或插件便能實(shí)現(xiàn)網(wǎng)絡(luò)視頻直播服務(wù),有效簡單地實(shí)現(xiàn)了網(wǎng)絡(luò)視頻直播服務(wù);具體提供了用戶終端與服務(wù)器的信令交互過程,通過WebRTC接口交互視頻數(shù)據(jù),通過XMPP協(xié)議交互控制指令,使得用戶終端與服務(wù)器均不需要安裝專門的軟件或插件便能實(shí)現(xiàn)網(wǎng)絡(luò)視頻直播服務(wù),有效簡單地實(shí)現(xiàn)了網(wǎng)絡(luò)視頻直播服務(wù)。
在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。上述軟件功能單元存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(Read-Only Memory,ROM)、 隨機(jī)存取存儲(chǔ)器(Random Access Memory,RAM)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
本領(lǐng)域技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的裝置的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。
最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。