本發(fā)明涉及網(wǎng)絡(luò)直播技術(shù)領(lǐng)域,更具體地,涉及一種輔助直播的音視頻處理方法及裝置。
背景技術(shù):
近年來,隨著網(wǎng)絡(luò)技術(shù)的日新月異,網(wǎng)絡(luò)直播已經(jīng)被越來越多的主流人群所接受,網(wǎng)絡(luò)直播以新穎的樣式和相對便捷的服務(wù)給網(wǎng)民帶來一種全新的視角體驗和視野沖擊。
主播在直播過程中經(jīng)常需要針對自己的聲音進行處理或者是直播過程中適時添加一些音效以達到調(diào)和直播氣氛的作用,例如主播說了一個段子后,響起掌聲特效音以烘托整個現(xiàn)場氣氛;主播伴隨著音樂伴奏音為直播間中的觀眾演唱,并在期間加入個性化的表演。以往主播為了達到上面的效果,不得不采用繁瑣的方式:通過網(wǎng)絡(luò)下載特效音,伴奏曲目等加入音樂播放器軟件中,然后在直播過程中,需要同時打開音樂播放器軟件、特效音播放軟件,在需要特效音或伴奏曲目的時候使用播放器播放。以上方式有幾個明顯的缺點:首先,直播應(yīng)用對于主播用戶的設(shè)備已經(jīng)有較高的配置要求,會耗費較大的電腦資源,如果同時再多開諸如主播聲音采集應(yīng)用,音樂播放器,特效音播放器等其他軟件經(jīng)常造成電腦不負重堪,從而導(dǎo)致直播過程中的卡頓現(xiàn)象,各種直播中的聲音不能很好地融合,用戶體驗十分不好;其次,因為軟件兼容性等問題,其他音樂播放器中播放的聲音經(jīng)常會出現(xiàn)不可預(yù)期的問題,如卡頓,中斷甚至于聲音整體未必能被直播應(yīng)用采集進聲音上傳;此外,主播在直播的過程是一件高強度的工作,如果同時還要操作音頻播放器,特效音播放器等音頻軟件無疑大大加重了主播的負擔,使其無法集中精力專注在直播上,大大影響了表現(xiàn)效果。
基于上述弊端,有必要為相關(guān)技術(shù)難題的解決提供可供業(yè)內(nèi)延伸發(fā)展的基礎(chǔ)方案。
技術(shù)實現(xiàn)要素:
鑒于上述問題,本發(fā)明提出了一種輔助直播的音視頻處理方法及裝置,有效將直播過程中的聲音整合為音頻流,并與視頻流時間戳對齊傳輸給直播應(yīng)用,避免直播過程中的各種聲音相互干擾,直播過程中聲音在直播應(yīng)用的融合效果較好。
本發(fā)明提供一種輔助直播的音視頻處理方法,包括以下步驟:通過輔助直播音視頻應(yīng)用采集主播音、背景音樂和特效音,進行音頻處理將其整合為音頻流;通過輔助直播音視頻應(yīng)用采集直播畫面,進行圖像處理生成視頻流;對齊所述音頻流和所述視頻流的時間戳,生成音視頻流數(shù)據(jù)包;通過跨進程通信通道將所述音視頻流數(shù)據(jù)包傳輸給直播應(yīng)用。
具體的,所述進行音頻處理將其整合為音頻流,包括:對所述主播音進行音量大小、音色、聲調(diào)調(diào)節(jié)和降噪音處理;將處理后的主播音、背景音樂和特效音進行混合疊加整合為音頻流。
具體的,所述進行圖像處理生成視頻流,包括:通過所述輔助直播音視頻應(yīng)用接收用戶的視頻處理指令,將直播畫面轉(zhuǎn)化為幀數(shù)據(jù),根據(jù)所述視頻處理指令對幀數(shù)據(jù)進行處理,將處理后幀數(shù)據(jù)重新組裝成視頻流。
具體的,所述根據(jù)所述視頻處理指令對幀數(shù)據(jù)進行處理,包括:對幀數(shù)據(jù)的圖像進行修復(fù)、美化和添加特效中的至少一種。
具體的,所述對齊所述音頻流和所述視頻流的時間戳,生成音視頻流數(shù)據(jù)包之前,還包括:通過輔助直播音視頻應(yīng)用建立以毫秒為單位且時間上線性遞增的參考時鐘;采集主播音和直播畫面時,分別依據(jù)所述參考時鐘上的時間,給每個數(shù)據(jù)塊都打上時間戳。
具體的,所述通過輔助直播音視頻應(yīng)用采集主播音、背景音樂和特效音之前,還包括:接收音頻查找指令,獲取本地存儲的歌曲;接收一鍵上傳指令,獲取第三方播放器的音樂列表中的歌曲。
具體的,在獲取本地存儲的歌曲或獲取第三方播放器的音樂列表中的歌曲之后,還包括:接收用戶打開歌詞開關(guān)指令,播放指定的歌曲同時在輔助直播音視頻應(yīng)用界面同步顯示歌詞。
具體的,所述接收用戶打開歌詞開關(guān)指令之后,包括:若發(fā)現(xiàn)所述歌曲在本地沒有對應(yīng)的歌詞文件,則觸發(fā)下載邏輯,下載歌詞文件;若發(fā)現(xiàn)本地有對應(yīng)的歌詞文件,獲取歌詞文件;從所述歌詞文件中分離出時間信息,把時間信息作為歌詞的時間戳;將所述歌曲和對應(yīng)的歌詞進行時間戳對齊。
具體的,所述播放指定的歌曲之后,還包括:接收用戶點擊原唱打開/關(guān)閉指令,開啟/關(guān)閉原唱聲音。
相應(yīng)的,本發(fā)明還提供一種輔助直播的音視頻處理裝置,包括:音頻處理模塊,用于通過輔助直播音視頻應(yīng)用采集主播音、背景音樂和特效音,進行音頻處理將其整合為音頻流;視頻處理模塊,用于通過輔助直播音視頻應(yīng)用采集直播畫面,進行圖像處理生成視頻流;時間戳模塊,用于對齊所述音頻流和所述視頻流的時間戳,生成音視頻流數(shù)據(jù)包;通訊傳輸模塊,用于通過跨進程通信通道將所述音視頻流數(shù)據(jù)包傳輸給直播應(yīng)用。
相對于現(xiàn)有技術(shù),基于本發(fā)明提供的方案,主要具有以下優(yōu)點:
本方案通過輔助直播音視頻應(yīng)用將主播音、背景音樂和特效音整合為音頻流,對齊音頻流和視頻流的時間戳,生成音頻流和視頻流的時間戳,通過跨進程通信通道將音視頻流數(shù)據(jù)包傳輸給直播應(yīng)用?,F(xiàn)有技術(shù)主播音、背景音樂和特效音分別使用三個應(yīng)用處理,因操作系統(tǒng)調(diào)配資源的原因,導(dǎo)致這三種聲音相互干擾,這三個應(yīng)用分別使用不同進程,當其中一個進程卡頓時該進程對應(yīng)的聲音就會出現(xiàn)停滯;當將這三種聲音、及視頻流通過四個跨進程通信通道的通道分別發(fā)給直播應(yīng)用時,三種聲音的進程與視頻流進程不能很好融合,聲音之間干擾,聲音與視頻流之間也會干擾,可能有的聲音傳輸中斷或傳輸滯后,導(dǎo)致直播過程中聲音與直播應(yīng)用的融合效果很差。而本發(fā)明通過一個輔助直播音視頻應(yīng)用有效將直播過程中的聲音整合為音頻流,并與視頻流時間戳對齊生成音視頻流數(shù)據(jù)包,通過跨進程通信通道的一個通道傳輸給直播應(yīng)用,避免直播過程中的各種聲音相互干擾,避免聲音與視頻流干擾,直播過程中聲音在直播應(yīng)用的融合效果較好。
現(xiàn)有技術(shù)采用多個直播輔助應(yīng)用,不僅操作繁瑣,而且需要啟用多個進程,增加資源損耗;此外,多個直播輔助應(yīng)用的數(shù)據(jù)分別處理,這些應(yīng)用的處理進程有快有滿,視頻流和音頻流的時間戳難以對齊,導(dǎo)致視頻流和音頻流在應(yīng)用時可能時間點對不上;比如,音頻流的應(yīng)用處理較快,而視頻流的應(yīng)用處理較慢,視頻相對音頻滯后;而本發(fā)明只有一個輔助直播音視頻應(yīng)用,對齊視頻流和音頻流的時間戳后,生成音視頻流數(shù)據(jù)包,通過跨進程通信通道發(fā)給直播應(yīng)用,很好地解決了現(xiàn)有技術(shù)問題。另一方面,本方案的輔助直播音視頻應(yīng)用可以作為不同的直播應(yīng)用的輔助,這兩個應(yīng)用獨立開發(fā)可降低開發(fā)難度、縮短開發(fā)周期,且這兩個應(yīng)用可分別屬于不同的開發(fā)商,增加彼此的使用靈活性,用戶可選擇使用或不使用輔助直播音視頻應(yīng)用;輔助直播音視頻應(yīng)用處理數(shù)據(jù),把對齊時間戳的音視頻流數(shù)據(jù)包通過跨進程通信通道傳輸給直播應(yīng)用,實現(xiàn)兩個應(yīng)用的銜接。
另外的,本發(fā)明針對采集的多種聲音和直播畫面進行了相關(guān)的處理,具體是對主播音進行降噪音處理,將多種聲音進行混合疊加;以及,對圖像進行修復(fù)、美化和添加特效,以實現(xiàn)視頻美化特效及視頻人像美白、人物瘦身瘦臉效果添加的目的。故在直播效果的豐富上起到了最大程度的躍進,同時實現(xiàn)視頻、音頻兩者的“美化”,進而在直播過程中更加豐富你的直播內(nèi)容,活躍主播與觀眾的互動氛圍,烘托氣氛,使得直播效果更為生動。
此外,本發(fā)明利用輔助直播音視頻應(yīng)用對所述視頻流和音頻流通過請求與直播應(yīng)用進行通信而連通的跨程序通信通道,通過該通信通道將處理后的視頻流和音頻流以音視頻流數(shù)據(jù)包傳輸至直播應(yīng)用,另外所述直播應(yīng)用依據(jù)預(yù)置的規(guī)則將所述音視頻流數(shù)據(jù)包上傳至直播服務(wù)器,其中預(yù)置的規(guī)則包括將主播預(yù)先設(shè)置的直播數(shù)據(jù)打包至所述音視頻數(shù)據(jù)包中一并上傳,以實現(xiàn)同步直播的功能,降低內(nèi)存占用,提高了數(shù)據(jù)傳輸?shù)乃俾?,以及保證了直播的流暢程度。
綜上所述,本發(fā)明有效將直播過程中的聲音整合為音頻流,并與視頻流時間戳對齊傳輸給直播應(yīng)用,避免直播過程中的各種聲音相互干擾,直播過程中聲音在直播應(yīng)用的融合效果較好;實現(xiàn)了同一應(yīng)用程序上進行直播音視頻的處理操作,省去了來回切換多個直播輔助應(yīng)用的繁瑣操作,節(jié)省了設(shè)備資源的損耗,最大程度的避免了直播設(shè)備卡頓、宕機的現(xiàn)象,提高用戶使用體驗;另外的在直播過程中更加豐富你的直播內(nèi)容,活躍主播與觀眾的互動氛圍,烘托氣氛;使得直播效果更為生動;此外將主播預(yù)先設(shè)置的直播數(shù)據(jù)打包至所述音視頻數(shù)據(jù)包中一并上傳,以實現(xiàn)同步直播的功能,降低內(nèi)存占用,提高了數(shù)據(jù)傳輸?shù)乃俾剩约氨WC了直播的流暢程度。
本發(fā)明的這些方面或其他方面在以下實施例的描述中會更加簡明易懂。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明輔助直播的音視頻處理方法的第一種實施例的流程圖;
圖2為本發(fā)明輔助直播的音視頻處理方法的第二種實施例的流程圖;
圖3為本發(fā)明輔助直播的音視頻處理裝置的第一種實施例的結(jié)構(gòu)框圖;
圖4為本發(fā)明輔助直播的音視頻處理裝置的第二種實施例的結(jié)構(gòu)框圖;
圖5為本發(fā)明的輔助直播音視頻應(yīng)用一種狀態(tài)操作界面的示意圖;
圖6為本發(fā)明的輔助直播音視頻應(yīng)用另一種狀態(tài)操作界面的示意圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(包括技術(shù)術(shù)語和科學(xué)術(shù)語),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語,應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義來解釋。
在對本發(fā)明的實施例做出具體闡述之前,有必要先對本發(fā)明的應(yīng)用場景及其原理進行如下的先導(dǎo)性說明。
在網(wǎng)絡(luò)直播過程中,用戶通過終端設(shè)備上的網(wǎng)絡(luò)直播應(yīng)用程序或相應(yīng)的直播間站點進入網(wǎng)絡(luò)直播間。在網(wǎng)絡(luò)直播間內(nèi)具有兩種成員,分別是主播成員和參與成員。主播成員可進行唱歌、跳舞等直播表演,通過終端設(shè)備錄制視頻或音頻文件,再上傳至網(wǎng)絡(luò)直播服務(wù)器,網(wǎng)絡(luò)直播服務(wù)器再將該視頻或音頻文件發(fā)布至網(wǎng)絡(luò)直播間,以供參與成員觀看。本發(fā)明主要涉及輔助直播音視頻應(yīng)用,該輔助應(yīng)用用于音視頻數(shù)據(jù)流的前期處理加工,并將處理好的音視頻流數(shù)據(jù)傳輸?shù)街辈?yīng)用或相應(yīng)的直播間站點。
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明提供第一種實施例的輔助直播的音視頻處理方法,如圖1,包括以下步驟:
s101,通過輔助直播音視頻應(yīng)用采集主播音、背景音樂和特效音,并進行音頻處理將其整合為音頻流。
本發(fā)明實施例中,通過輔助直播音視頻應(yīng)用采集利用麥克風獲得的主播音和利用聲卡獲得的背景音樂、特效音。所述背景音樂,可以是用來烘托氣氛,或者醞釀情緒的音樂,也可以是歌曲的伴奏等。所述特效音主要指臨時插入的較短的聲音,例如掌聲,鳥叫,歡呼聲等等;例如主播說了一個段子后,此時響起掌聲特效音以烘托整個現(xiàn)場氣氛??梢岳斫獾乃鲚o助直播音視頻應(yīng)用除了上述三種聲音,還可以采集其他類型的聲音;同時,上述三種聲音無需同時存在。
本發(fā)明實施例中,所述進行音頻處理將其整合為音頻流,包括:對所述主播音進行音量大小、音色、聲調(diào)調(diào)節(jié)和降噪音處理;并將處理后的主播音、背景音樂和特效音進行混合疊加整合為音頻流。
s102,通過輔助直播音視頻應(yīng)用采集直播畫面,并進行圖像處理生成視頻流。
本發(fā)明實施例中,通過輔助直播音視頻應(yīng)用讀取利用攝像頭獲得的直播畫面。
本發(fā)明實施例中,所述進行圖像處理生成視頻流,包括:通過所述輔助直播音視頻應(yīng)用接收用戶的視頻處理指令,將直播畫面轉(zhuǎn)化為幀數(shù)據(jù),根據(jù)所述視頻處理指令對幀數(shù)據(jù)進行處理,將處理后幀數(shù)據(jù)重新組裝成視頻流。其中幀數(shù)據(jù)相當于圖像,故本發(fā)明的對幀數(shù)據(jù)進行處理相當于對圖像的處理。
本發(fā)明實施例中,所述根據(jù)所述視頻處理指令對幀數(shù)據(jù)進行處理,包括:對幀數(shù)據(jù)的圖像進行修復(fù)、美化和添加特效中的至少一種。所述修復(fù)主要包括去除噪聲、增強、復(fù)原、分割等處理;所述美化主要針對人物或背景進行,例如對背景進行虛化,對主播進行美白、瘦臉等;所述添加特效主要是在采集的直播畫面的幀數(shù)據(jù)中增加主播用戶添加的圖像數(shù)據(jù),并分別疊加至所述幀數(shù)據(jù)中以實現(xiàn)視頻動畫的添加,或者是通過改變幀數(shù)據(jù)的圖像參數(shù)以實現(xiàn)視頻特效的添加;其主要改變的圖像參數(shù)有:圖像分辨率、圖像對比度、圖像亮度、圖像飽和度、圖像銳度、圖像色溫等。
需要說明的是,本發(fā)明提供的對聲音的處理和/或是對直播畫面的處理所運用的方法并不局限于本發(fā)明實施例提出的方法,還可以有其他方法,本發(fā)明對此不做限制。
請參照圖5,本發(fā)明所述輔助直播音視頻應(yīng)用一種狀態(tài)操作界面的示意圖,其“現(xiàn)場特效”一欄具有三方面的內(nèi)容:常用音效、現(xiàn)場動畫、動畫廣播。其中所述常用音效一欄中收集有預(yù)先設(shè)置的音效數(shù)據(jù),其實時獲取云端服務(wù)器發(fā)送的數(shù)據(jù)更新數(shù)據(jù)以存儲于本地數(shù)據(jù)庫,假設(shè)當觸控“前奏曲”的控件區(qū)域時,該輔助直播音視頻應(yīng)用將下發(fā)獲取“前奏曲”對應(yīng)音頻數(shù)據(jù)的獲取指令,以依據(jù)該獲取指令將所述“前奏曲”對應(yīng)音頻數(shù)據(jù)疊加至直播過程中采集的聲音中,其主要是將下發(fā)所述獲取指令時的時間點數(shù)據(jù)與所述原始音頻流數(shù)據(jù)對應(yīng)的當前時間數(shù)據(jù)進行對齊,并在所述原始音頻流數(shù)據(jù)相應(yīng)對齊的位置處疊加入所述“前奏曲”對應(yīng)音頻數(shù)據(jù),以實現(xiàn)音效的疊加。其現(xiàn)場動畫的實現(xiàn)手段與音頻的實現(xiàn)方式具有異曲同工之處,其主要是獲取該動畫的動畫數(shù)據(jù)并獲取下發(fā)該動畫數(shù)據(jù)的提取指令時對應(yīng)的時間點數(shù)據(jù),并在直播畫面數(shù)據(jù)中該時間點數(shù)據(jù)與當前時間數(shù)據(jù)對齊的位置處疊加入該動畫數(shù)據(jù),以實現(xiàn)現(xiàn)場動畫的添加。
s103,對齊所述音頻流和所述視頻流的時間戳,生成音視頻流數(shù)據(jù)包。
本發(fā)明實施例中,所述對齊所述音頻流和所述視頻流的時間戳,生成音視頻流數(shù)據(jù)包之前,還包括:通過輔助直播音視頻應(yīng)用建立以毫秒為單位且時間上線性遞增的參考時鐘;采集主播音和直播畫面時,分別依據(jù)所述參考時鐘上的時間,給每個數(shù)據(jù)塊都打上時間戳。可以理解的,可以將所述主播音的時間戳作為音頻流的時間戳,給背景音樂和特效音添加與所述主播音相同的時間戳。其中,所述時間戳是一個字符序列,唯一地標識某一刻的時間。例如,以視頻流開始的時間為初始時間,對應(yīng)時間戳為00:00:00.00;從視頻流開始10s后有采集到聲音,要求配上音頻流,那么音頻流的起始時間應(yīng)該是10s,對應(yīng)的時間戳為00:00:10.00。
本發(fā)明實施例中,所述對齊所述音頻流和所述視頻流的時間戳,具體包括:
獲取所述視頻流以及音頻流對應(yīng)的時間戳,并依據(jù)獲得的時間戳將兩者進行時間戳的對齊。假設(shè)處理完生成所述視頻流和音頻流的時間分別為14:30:10和14:30:11,同時將處理完成后的所述視頻流和音頻流的分別對應(yīng)的起始位的時間戳標記為14:30:10和14:30:11,兩者時差為1s,將音頻流錯位1s對應(yīng)到視頻流中,當參與成員用戶播放所述音視頻數(shù)據(jù)時,播放視頻流1s后播放音頻流。
需要說明的是,本發(fā)明提供的音頻數(shù)據(jù)疊加和/或視頻數(shù)據(jù)疊加和/或歌詞與歌曲的匹配所運用的方法以及時間戳的對齊方法并不局限于本發(fā)明實施例提出的方法,還可以有其他方法,本發(fā)明對此不做限制。
s104,通過跨進程通信通道將所述音視頻流數(shù)據(jù)包傳輸給直播應(yīng)用。
本發(fā)明實施例中,所述跨進程通信是指在進程間數(shù)據(jù)傳輸,即進程間的數(shù)據(jù)交換。其中所述跨進程通信的方式包括:廣播、接口訪問、對象訪問、共享訪問。
以本發(fā)明所述輔助直播音視頻應(yīng)用(以a程序表述)與直播應(yīng)用(以b程序表述)間的通信為例:所述廣播的具體實現(xiàn)方式是啟動a程序,定義a程序的傳輸所述音視頻流數(shù)據(jù)包為c事件,并向b程序發(fā)送廣播;b程序在運行的情況下新建一個類以繼承c事件的觸發(fā),接收a程序的廣播,建立a、b之間的跨進程通信通道。
所述接口訪問的具體實現(xiàn)方式包括a程序觸發(fā)所述c事件,在相關(guān)權(quán)限訪問的獲準下,b程序訪問a程序?qū)ν獗┞兜慕涌冢、b之間的跨進程通信通道,并獲取a程序的與c事件相應(yīng)的數(shù)據(jù)。
所述對象訪問的具體實現(xiàn)方式是創(chuàng)建b程序并建立一個新的活動命名為d活動,再創(chuàng)建a程序并建立一個新的事件為c事件對應(yīng)b程序中的d,觸發(fā)d活動對應(yīng)的相關(guān)指令訪問a程序接收c事件的相關(guān)數(shù)據(jù),并建立a、b之間的跨進程通信通道。
所述共享訪問的具體實現(xiàn)方式是將a程序觸發(fā)的c事件對應(yīng)的數(shù)據(jù)存儲于預(yù)置內(nèi)存中并建立相關(guān)的權(quán)限訪問,運行b程序建立訪問所述預(yù)置內(nèi)存相關(guān)權(quán)限,在該權(quán)限的基準下,獲取所述預(yù)置內(nèi)存中的c事件對應(yīng)的音視頻流數(shù)據(jù)包,構(gòu)建a、b之間的跨進程通信通道。
本發(fā)明實施例中,步驟s104還包括:通過所述直播應(yīng)用按預(yù)置規(guī)則將所述音視頻流數(shù)據(jù)包上傳到直播服務(wù)器。
其中,本發(fā)明實施例中,所述預(yù)置規(guī)則指的是將所述音視頻流數(shù)據(jù)包上傳至直播服務(wù)器的行為規(guī)范,具體過程為將生成檢測該音視頻流數(shù)據(jù)包的數(shù)據(jù)完整性的檢測指令,其中該音視頻流數(shù)據(jù)包不僅包含有所述視頻流和音頻流,還包含有針對直播中主播發(fā)送的廣播數(shù)據(jù)以及彈幕數(shù)據(jù),當具備有所述廣播數(shù)據(jù)和/或彈幕數(shù)據(jù)時,將所述廣播數(shù)據(jù)和/或彈幕數(shù)據(jù)合并至所述音視頻流數(shù)據(jù)包中,在所述音視頻流數(shù)據(jù)包在被執(zhí)行上傳指令時需觸發(fā)轉(zhuǎn)換指令以將該音視頻流數(shù)據(jù)包轉(zhuǎn)換為適于發(fā)送的電信號。
需要說明的是,本發(fā)明提供的跨進程通信所運用的方法并不局限于本發(fā)明實施例提出的方法,還可以有其他方法,本發(fā)明對此不做限制。
請參照圖2所示的輔助直播的音視頻處理方法的第二種實施例的流程圖,可以理解為在所述通過輔助直播音視頻應(yīng)用采集主播音、背景音樂和特效音之前的操作,也可理解為在第一種實施例任何一步過程中添加的操作,在此不做限制。同時,第二種實施例與第一種實施例中相同的步驟不再贅述。
s201,接收音頻查找指令,獲取本地存儲的歌曲,和/或接收一鍵上傳指令,獲取第三方播放器的音樂列表中的歌曲。
s202,接收用戶打開歌詞開關(guān)指令,獲取歌詞文件。
具體的,還可以包括以下步驟:
判斷本地是否存在歌詞文件;若發(fā)現(xiàn)所述歌曲在本地沒有對應(yīng)的歌詞文件,則觸發(fā)下載邏輯,下載歌詞文件;若發(fā)現(xiàn)本地有對應(yīng)的歌詞文件,獲取歌詞文件。
其中,所述歌詞文件為lrc格式;如歌曲名:祈禱.mp3,歌詞名應(yīng)當為:祈禱.lrc。
s203,從所述歌詞文件中分離出時間信息,把時間信息作為歌詞的時間戳;將所述歌曲和對應(yīng)的歌詞進行時間戳對齊。
s204,播放指定的歌曲同時在輔助直播音視頻應(yīng)用界面同步顯示對應(yīng)的歌詞。優(yōu)選的,為避免主程序的卡頓等現(xiàn)象,歌詞的顯示需要重新開啟一個新的線程。
作為一種實施例,所述播放指定的歌曲之后,還包括:接收用戶點擊原唱打開/關(guān)閉指令,開啟/關(guān)閉原唱聲音。
請參照圖5,本發(fā)明所述輔助直播音視頻應(yīng)用一種狀態(tài)操作界面的示意圖,當所述背景音樂為歌曲時,獲取歌曲的方式包括:響應(yīng)添加本地歌曲指令,獲取主播用戶本地存儲的歌曲,具體的可以是進行全盤掃描、響應(yīng)將本地音樂拖到應(yīng)用界面或響應(yīng)打開對應(yīng)音頻指令;響應(yīng)一鍵上傳指令,獲取第三方播放器的音樂列表中的歌曲,從網(wǎng)絡(luò)中下載資源。此外,還包括:響應(yīng)主播用戶打開歌詞開關(guān)指令,播放指定的歌曲同時在主播用戶界面同步顯示歌詞;響應(yīng)主播用戶點擊原唱開關(guān)指令,開啟或關(guān)閉原唱聲音。
請參照圖6,本發(fā)明所述輔助直播音視頻應(yīng)用另一種狀態(tài)操作界面的示意圖,所述單獨開啟一個線程進行所述歌詞文件的顯示,包括:通過設(shè)置位移量來實現(xiàn)將上一句歌詞向上移動,以及通過設(shè)置重繪函數(shù)來實現(xiàn)當前歌詞字體變化和顏色突出顯示。
通過上述第二種實施例,使所述輔助直播音視頻應(yīng)用具有音樂播放器的功能,滿足主播用戶最常用的表演需求,不再需要單獨開啟第三方播放器省去了來回切換多個直播輔助應(yīng)用的繁瑣操作,節(jié)省了設(shè)備資源的損耗,最大程度的避免了直播設(shè)備卡頓、宕機的現(xiàn)象,提高用戶使用體驗。
請參照圖3,為本發(fā)明輔助直播的音視頻處理裝置的第一種實施例結(jié)構(gòu)框圖,包括:
音頻處理模塊11,用于通過輔助直播音視頻應(yīng)用采集主播音、背景音樂和特效音,進行音頻處理將其整合為音頻流。
本發(fā)明實施例中,通過輔助直播音視頻應(yīng)用采集利用麥克風獲得的主播音和利用聲卡獲得的背景音樂、特效音。所述背景音樂,可以是用來烘托氣氛,或者醞釀情緒的音樂,也可以是歌曲的伴奏等。所述特效音主要指臨時插入的較短的聲音,例如掌聲,鳥叫,歡呼聲等等;例如主播說了一個段子后,此時響起掌聲特效音以烘托整個現(xiàn)場氣氛??梢岳斫獾乃鲚o助直播音視頻應(yīng)用除了上述三種聲音,還可以采集其他類型的聲音;同時,上述三種聲音無需同時存在。
本發(fā)明實施例中,所述音頻處理模塊11包括:聲音優(yōu)化單元和聲音疊加單元;所述聲音優(yōu)化單元用于對所述主播音進行音量大小、音色、聲調(diào)調(diào)節(jié)和降噪音處理;所述聲音疊加單元用于將處理后的主播音、背景音樂和特效音進行混合疊加整合為音頻流。
視頻處理模塊12,用于通過輔助直播音視頻應(yīng)用采集直播畫面,進行圖像處理生成視頻流。
本發(fā)明實施例中,通過輔助直播音視頻應(yīng)用讀取利用攝像頭獲得的直播畫面。所述視頻處理模塊12包括:視頻分解單元,圖像處理單元和圖像組合單元。所述視頻分解單元用于通過所述輔助直播音視頻應(yīng)用接收用戶的視頻處理指令,將直播畫面轉(zhuǎn)化為幀數(shù)據(jù);所述圖像處理單元用于根據(jù)所述視頻處理指令對幀數(shù)據(jù)的圖像進行處理;所述圖像組合單元用于將處理后幀數(shù)據(jù)重新組裝成視頻流。其中幀數(shù)據(jù)相當于圖像,故本發(fā)明的對幀數(shù)據(jù)進行處理相當于對圖像的處理。
本發(fā)明實施例中,所述圖像處理單元又包括修復(fù)單元、美化單元和添加特效單元;分別用于對圖像進行修復(fù)、美化和添加特效。所述修復(fù)主要包括去除噪聲、增強、復(fù)原、分割等處理;所述美化主要針對人物或背景進行,例如對背景進行虛化,對主播進行美白、瘦臉等;所述添加特效主要是在采集的直播畫面的幀數(shù)據(jù)中增加主播用戶添加的圖像數(shù)據(jù),并分別疊加至所述幀數(shù)據(jù)中以實現(xiàn)視頻動畫的添加,或者是通過改變幀數(shù)據(jù)的圖像參數(shù)以實現(xiàn)視頻特效的添加;其主要改變的圖像參數(shù)有:圖像分辨率、圖像對比度、圖像亮度、圖像飽和度、圖像銳度、圖像色溫等。
需要說明的是,本發(fā)明提供的對聲音的處理和/或是對直播畫面的處理所運用的裝置并不局限于本發(fā)明實施例提出的裝置,還可以有其他裝置,本發(fā)明對此不做限制。
時間戳模塊13,用于對齊所述音頻流和所述視頻流的時間戳,生成音視頻流數(shù)據(jù)包。
本發(fā)明實施例中,時間戳模塊13包括時間戳生成單元和時間戳對齊單元。所述時間戳生成單元可以通過輔助直播音視頻應(yīng)用建立以毫秒為單位且時間上線性遞增的參考時鐘;采集主播音和直播畫面時,分別依據(jù)所述參考時鐘上的時間,給每個數(shù)據(jù)塊都打上時間戳。其中,所述時間戳是一個字符序列,唯一地標識某一刻的時間。例如,以視頻流開始的時間為初始時間,對應(yīng)時間戳為00:00:00.00;從視頻流開始10s后有采集到聲音,要求配上音頻流,那么音頻流的起始時間應(yīng)該是10s,對應(yīng)的時間戳為00:00:10.00。所述時間戳對齊單元用于獲取所述視頻流以及音頻流對應(yīng)的時間戳,并依據(jù)獲得的時間戳將兩者進行時間戳的對齊。假設(shè)處理完生成所述視頻流和音頻流的時間分別為14:30:10和14:30:11,同時將處理完成后的所述視頻流和音頻流的分別對應(yīng)的起始位的時間戳標記為14:30:10和14:30:11,兩者時差為1s,將音頻流錯位1s對應(yīng)到視頻流中,當參與成員用戶播放所述音視頻數(shù)據(jù)時,播放視頻流1s后播放音頻流。
需要說明的是,本發(fā)明提供的音頻數(shù)據(jù)疊加和/或視頻數(shù)據(jù)疊加和/或歌詞與歌曲的匹配所運用的裝置以及時間戳的裝置并不局限于本發(fā)明實施例提出的裝置,還可以有其他裝置,本發(fā)明對此不做限制。
通訊傳輸模塊14,用于通過跨進程通信通道將所述音視頻流數(shù)據(jù)包傳輸給直播應(yīng)用。
本發(fā)明實施例中,所述跨進程通信是指在進程間數(shù)據(jù)傳輸,即進程間的數(shù)據(jù)交換。其中所述跨進程通信的方式包括:廣播、接口訪問、對象訪問、共享訪問。
以本發(fā)明所述輔助直播音視頻應(yīng)用(以a程序表述)與直播應(yīng)用(以b程序表述)間的通信為例:所述廣播的具體實現(xiàn)方式是啟動a程序,定義a程序的傳輸所述音視頻流數(shù)據(jù)包為c事件,并向b程序發(fā)送廣播;b程序在運行的情況下新建一個類以繼承c事件的觸發(fā),接收a程序的廣播,建立a、b之間的跨進程通信通道。
所述接口訪問的具體實現(xiàn)方式包括a程序觸發(fā)所述c事件,在相關(guān)權(quán)限訪問的獲準下,b程序訪問a程序?qū)ν獗┞兜慕涌冢、b之間的跨進程通信通道,并獲取a程序的與c事件相應(yīng)的數(shù)據(jù)。
所述對象訪問的具體實現(xiàn)方式是創(chuàng)建b程序并建立一個新的活動命名為d活動,再創(chuàng)建a程序并建立一個新的事件為c事件對應(yīng)b程序中的d,觸發(fā)d活動對應(yīng)的相關(guān)指令訪問a程序接收c事件的相關(guān)數(shù)據(jù),并建立a、b之間的跨進程通信通道。
所述共享訪問的具體實現(xiàn)方式是將a程序觸發(fā)的c事件對應(yīng)的數(shù)據(jù)存儲于預(yù)置內(nèi)存中并建立相關(guān)的權(quán)限訪問,運行b程序建立訪問所述預(yù)置內(nèi)存相關(guān)權(quán)限,在該權(quán)限的基準下,獲取所述預(yù)置內(nèi)存中的c事件對應(yīng)的音視頻流數(shù)據(jù)包,構(gòu)建a、b之間的跨進程通信通道。
本發(fā)明實施例中,通訊傳輸模塊14還包括:上傳單元,用于通過所述直播應(yīng)用按預(yù)置規(guī)則將所述音視頻流數(shù)據(jù)包上傳到直播服務(wù)器。
其中,本發(fā)明實施例中,所述預(yù)置規(guī)則指的是將所述音視頻流數(shù)據(jù)包上傳至直播服務(wù)器的行為規(guī)范,具體過程為將生成檢測該音視頻流數(shù)據(jù)包的數(shù)據(jù)完整性的檢測指令,其中該音視頻流數(shù)據(jù)包不僅包含有所述視頻流和音頻流,還包含有針對直播中主播發(fā)送的廣播數(shù)據(jù)以及彈幕數(shù)據(jù),當具備有所述廣播數(shù)據(jù)和/或彈幕數(shù)據(jù)時,將所述廣播數(shù)據(jù)和/或彈幕數(shù)據(jù)合并至所述音視頻流數(shù)據(jù)包中,在所述音視頻流數(shù)據(jù)包在被執(zhí)行上傳指令時需觸發(fā)轉(zhuǎn)換指令以將該音視頻流數(shù)據(jù)包轉(zhuǎn)換為適于發(fā)送的電信號。
需要說明的是,本發(fā)明提供的跨進程通信所運用的方法并不局限于本發(fā)明實施例提出的方法,還可以有其他方法,本發(fā)明對此不做限制。
請參照圖4,為本發(fā)明輔助直播的音視頻處理裝置的第二種實施例的結(jié)構(gòu)框圖,可理解為在第一種實施例基礎(chǔ)上添加的模塊,故第二種實施例與第一種實施例中相同的模塊單元不再贅述。
上傳模塊21,用于接收音頻查找指令,獲取本地存儲的歌曲,和/或接收一鍵上傳指令,獲取第三方播放器的音樂列表中的歌曲。
匹配模塊22,用于接收用戶打開歌詞開關(guān)指令,匹配并獲取對應(yīng)的歌詞文件。
所述匹配模塊還包括下載單元和獲取單元;所述下載單元用于當發(fā)現(xiàn)所述歌曲在本地沒有對應(yīng)的歌詞文件,觸發(fā)下載邏輯,下載歌詞文件;所述獲取單元用于當本地有對應(yīng)的歌詞文件,獲取歌詞文件。
其中,所述歌詞文件為lrc格式;如歌曲名:祈禱.mp3,歌詞名應(yīng)當為:祈禱.lrc。
同步模塊23,用于從所述歌詞文件中分離出時間信息,把時間信息作為歌詞的時間戳;將所述歌曲和對應(yīng)的歌詞進行時間戳對齊。
顯示模塊24,用于播放指定的歌曲同時在輔助直播音視頻應(yīng)用界面同步顯示對應(yīng)的歌詞。優(yōu)選的,為避免主程序的卡頓等現(xiàn)象,歌詞的顯示需要重新開啟一個新的線程。
作為一種實施例,還包括原唱開關(guān)模塊,用于接收用戶點擊原唱打開/關(guān)閉指令,開啟/關(guān)閉原唱聲音。
請參照圖5,本發(fā)明所述輔助直播音視頻應(yīng)用一種狀態(tài)操作界面的示意圖,獲取歌曲的方式包括:響應(yīng)添加本地歌曲指令,獲取主播用戶本地存儲的歌曲,具體的可以是進行全盤掃描、響應(yīng)將本地音樂拖到應(yīng)用界面或響應(yīng)打開對應(yīng)音頻指令;響應(yīng)一鍵上傳指令,獲取第三方播放器的音樂列表中的歌曲,從網(wǎng)絡(luò)中下載資源。此外,還包括:響應(yīng)主播用戶打開歌詞開關(guān)指令,播放指定的歌曲同時在主播用戶界面同步顯示歌詞;響應(yīng)主播用戶點擊原唱開關(guān)指令,開啟或關(guān)閉原唱聲音。
請參照圖6,本發(fā)明所述輔助直播音視頻應(yīng)用另一種狀態(tài)操作界面的示意圖,所述單獨開啟一個線程進行所述歌詞文件的顯示,包括:通過設(shè)置位移量來實現(xiàn)將上一句歌詞向上移動,以及通過設(shè)置重繪函數(shù)來實現(xiàn)當前歌詞字體變化和顏色突出顯示。
通過采用上述第二種實施例中的方法及對應(yīng)的裝置,使所述輔助直播音視頻應(yīng)用具有音樂播放器的功能,滿足主播用戶最常用的表演需求,不再需要單獨開啟第三方播放器,省去了來回切換多個直播輔助應(yīng)用的繁瑣操作,節(jié)省了設(shè)備資源的損耗,最大程度的避免了直播設(shè)備卡頓、宕機的現(xiàn)象,提高用戶使用體驗。
現(xiàn)有技術(shù)主播音、背景音樂和特效音分別使用三個應(yīng)用處理,不僅導(dǎo)致這三種聲音相互干擾,而且這三個應(yīng)用分別使用不同進程,當其中一個進程卡頓時該進程對應(yīng)的聲音就會出現(xiàn)停滯。特別是將這三種聲音、及視頻流通過四個進程通信通道分別發(fā)給直播應(yīng)用時,三種聲音的進程與視頻流進程不能很好融合,導(dǎo)致在直播應(yīng)用的聲音的融合效果很差。而本發(fā)明有效將直播過程中的聲音整合為音頻流,并與視頻流時間戳對齊傳輸給直播應(yīng)用,避免直播過程中的各種聲音相互干擾,直播過程中聲音在直播應(yīng)用的融合效果較好。
現(xiàn)有技術(shù)采用多個直播輔助應(yīng)用,不僅操作繁瑣,而且需要啟用多個進程,增加資源損耗;此外,多個直播輔助應(yīng)用的數(shù)據(jù)分別處理,這些應(yīng)用的處理進程有快有滿,視頻流和音頻流的時間戳難以對齊,導(dǎo)致視頻流和音頻流在應(yīng)用時可能時間點對不上;比如,音頻流的應(yīng)用處理較快,而視頻流的應(yīng)用處理較慢,視頻相對音頻滯后;而本發(fā)明只有一個輔助直播音視頻應(yīng)用,對齊視頻流和音頻流的時間戳后,生成音視頻流數(shù)據(jù)包,通過跨進程通信通道發(fā)給直播應(yīng)用,很好地解決了現(xiàn)有技術(shù)問題。另一方面,本方案的輔助直播音視頻應(yīng)用可以作為不同的直播應(yīng)用的輔助,這兩個應(yīng)用獨立開發(fā)可降低開發(fā)難度、縮短開發(fā)周期,且這兩個應(yīng)用可分別屬于不同的開發(fā)商,增加彼此的使用靈活性,用戶可選擇使用或不使用輔助直播音視頻應(yīng)用;輔助直播音視頻應(yīng)用處理數(shù)據(jù),把對齊時間戳的音視頻流數(shù)據(jù)包通過跨進程通信通道傳輸給直播應(yīng)用,實現(xiàn)兩個應(yīng)用的銜接。
另外的,本發(fā)明針對采集的多種聲音和直播畫面進行了相關(guān)的處理,具體是對主播音進行降噪音處理,將多種聲音進行混合疊加;以及,對圖像進行修復(fù)、美化和添加特效,以實現(xiàn)視頻美化特效及視頻人像美白、人物瘦身瘦臉效果添加的目的。故在直播效果的豐富上起到了最大程度的躍進,同時實現(xiàn)視頻、音頻兩者的“美化”,進而在直播過程中更加豐富你的直播內(nèi)容,活躍主播與觀眾的互動氛圍,烘托氣氛,使得直播效果更為生動。
此外,本發(fā)明利用輔助直播音視頻應(yīng)用對所述視頻流和音頻流通過請求與直播應(yīng)用進行通信而連通的跨程序通信通道,通過該通信通道將處理后的視頻流和音頻流以音視頻流數(shù)據(jù)包傳輸至直播應(yīng)用,另外所述直播應(yīng)用依據(jù)預(yù)置的規(guī)則將所述音視頻流數(shù)據(jù)包上傳至直播服務(wù)器,其中預(yù)置的規(guī)則包括將主播預(yù)先設(shè)置的直播數(shù)據(jù)打包至所述音視頻數(shù)據(jù)包中一并上傳,以實現(xiàn)同步直播的功能,降低內(nèi)存占用,提高了數(shù)據(jù)傳輸?shù)乃俾?,以及保證了直播的流暢程度。
綜上所述,本發(fā)明有效將直播過程中的聲音整合為音頻流,并與視頻流時間戳對齊傳輸給直播應(yīng)用,避免直播過程中的各種聲音相互干擾,直播過程中聲音在直播應(yīng)用的融合效果較好;實現(xiàn)了同一應(yīng)用程序上進行直播音視頻的處理操作,省去了來回切換多個直播輔助應(yīng)用的繁瑣操作,節(jié)省了設(shè)備資源的損耗,最大程度的避免了直播設(shè)備卡頓、宕機的現(xiàn)象,提高用戶使用體驗;另外的在直播過程中更加豐富你的直播內(nèi)容,活躍主播與觀眾的互動氛圍,烘托氣氛;使得直播效果更為生動;此外將主播預(yù)先設(shè)置的直播數(shù)據(jù)打包至所述音視頻數(shù)據(jù)包中一并上傳,以實現(xiàn)同步直播的功能,降低內(nèi)存占用,提高了數(shù)據(jù)傳輸?shù)乃俾?,以及保證了直播的流暢程度。
以上對本發(fā)明所提供的一些示例性實施例進行了詳細介紹,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明實施例的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。