【技術(shù)領(lǐng)域】
本發(fā)明涉及視頻直播領(lǐng)域,具體涉及一種視頻流推送控制方法、裝置及視頻流導(dǎo)播端。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)及智能移動(dòng)終端設(shè)備的發(fā)展,各種互聯(lián)網(wǎng)產(chǎn)品給人們的工作、生活帶來了很多便利與娛樂,近年來,各類用于視頻直播的直播平臺(tái)層出不窮,視頻直播給人們帶來更實(shí)時(shí)的社交體驗(yàn)。由于直播需求的多樣性,多機(jī)位多角度的直播可以充分發(fā)揮多機(jī)位聯(lián)機(jī)優(yōu)勢(shì),避免單機(jī)位直播所采集的直播畫面內(nèi)容單一、不豐富的問題,可以更大程度地提高直播的氛圍、增強(qiáng)直播的內(nèi)容,支持復(fù)雜的節(jié)目直播。
圖3示出了現(xiàn)有技術(shù)中的多機(jī)位直播的技術(shù)方案的系統(tǒng)示意圖,現(xiàn)在技術(shù)中在進(jìn)行多機(jī)位、多路視頻流采集直播的場(chǎng)景中,需要將多路直播視頻流推流到處于外網(wǎng)的導(dǎo)播服務(wù)器,然后再由導(dǎo)播端通過向?qū)Рシ?wù)器發(fā)送指令選出最終的一路視頻流再推送到直播平臺(tái)。由于導(dǎo)播服務(wù)器架設(shè)在公網(wǎng)上,當(dāng)網(wǎng)絡(luò)帶寬不足時(shí)(例如進(jìn)行戶外直播),多路推送端的視頻流都會(huì)通過公網(wǎng)推流到導(dǎo)播服務(wù)器,并且導(dǎo)播端對(duì)于多路視頻流的監(jiān)看、控制需要從導(dǎo)播服務(wù)器通過公網(wǎng)將視頻流拉回,然后根據(jù)直播需求選擇相應(yīng)的視頻流,最終被選擇推送到直播平臺(tái)的視頻流往往只是多路視頻流中的一路,其它路視頻流均只作為備選視頻流,而該多路備選視頻流卻占用了上行到公網(wǎng)的帶寬資源,同時(shí)導(dǎo)播端監(jiān)看視頻流還需要通過公網(wǎng)從服務(wù)器拉流,重復(fù)占用了帶寬,造成資源的浪費(fèi),大大增加了云導(dǎo)播服務(wù)器的壓力,同時(shí)導(dǎo)致被選擇的視頻流產(chǎn)生卡頓現(xiàn)象。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的首要目的在于提供一種視頻流推送控制方法、裝置,旨在解決多個(gè)推送端推流多路視頻流時(shí)帶寬占用過高、外網(wǎng)服務(wù)器負(fù)荷過載等問題。
本發(fā)明的另一目的在于提供一種實(shí)現(xiàn)視頻流推送控制方法的視頻流導(dǎo)播端。
為實(shí)現(xiàn)該目的,本發(fā)明采用如下技術(shù)方案:
第一方面,一種視頻流推送控制方法,包括如下步驟:
接收推送端向?qū)Рザ伺渲玫木钟蚓W(wǎng)推流地址發(fā)送的內(nèi)網(wǎng)視頻流,其中,所述導(dǎo)播端與推送端處于同一局域網(wǎng);
根據(jù)所述內(nèi)網(wǎng)視頻流產(chǎn)生外網(wǎng)視頻流;
通過公網(wǎng)向?qū)Рシ?wù)器發(fā)送所述外網(wǎng)視頻流,以通過所述導(dǎo)播服務(wù)器將所述外網(wǎng)視頻流發(fā)送至直播平臺(tái)。
優(yōu)選的,所述局域網(wǎng)推流地址為局域網(wǎng)rtmp地址。
進(jìn)一步的,所述導(dǎo)播端配置的局域網(wǎng)推流地址為導(dǎo)播端內(nèi)置的rtmp服務(wù)器的局域網(wǎng)rtmp地址。
具體的,所述根據(jù)所述內(nèi)網(wǎng)視頻流產(chǎn)生外網(wǎng)視頻流的步驟,具體包括:
在導(dǎo)播端的客戶端顯示所述內(nèi)網(wǎng)視頻流,接收客戶端發(fā)送的內(nèi)網(wǎng)視頻流的處理指令,依據(jù)所述處理指令產(chǎn)生外網(wǎng)視頻流。
具體的,所述接收客戶端發(fā)送的內(nèi)網(wǎng)視頻流的處理指令,依據(jù)所述處理指令產(chǎn)生外網(wǎng)視頻流,包括:
接收客戶端發(fā)送的內(nèi)網(wǎng)視頻流合成指令,將至少兩路內(nèi)網(wǎng)視頻流合成為一路外網(wǎng)視頻流;或
接收客戶端發(fā)送的內(nèi)網(wǎng)視頻流切換指令,從至少兩路內(nèi)網(wǎng)視頻流中選擇一路內(nèi)網(wǎng)視頻流作為外網(wǎng)視頻流。
第二方面,本發(fā)明提供一種視頻流推送控制裝置,包括:
內(nèi)網(wǎng)接收模塊:用于接收推送端向?qū)Рザ伺渲玫木钟蚓W(wǎng)推流地址發(fā)送的內(nèi)網(wǎng)視頻流,其中,所述導(dǎo)播端與推送端處于同一局域網(wǎng);
生成模塊:用于根據(jù)所述內(nèi)網(wǎng)視頻流產(chǎn)生外網(wǎng)視頻流;
外網(wǎng)推送模塊:用于通過公網(wǎng)向?qū)Рシ?wù)器發(fā)送所述外網(wǎng)視頻流,以通過所述導(dǎo)播服務(wù)器將所述外網(wǎng)視頻流發(fā)送至直播平臺(tái)。
優(yōu)選的,所述局域網(wǎng)推流地址為局域網(wǎng)rtmp地址。
進(jìn)一步的,所述導(dǎo)播端配置的局域網(wǎng)推流地址為導(dǎo)播端內(nèi)置的rtmp服務(wù)器的局域網(wǎng)rtmp地址。
具體的,所述生成模塊包括:
指令接收單元:用于在導(dǎo)播端的客戶端顯示所述內(nèi)網(wǎng)視頻流,接收客戶端發(fā)送的內(nèi)網(wǎng)視頻流的處理指令,依據(jù)所述處理指令產(chǎn)生外網(wǎng)視頻流;
視頻處理單元:用于接收客戶端發(fā)送的內(nèi)網(wǎng)視頻流合成指令,將至少兩路內(nèi)網(wǎng)視頻流合成為一路外網(wǎng)視頻流;或
用于接收客戶端發(fā)送的內(nèi)網(wǎng)視頻流切換指令,從至少兩路內(nèi)網(wǎng)視頻流中選擇一路內(nèi)網(wǎng)視頻流作為外網(wǎng)視頻流。
另外,本發(fā)明提供一種視頻流導(dǎo)播端,用于實(shí)現(xiàn)視頻流的推送控制,所述導(dǎo)播端接收推送端向?qū)Рザ伺渲玫木钟蚓W(wǎng)推流地址發(fā)送的內(nèi)網(wǎng)視頻流,其中,所述導(dǎo)播端與推送端處于同一局域網(wǎng);所述導(dǎo)播端根據(jù)所述內(nèi)網(wǎng)視頻流產(chǎn)生外網(wǎng)視頻流;所述導(dǎo)播端通過公網(wǎng)向?qū)Рシ?wù)器發(fā)送所述外網(wǎng)視頻流,以通過所述導(dǎo)播服務(wù)器將所述外網(wǎng)視頻流發(fā)送至直播平臺(tái)。
與現(xiàn)有技術(shù)相比,本發(fā)明具備如下優(yōu)點(diǎn):
本發(fā)明通過內(nèi)置于導(dǎo)播端的內(nèi)網(wǎng)服務(wù)器,接收與導(dǎo)播端處于同一局域網(wǎng)的推送端推送的多路內(nèi)網(wǎng)視頻流,然后再于導(dǎo)播端中對(duì)該多路視頻流進(jìn)行編輯、處理,根據(jù)直播場(chǎng)景需求將多路內(nèi)網(wǎng)視頻流最終處理生成外網(wǎng)視頻流,再通過外網(wǎng)向?qū)Рシ?wù)器推流所述外網(wǎng)視頻流,再由導(dǎo)播服務(wù)器將外網(wǎng)視頻流推送到各直播平臺(tái)。避免多路內(nèi)網(wǎng)視頻流直接上傳到外網(wǎng)的導(dǎo)播服務(wù)器,同時(shí)導(dǎo)播端不再需要從導(dǎo)播服務(wù)器上拉取內(nèi)網(wǎng)視頻流,降低外網(wǎng)帶寬資源的占用;并且多路內(nèi)網(wǎng)視頻流在導(dǎo)播端進(jìn)行編輯、處理后形成外網(wǎng)視頻流,此時(shí)通過外網(wǎng)推流所述外網(wǎng)視頻流到導(dǎo)播服務(wù)器所需要的外網(wǎng)的上行帶寬大大減少,同時(shí)降低了導(dǎo)播服務(wù)器的負(fù)荷。
同時(shí),由于推送端與導(dǎo)播端處于同一局域網(wǎng)內(nèi),可以最大限度地發(fā)揮上行帶寬的速率,基于此,在推送端可以直接將視頻流無損耗或低損耗地推送到導(dǎo)播端,導(dǎo)播端無需再?gòu)膶?dǎo)播服務(wù)器上拉取內(nèi)網(wǎng)視頻流,更大程度地保證視頻的清晰度,繼而由導(dǎo)播端將產(chǎn)生的外網(wǎng)視頻流進(jìn)行壓縮、轉(zhuǎn)碼后再推送到導(dǎo)播服務(wù)器,推送端推流效率更高,保證直播的時(shí)效性,并且推送到外網(wǎng)導(dǎo)播服務(wù)器上往往是處理后的一路外網(wǎng)視頻流,上傳一路外網(wǎng)視頻流所占用的外網(wǎng)帶寬資源更少,可以最大程度地保證視頻直播的流暢性。
并且,在導(dǎo)播端上還可以集中進(jìn)行諸如添加字幕、添加logo、制作特效、畫面內(nèi)容識(shí)別等操作,將該多項(xiàng)操作集中在導(dǎo)播端進(jìn)行處理,最大幅度地利用導(dǎo)播端的性能優(yōu)勢(shì),并且能有效減少推送端處理器的工作負(fù)荷,使得推送端更好地將大部分的資源用于視頻流推流工作,從而保證視頻畫面的清晰、流暢。
顯然,上述有關(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ā)明視頻流推送控制方法的系統(tǒng)組成示意圖。
圖3為現(xiàn)有技術(shù)中的多機(jī)位直播的技術(shù)方案的系統(tǒng)示意圖。
圖4為本發(fā)明視頻流推送控制裝置的一實(shí)施例示意圖。
圖5為視頻直播系統(tǒng)的拓?fù)浣Y(jié)構(gòu)的一實(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ù)、步驟、操作、元件、組件和/或它們的組。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,這里所使用的“終端”、“終端設(shè)備”可以包括:蜂窩通信設(shè)備、pcs(personalcommunicationsservice)、pda(personaldigitalassistant)、常規(guī)膝上型和/或掌上型計(jì)算機(jī)或其他設(shè)備、還可以是通信終端、上網(wǎng)終端、音樂/視頻播放終端,例如可以是pda、mid(mobileinternetdevice,移動(dòng)互聯(lián)網(wǎng)設(shè)備)和/或具有音樂/視頻播放功能的移動(dòng)電話。
如圖5所示是一個(gè)直播系統(tǒng)的拓?fù)浣Y(jié)構(gòu)示意圖,包括以下組成部分:
推流端:推流端主要進(jìn)行音視頻的采集、編碼及推送,包括音視頻采集裝置及編碼工具,用于創(chuàng)建、捕捉和編輯多媒體數(shù)據(jù),常用的編碼方式有cbr、vbr;對(duì)于視頻數(shù)據(jù),常用的編碼標(biāo)準(zhǔn)是h.265、h.264、mpeg-4,對(duì)于音頻數(shù)據(jù),常用的編碼標(biāo)準(zhǔn)有aac、g.711μ、opus,通過編碼壓縮音視頻數(shù)據(jù)來減少數(shù)據(jù)體積,然后將音視頻數(shù)據(jù)使用流媒體傳輸協(xié)議進(jìn)行封裝形成流數(shù)據(jù),然后向服務(wù)端推送視頻流。音視頻數(shù)據(jù)經(jīng)過編碼后推流到服務(wù)端,流數(shù)據(jù)的傳輸則需要使用相應(yīng)的傳輸協(xié)議,常用的推流協(xié)議是rtmp、rtsp、hls等。
服務(wù)端:服務(wù)端包括源站點(diǎn)跟cdn節(jié)點(diǎn),其中,源站點(diǎn)用于接收推流端推送的視頻流,并將該視頻流推流到各cdn節(jié)點(diǎn),再由cnd節(jié)點(diǎn)分發(fā)到各個(gè)播放端。同時(shí),為了使接收到推流端推送的視頻流適配各個(gè)直播平臺(tái)、各種不同協(xié)議,需要在服務(wù)端將接收到的視頻流轉(zhuǎn)碼成支持如rtmp、hls、flv等格式的以供相應(yīng)的播放端拉流。
播放端:播放端通過向服務(wù)端拉取相應(yīng)的視頻流后,需要進(jìn)行解碼、渲染后在本地播放器播放。
第一方面,如圖1所示是本發(fā)明視頻流推送控制方法的一實(shí)施例流程示意圖,該方法由導(dǎo)播端執(zhí)行,包括步驟s100~s300;同時(shí)參見圖2,是本發(fā)明所述方法的系統(tǒng)組成示意圖,結(jié)合圖1、圖2更好地了解本發(fā)明視頻流推送控制方法的技術(shù)方案。
步驟s100:接收推送端向?qū)Рザ伺渲玫木钟蚓W(wǎng)推流地址發(fā)送的內(nèi)網(wǎng)視頻流,其中,所述導(dǎo)播端與推送端處于同一局域網(wǎng)。
所述推送端為視頻直播領(lǐng)域中的直播機(jī)或者推流軟件,可以是外設(shè)攝像頭或計(jì)算機(jī)桌面圖像采集后利用推流軟件如obs、fmle、xsplit進(jìn)行推流,或者是移動(dòng)端如手機(jī)或平板電腦利用攝像頭采集后推流,即所述推送端可以通過導(dǎo)播端提供的推流地址實(shí)現(xiàn)視頻流推流,所謂推流即將已編碼的音視頻數(shù)據(jù)按照流媒體傳輸協(xié)議發(fā)送至所述推流地址的服務(wù)器;所述導(dǎo)播端可以理解為導(dǎo)播平臺(tái),通過導(dǎo)播端可以對(duì)多路視頻流進(jìn)行畫面的編輯、切換以及音頻的編輯等,選擇/合成最終的一路視頻流。可以理解的是,所述推送端、導(dǎo)播端均屬于上述定義的“終端”、“終端設(shè)備”。本實(shí)施例中,先將推送端與導(dǎo)播端接入同一個(gè)局域網(wǎng)中,局域網(wǎng)(localareanetwork,lan)是指在某一區(qū)域內(nèi)由多臺(tái)計(jì)算機(jī)互聯(lián)成的計(jì)算機(jī)組,同一局域網(wǎng)上的每一臺(tái)計(jì)算機(jī)(或其設(shè)備)都有一個(gè)或多個(gè)局域網(wǎng)ip地址,每個(gè)局域網(wǎng)ip地址是局域網(wǎng)內(nèi)部分配的,而且ip都是以192開頭的ip,不同局域網(wǎng)的ip地址可以重復(fù),不會(huì)相互影響;由于推送端與導(dǎo)播端處于同一局域網(wǎng),本實(shí)施例中將導(dǎo)播端配置的推流地址定義為局域網(wǎng)推流地址,將推送端通過局域網(wǎng)推流地址發(fā)送到導(dǎo)播端的視頻流定義為內(nèi)網(wǎng)視頻流,導(dǎo)播端通過配置至少一個(gè)推流地址以供推送端通過該推流地址將內(nèi)網(wǎng)視頻流推送到導(dǎo)播端。
本發(fā)明的一種實(shí)施例,所述局域網(wǎng)推流地址為局域網(wǎng)rtmp地址,目前較多使用的流媒體推流協(xié)議主要包括rtmp、webrtc以及基于udp的私有協(xié)議,其中,rtmp是realtimemessagingprotocol(實(shí)時(shí)消息傳輸協(xié)議)的首字母縮寫,該協(xié)議基于tcp,是一個(gè)協(xié)議族,包括rtmp基本協(xié)議及rtmpt/rtmps/rtmpe等多種變種,rtmp是一種設(shè)計(jì)用來進(jìn)行實(shí)時(shí)數(shù)據(jù)通信的網(wǎng)絡(luò)協(xié)議,主要用在flash/air平臺(tái)和支持rtmp協(xié)議的流媒體/交互服務(wù)器之間進(jìn)行音視頻和數(shù)據(jù)通信,rtmp是目前主流的流媒體傳輸協(xié)議,廣泛用于直播領(lǐng)域。基于rtmp的rtmp推流地址以rtmp://開頭,并且包括上傳服務(wù)url地址、上傳目錄名和上傳節(jié)點(diǎn)(stream)三部分,本實(shí)施例的一個(gè)局域網(wǎng)rtmp地址為rtmp://192.168.xxx.xxx/live/streamid。
由于推送端的內(nèi)網(wǎng)視頻流推流是基于rtmp協(xié)議的,故接收該內(nèi)網(wǎng)視頻流的所述導(dǎo)播端也必須支持rtmp協(xié)議。進(jìn)一步的,本發(fā)明的一種實(shí)施例,所述導(dǎo)播端配置的局域網(wǎng)推流地址為導(dǎo)播端內(nèi)置的rtmp服務(wù)器的局域網(wǎng)rtmp地址,具體的,在導(dǎo)播端配置一個(gè)內(nèi)網(wǎng)服務(wù)器,由該內(nèi)網(wǎng)服務(wù)器提供至少一個(gè)rtmp推流地址,可以理解的是,該內(nèi)網(wǎng)服務(wù)器提供的rtmp推流地址也同樣是局域網(wǎng)推流地址,然后推送端通過該局域網(wǎng)rtmp推流地址向?qū)Рザ送扑蛢?nèi)網(wǎng)視頻流。
可以理解的是,本發(fā)明的另一實(shí)施例中,推送端可以采用其它流媒體推流協(xié)議將內(nèi)網(wǎng)視頻流推送至導(dǎo)播端,相應(yīng)的,導(dǎo)播端內(nèi)置的服務(wù)器也同樣更改、配置為支持該推流協(xié)議的服務(wù)器,例如推送端基于webrtc協(xié)議進(jìn)行推流,webrtc名稱源自網(wǎng)頁即時(shí)通信(英語:webreal-timecommunication)的縮寫,是一個(gè)支持網(wǎng)頁瀏覽器進(jìn)行實(shí)時(shí)語音對(duì)話或視頻對(duì)話的api,底層基于srtp和udp,弱網(wǎng)情況優(yōu)化空間大,相應(yīng)的,導(dǎo)播端內(nèi)置的服務(wù)器則需更改、配置為支持webrtc推流協(xié)議的服務(wù)器。
本發(fā)明由于推送端與導(dǎo)播端處于同一局域網(wǎng)內(nèi),可以最大限度地發(fā)揮上行帶寬的速率,基于此,在推送端可以直接將視頻流無損耗或低損耗地推送到導(dǎo)播端,更大程度地保證視頻的清晰度;繼而再由導(dǎo)播端將產(chǎn)生的外網(wǎng)視頻流進(jìn)行壓縮、轉(zhuǎn)碼后再推送到導(dǎo)播服務(wù)器,推送端推流效率更高,更能保證直播的時(shí)效性,并且上傳的外網(wǎng)視頻流所占用的上行帶寬資源更少,可以最大程度地保證視頻直播的流暢性。
步驟s200:根據(jù)所述內(nèi)網(wǎng)視頻流產(chǎn)生外網(wǎng)視頻流。
導(dǎo)播端接收到所述內(nèi)網(wǎng)視頻流后,根據(jù)直播場(chǎng)景的需要將內(nèi)網(wǎng)視頻流編輯、處理生成外網(wǎng)視頻流,所述根據(jù)內(nèi)網(wǎng)視頻流產(chǎn)生外網(wǎng)視頻流的步驟具體包括:
在導(dǎo)播端的客戶端顯示內(nèi)網(wǎng)視頻流,接收客戶端發(fā)送的內(nèi)網(wǎng)視頻流的處理指令,依據(jù)所述處理指令產(chǎn)生外網(wǎng)視頻流。
針對(duì)于接收到的多路內(nèi)網(wǎng)視頻流,在導(dǎo)播端的客戶端上進(jìn)行實(shí)時(shí)顯示,并且對(duì)于該多路內(nèi)網(wǎng)視頻流,用戶可以通過客戶端對(duì)其進(jìn)行編輯、處理,導(dǎo)播端接收用戶操作客戶端而發(fā)送的內(nèi)網(wǎng)視頻流的處理指令,依據(jù)所述處理指令產(chǎn)生外網(wǎng)視頻流。
本發(fā)明一種實(shí)施例中,所述接收內(nèi)網(wǎng)視頻流的處理指令具體為:接收客戶端發(fā)送的內(nèi)網(wǎng)視頻流的合成指令,將至少兩路內(nèi)網(wǎng)視頻流合成為一路視頻流。
為了達(dá)到多方位同時(shí)展示直播場(chǎng)景的效果,例如顯示臺(tái)上場(chǎng)景的主機(jī)位跟采訪觀眾的副機(jī)位共同顯示,將該兩個(gè)機(jī)位的兩路內(nèi)網(wǎng)視頻流畫面進(jìn)行合成,同時(shí),可以擇一選擇兩路視頻流的音頻或另外選擇其它音頻,將該兩路視頻流合成為一路視頻流作為外網(wǎng)視頻流。
本發(fā)明另一種實(shí)施例中,所述接收內(nèi)網(wǎng)視頻流的處理指令具體為:接收客戶端發(fā)送的內(nèi)網(wǎng)視頻流的切換指令,從至少兩路內(nèi)網(wǎng)視頻流中選擇一路內(nèi)網(wǎng)視頻流作為外網(wǎng)視頻流,可以理解的是,多機(jī)位直播場(chǎng)景中,由于畫面選擇,只需播放2號(hào)機(jī)位的直播內(nèi)容,在導(dǎo)播端則可以選擇、切換多路內(nèi)網(wǎng)視頻流中的一路視頻流(對(duì)應(yīng)2號(hào)機(jī)位)作為外網(wǎng)視頻流。
基于上述說明,可以知道的是,在導(dǎo)播端上還可以進(jìn)行諸如添加字幕、添加logo、制作特效、畫面內(nèi)容識(shí)別等操作;同時(shí),將該多項(xiàng)操作集中在導(dǎo)播端進(jìn)行處理,能有效減少推送端處理器的工作負(fù)荷,使得推送端更好地將大部分的資源用于視頻流推流工作,進(jìn)而保證視頻畫面的清晰、流暢。
步驟s300:通過公網(wǎng)向?qū)Рシ?wù)器發(fā)送所述外網(wǎng)視頻流,以通過所述導(dǎo)播服務(wù)器將所述外網(wǎng)視頻流發(fā)送至直播平臺(tái)。
在導(dǎo)播端完成生成外網(wǎng)視頻流后,通過公網(wǎng)向?qū)Рシ?wù)器發(fā)送所述外網(wǎng)視頻流,即將外網(wǎng)視頻流向?qū)Рシ?wù)器進(jìn)行推流,以通過導(dǎo)播服務(wù)器將外網(wǎng)視頻流發(fā)送至直播平臺(tái)。所述公網(wǎng)即區(qū)別于內(nèi)網(wǎng)的廣域網(wǎng)(wan,wideareanetwork),也稱遠(yuǎn)程網(wǎng)(longhaulnetwork),廣域網(wǎng)將分布在不同地區(qū)的局域網(wǎng)或計(jì)算機(jī)系統(tǒng)互連起來,達(dá)到資源共享的目的,因特網(wǎng)(internet)是世界范圍內(nèi)最大的廣域網(wǎng),通過公網(wǎng)可以訪問公網(wǎng)上的所有ip。所述導(dǎo)播服務(wù)器架設(shè)在公網(wǎng)上,因?yàn)樽罱K面向終端用戶提供服務(wù)的是分布在全網(wǎng)的流媒體服務(wù)器,通過導(dǎo)播服務(wù)器將所產(chǎn)生的外網(wǎng)視頻流推流到直播平臺(tái),不同觀眾端的終端用戶從而可以在相應(yīng)的直播平臺(tái)上通過公網(wǎng)從導(dǎo)播服務(wù)器拉流以觀看該直播視頻。本實(shí)施例中,觀眾端拉流的具體實(shí)施方式如下,基于rtmp的拉流的播放地址為rtmp://pull.example.com/live/streamid;基于hls的拉流的播放地址為http://pull.example.com/live/streamid.m3u8;基于fls的拉流的播放地址為http://pull.example.com/live/streamid.flv。
第二方面,如圖4所示是本發(fā)明視頻流推送控制裝置的一實(shí)施例示意圖,包括:
內(nèi)網(wǎng)接收模塊100:用于接收推送端向?qū)Рザ伺渲玫木钟蚓W(wǎng)推流地址發(fā)送的內(nèi)網(wǎng)視頻流,其中,所述導(dǎo)播端與推送端處于同一局域網(wǎng)。
內(nèi)網(wǎng)接收模塊100接收推送端如直播機(jī)或obs推流軟件根據(jù)導(dǎo)播端配置的局域網(wǎng)推流地址推送的內(nèi)網(wǎng)視頻流,本實(shí)施例中,所述導(dǎo)播端跟推送端處于同一局域網(wǎng),故將導(dǎo)播端配置的推流地址定義為局域網(wǎng)推流地址,將推送端通過局域網(wǎng)推流地址發(fā)送到導(dǎo)播端的視頻流定義為內(nèi)網(wǎng)視頻流。
優(yōu)選的,所述局域網(wǎng)推流地址為局域網(wǎng)rtmp推流地址,本實(shí)施例的一個(gè)局域網(wǎng)rtmp推流地址為rtmp://192.168.xxx.xxx/live/streamid;進(jìn)一步的,所述導(dǎo)播端配置的局域網(wǎng)推流地址為導(dǎo)播端內(nèi)置的rtmp服務(wù)器的局域網(wǎng)rtmp地址,具體的,在導(dǎo)播端配置一個(gè)內(nèi)網(wǎng)服務(wù)器,由該內(nèi)網(wǎng)服務(wù)器提供至少一個(gè)rtmp推流地址,內(nèi)網(wǎng)接收模塊100從而可以接收推送端通過該局域網(wǎng)rtmp推流地址向?qū)Рザ送扑蛢?nèi)網(wǎng)視頻流。
生成模塊200:用于根據(jù)所述內(nèi)網(wǎng)視頻流產(chǎn)生外網(wǎng)視頻流。
內(nèi)網(wǎng)接收模塊100接收到所述內(nèi)網(wǎng)視頻流后,生成模塊200根據(jù)直播場(chǎng)景的需要將內(nèi)網(wǎng)視頻流編輯、處理生成外網(wǎng)視頻流。
所述生成模塊200包括:
指令接收單元201:用于在導(dǎo)播端的客戶端顯示所述內(nèi)網(wǎng)視頻流,接收客戶端發(fā)送的內(nèi)網(wǎng)視頻流的處理指令,依據(jù)所述處理指令產(chǎn)生外網(wǎng)視頻流。
視頻處理單元202:用于接收客戶端發(fā)送的內(nèi)網(wǎng)視頻流的合成指令,將至少兩路內(nèi)網(wǎng)視頻流合成為一路外網(wǎng)視頻流;或
用于接收客戶端發(fā)送的內(nèi)網(wǎng)視頻流的切換指令,從至少兩路內(nèi)網(wǎng)視頻流中選擇一路內(nèi)網(wǎng)視頻流作為外網(wǎng)視頻流。
指令接收單元201針對(duì)于接收到的多路內(nèi)網(wǎng)視頻流,在導(dǎo)播端的客戶端上進(jìn)行實(shí)時(shí)顯示,并且對(duì)于該多路內(nèi)網(wǎng)視頻流,用戶可以通過客戶端對(duì)其進(jìn)行編輯、處理,視頻處理單元202接收用戶操作客戶端而發(fā)送的內(nèi)網(wǎng)視頻流的處理指令,依據(jù)所述處理指令產(chǎn)生外網(wǎng)視頻流。
本發(fā)明一種實(shí)施例中,為了達(dá)到多方位同時(shí)展示直播場(chǎng)景的效果,例如顯示臺(tái)上場(chǎng)景的主機(jī)位跟采訪觀眾的副機(jī)位共同顯示,將該兩個(gè)機(jī)位的兩路內(nèi)網(wǎng)視頻流畫面進(jìn)行合成,同時(shí),可以擇一選擇兩路視頻流的音頻或另外選擇其它音頻,視頻處理單元202將該兩路視頻流合成為一路視頻流作為外網(wǎng)視頻流。
本發(fā)明另一種實(shí)施例中,多機(jī)位直播場(chǎng)景中,由于畫面選擇,只需播放2號(hào)機(jī)位的直播內(nèi)容,在導(dǎo)播端則可以選擇、切換多路內(nèi)網(wǎng)視頻流中的一路視頻流(對(duì)應(yīng)2號(hào)機(jī)位)作為外網(wǎng)視頻流,視頻處理單元202生成相應(yīng)的外網(wǎng)視頻流。
外網(wǎng)推送模塊300:用于通過公網(wǎng)向?qū)Рシ?wù)器發(fā)送所述外網(wǎng)視頻流,以通過所述導(dǎo)播服務(wù)器將所述外網(wǎng)視頻流發(fā)送至直播平臺(tái)。
在生成模塊200完成生成外網(wǎng)視頻流后,外網(wǎng)推送模塊300通過公網(wǎng)向?qū)Рシ?wù)器發(fā)送所述外網(wǎng)視頻流,即將外網(wǎng)視頻流向?qū)Рシ?wù)器進(jìn)行推流,以通過導(dǎo)播服務(wù)器將外網(wǎng)視頻流發(fā)送至直播平臺(tái),觀眾端的終端用戶從而可以在相應(yīng)的直播平臺(tái)上通過公網(wǎng)從導(dǎo)播服務(wù)器拉流以觀看該直播視頻。本實(shí)施例中,觀眾端拉流的具體實(shí)施方式如下,基于rtmp的拉流的播放地址為rtmp://pull.example.com/live/streamid;基于hls的拉流的播放地址為http://pull.example.com/live/streamid.m3u8;基于fls的拉流的播放地址為http://pull.example.com/live/streamid.flv。
第三方面,本發(fā)明還提供一種導(dǎo)播端,用于實(shí)現(xiàn)視頻流的推送控制,所述導(dǎo)播端與推送端處于同一局域網(wǎng),并接收推送端向?qū)Рザ伺渲玫木钟蚓W(wǎng)推流地址發(fā)送的內(nèi)網(wǎng)視頻流,然后再根據(jù)所述內(nèi)網(wǎng)視頻流產(chǎn)生外網(wǎng)視頻流,同時(shí)通過公網(wǎng)向?qū)Рシ?wù)器發(fā)送所述外網(wǎng)視頻流,以通過所述導(dǎo)播服務(wù)器將所述外網(wǎng)視頻流發(fā)送至直播平臺(tái)。
本發(fā)明通過內(nèi)置于導(dǎo)播端的內(nèi)網(wǎng)服務(wù)器,接收與導(dǎo)播端處于同一局域網(wǎng)的推送端推送的多路內(nèi)網(wǎng)視頻流,然后再于導(dǎo)播端中對(duì)該多路視頻流進(jìn)行編輯、處理,根據(jù)直播場(chǎng)景需求將多路內(nèi)網(wǎng)視頻流最終處理生成外網(wǎng)視頻流,再通過外網(wǎng)向?qū)Рシ?wù)器推流所述外網(wǎng)視頻流,再由導(dǎo)播服務(wù)器將外網(wǎng)視頻流推送到各直播平臺(tái)。避免多路內(nèi)網(wǎng)視頻流直接上傳到外網(wǎng)的導(dǎo)播服務(wù)器,同時(shí)導(dǎo)播端不再需要從導(dǎo)播服務(wù)器上拉取內(nèi)網(wǎng)視頻流,降低外網(wǎng)帶寬資源的占用;并且多路內(nèi)網(wǎng)視頻流在導(dǎo)播端進(jìn)行編輯、處理后形成外網(wǎng)視頻流,此時(shí)通過外網(wǎng)推流所述外網(wǎng)視頻流到導(dǎo)播服務(wù)器所需要的外網(wǎng)的上行帶寬大大減少,同時(shí)降低了導(dǎo)播服務(wù)器的負(fù)荷。
同時(shí),由于推送端與導(dǎo)播端處于同一局域網(wǎng)內(nèi),可以最大限度地發(fā)揮上行帶寬的速率,基于此,在推送端可以直接將視頻流無損耗或低損耗地推送到導(dǎo)播端,導(dǎo)播端無需再?gòu)膶?dǎo)播服務(wù)器上拉取內(nèi)網(wǎng)視頻流,更大程度地保證視頻的清晰度,繼而由導(dǎo)播端將產(chǎn)生的外網(wǎng)視頻流進(jìn)行壓縮、轉(zhuǎn)碼后再推送到導(dǎo)播服務(wù)器,推送端推流效率更高,保證直播的時(shí)效性,并且推送到外網(wǎng)導(dǎo)播服務(wù)器上往往是處理后的一路外網(wǎng)視頻流,上傳一路外網(wǎng)視頻流所占用的外網(wǎng)帶寬資源更少,可以最大程度地保證視頻直播的流暢性。
并且,在導(dǎo)播端上還可以集中進(jìn)行諸如添加字幕、添加logo、制作特效、畫面內(nèi)容識(shí)別等操作,將該多項(xiàng)操作集中在導(dǎo)播端進(jìn)行處理,最大幅度地利用導(dǎo)播端的性能優(yōu)勢(shì),并且能有效減少推送端處理器的工作負(fù)荷,使得推送端更好地將大部分的資源用于視頻流推流工作,從而保證視頻畫面的清晰、流暢。
雖然上面已經(jīng)示出了本發(fā)明的一些示例性實(shí)施例,但是本領(lǐng)域的技術(shù)人員將理解,在不脫離本發(fā)明的原理或精神的情況下,可以對(duì)這些示例性實(shí)施例做出改變,本發(fā)明的范圍由權(quán)利要求及其等同物限定。