一種直播數據處理方法和裝置與流程
2023-05-17 09:46:06 1

本發明涉及計算機技術領域,特別是涉及一種直播數據處理方法和一種直播數據處理裝置。
背景技術:
隨著網絡和終端技術的發展,用戶可以通過終端執行各種網絡操作,如上網、玩遊戲、觀看視頻等,因此也興起了一種新的多媒體互動方式,即網絡直播。
網絡直播是通過信號採集設備採用直播視頻,然後將直播視頻上傳到伺服器,再由伺服器反饋給各用戶終端的播放的多媒體互動方式,該多媒體互動方式還支持用戶和該網絡直播的主播進行互動,即用戶的消息可以反饋給主播,從而主播基於該消息進行互動。
上述互動消息會顯示在直播畫面中,但是,在網絡直播過程中互動消息通常存在一定的時延,影響直播效果。
技術實現要素:
鑑於上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決上述問題的直播數據處理方法和相應的直播數據處理裝置。
依據本發明的一個方面,提供了一種直播數據處理方法,具體包括:在基於目標應用進行直播的過程中,獲取直播返回信息,其中,所述直播返回信息用於反饋除直播視頻數據外的信息,所述直播返回信息包括彈幕數據;渲染所述目標應用的應用界面和直播返回信息疊加的顯示圖像,依據所述顯示圖像展示直播界面;依據所述直播界面生成具有彈幕數據的直播視頻數據,上傳所述直播視頻數據。
可選地,渲染所述目標應用的應用界面和直播返回信息疊加的顯示圖像,包括:依據應用映射架構數據調用第一接口,繪製所述直播返回信息對應的信息反饋圖像,並獲取基於應用源框架數據繪製的應用界面;將所述信息反饋圖像和應用界面進行疊加並渲染得到顯示圖像;其中,所述應用映射架構數據是依據所述目標應用的應用源框架數據確定的。
可選地,渲染所述目標應用的應用界面和直播返回信息疊加的顯示圖像,包括:依據應用映射架構數據調用第一接口,繪製在所述目標應用的應用界面上疊加所述直播返回信息對應信息反饋圖像的顯示圖像,渲染所述顯示圖像。
可選地,依據所述顯示圖像展示直播界面,包括:依據顯示圖像的時間信息,在終端屏幕上依次展示顯示圖像,構成所述目標應用的直播界面。
可選地,依據所述直播界面生成具有彈幕數據的直播視頻數據,包括:依據所述應用映射架構數據調用第二接口,獲取所述顯示圖像;依據顯示圖像的時間信息,將所述各顯示圖像構成所述直播視頻數據。
可選地,所述直播返回信息還包括:業務數據和/或非公開信息。
可選地,所述直播返回信息對應的信息反饋圖像包括公開圖像和私密圖像,其中,所述公開圖像依據彈幕數據和業務數據繪製,所述私密圖像依據所述非公開信息繪製。
可選地,獲取所述顯示圖像,包括:獲取由所述目標應用的應用界面和公開圖像疊加生成的顯示圖像。
可選地,還包括:預先通過掛起的目標對象,在初始化所述目標應用創建應用映射架構數據和應用源架構數據;依據所述應用映射架構數據確定至少一個目標接口。
可選地,所述預先通過掛起的目標對象,在初始化目標應用創建應用映射架構數據和應用源架構數據,包括:對系統中創建函數進行監控,在所述創建函數創建目標對象時掛起所述目標對象;在所述目標對象初始化目標應用時,依據所述應用信息確定映射對象和接口調用,搭建應用映射架構數據,再依據所述應用信息確定源對象和接口調用,搭建應用源架構數據。
可選地,還包括:在創建對象時,依據所述應用信息創建映射對象並指向源內存地址,再創建源對象並指向所述源內存地址;在調用接口時,依據所述應用信息在對應各接口處設置一組鉤子程序,並確定各接口的接口信息。
可選地,依據所述應用映射架構數據確定至少一個目標接口,包括:基於所述應用映射架構數據,依據所述接口信息確定用於繪製顯示圖像的至少一個目標接口。
根據本發明的另一方面,提供了一種直播數據處理裝置,具體包括:獲取模塊,用於在基於目標應用進行直播的過程中,獲取直播返回信息,其中,所述直播返回信息用於反饋除視頻數據外的信息,所述直播返回信息包括彈幕數據;渲染顯示模塊,用於渲染所述目標應用的應用界面和直播返回信息疊加的顯示圖像,依據所述顯示圖像展示直播界面;直播返回模塊,用於依據所述直播界面生成具有彈幕數據的直播視頻數據,上傳所述直播視頻數據。
可選地,所述渲染顯示模塊,包括:渲染子模塊,用於依據應用映射架構數據調用第一接口,繪製所述直播返回信息對應的信息反饋圖像,並獲取基於應用源框架數據繪製的應用界面;將所述信息反饋圖像和應用界面進行疊加並渲染得到顯示圖像;其中,所述應用映射架構數據是依據所述目標應用的應用源框架數據確定的。
可選地,所述渲染顯示模塊,包括:繪製子模塊,用於依據應用映射架構數據調用第一接口,繪製在所述目標應用的應用界面上疊加所述直播返回信息對應信息反饋圖像的顯示圖像,渲染所述顯示圖像。
可選地,所述繪製顯示模塊,包括:顯示子模塊,用於依據顯示圖像的時間信息,在終端屏幕上依次展示顯示圖像,構成所述目標應用的直播界面。
可選地,所述直播返回模塊,包括:獲取子模塊,用於依據所述應用映射架構數據調用第二接口,獲取所述顯示圖像;直播生成子模塊,用於依據顯示圖像的時間信息,將所述各顯示圖像構成所述直播視頻數據。
可選地,所述直播返回信息還包括:業務數據和/或非公開信息。
可選地,所述直播返回信息對應的信息反饋圖像包括公開圖像和私密圖像,其中,所述公開圖像依據彈幕數據和業務數據繪製,所述私密圖像依據所述非公開信息繪製。
可選地,所述獲取子模塊,用於獲取由所述目標應用的應用界面和公開圖像疊加生成的顯示圖像。
可選地,還包括:初始化模塊,用於預先通過掛起的目標對象,在初始化目標應用創建應用映射架構數據和應用源架構數據;依據所述應用映射架構數據確定至少一個目標接口。
可選地,初始化模塊,包括:掛起子模塊,用於對系統中創建函數進行監控,在所述創建函數創建目標對象時掛起所述目標對象;架構搭建子模塊,用於在所述目標對象初始化目標應用創建應用,依據所述應用信息確定映射對象和接口調用,搭建應用映射架構數據,再依據所述應用信息確定源對象和接口調用,搭建應用源架構數據。
可選地,架構搭建子模塊,還用於在創建對象時,依據所述應用信息創建映射對象並指向源內存地址,再創建源對象並指向所述源內存地址;在調用接口時,依據所述應用信息在對應各接口處設置一組鉤子程序,並確定各接口的接口信息。
可選地,初始化模塊,還包括:接口分析子模塊,用於基於所述應用映射架構數據,依據所述接口信息確定用於繪製顯示圖像的至少一個目標接口。
在基於目標應用進行直播的過程中,獲取直播返回信息,其中,所述直播返回信息用於反饋除直播視頻數據外的信息,所述直播返回信息包括彈幕數據,渲染所述目標應用的應用界面和直播返回信息疊加的顯示圖像,依據所述顯示圖像展示直播界面,依據所述直播界面生成具有彈幕數據的直播視頻數據,上傳所述直播視頻數據;從而在直播的主播端直接生成帶有彈幕等數據的直播視頻數據,無需在服務端進行直播視頻和彈幕等直播返回信息的合成,減少時延。
上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,而可依照說明書的內容予以實施,並且為了讓本發明的上述和其它目的、特徵和優點能夠更明顯易懂,以下特舉本發明的具體實施方式。
附圖說明
通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對於本領域普通技術人員將變得清楚明了。附圖僅用於示出優選實施方式的目的,而並不認為是對本發明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了根據本發明一個實施例的一種直播數據處理方法實施例的步驟流程圖;
圖2示出了根據本發明另一個實施例的一種直播數據處理方法實施例的步驟流程圖;
圖3示出了根據本發明另一個實施例的另一種直播數據處理方法實施例的步驟流程圖;
圖4示出了根據本發明一個實施例的一種直播數據處理裝置實施例的結構框圖;
圖5示出了根據本發明另一個實施例的一種直播數據處理裝置實施例的結構框圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這裡闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,並且能夠將本公開的範圍完整的傳達給本領域的技術人員。
參照圖1,示出了根據本發明一個實施例的一種直播數據處理方法實施例的步驟流程圖,具體可以包括如下步驟:
步驟102,在基於目標應用進行直播的過程中,獲取直播返回信息,其中,所述直播返回信息用於反饋除直播視頻數據外的信息,所述直播返回信息包括彈幕數據。
本實施例的直播是基於目標應用的直播,即將目標應用的數據作為直播數據,例如遊戲直播是用戶在使用遊戲應用玩遊戲的過程中,將遊戲應用對應畫面的數據作為直播數據。直播過程中觀看直播的用戶和主播可以進行互動,主播即進行該直播的用戶,如遊戲直播中遊戲玩家即主播。用戶可以發送彈幕數據,也可以給主播送禮物等,其中,彈幕指的是視頻中大量以字幕彈出形式從屏幕飄過的顯示方式。
本實施例應用於直播過程的主播端,為了便於主播與用戶互動,在基於目標應用進行直播的過程中,可以獲取直播返回信息。為了減少對主播帶寬的佔用,本實施例的直播返回信息用於反饋除視頻數據之外的信息,即該直播返回信息為不攜帶直播視頻數據的互動消息,可以包括彈幕數據,也可以包括禮物等數據。
步驟104,渲染所述目標應用的應用界面和直播返回信息疊加的顯示圖像,依據所述顯示圖像展示直播界面。
步驟106,依據所述直播界面生成具有彈幕數據的直播視頻數據,上傳所述直播視頻數據。
其中,在系統底層以及屏幕顯示的角度,在系統中顯示的界面、窗口都可以看作是一幀圖像,因此目標應用運行過程中,需要繪製、渲染目標應用的應用界面,在該過程中可以在應用界面上繪製疊加的直播返回信息,得到相應的顯示圖像,對於每幀分別繪製該顯示圖像,從而將各幀顯示圖像按照時間戳的時間順序進行組合可以展示相應的直播界面,該直接界面顯示有彈幕數據,以及其他返回數據如禮物等。然後可以依據該直播界面生成具有彈幕數據的直播視頻數據,即將各幀直播界面組合得到直播視頻數據,上傳具有彈幕數據的直播視頻數據。
從而在直播的主播端直接生成帶有彈幕等數據的直播視頻數據,無需在服務端進行直播視頻和彈幕等直播返回信息的合成,減少時延。
參照圖2,示出了根據本發明另一個實施例的一種直播數據處理方法實施例的步驟流程圖,具體可以包括如下步驟:
步驟202,預先通過掛起的目標對象,在初始化目標應用創建應用映射架構數據和應用源架構數據。
預先對系統進行監控,監控系統的創建函數如crate函數,當調用該創建函數創建目標對象時,可以掛起該目標對象,即在初始化目標對象時設置第一鉤子程序,從而在目標對象的源頭設置鉤子程序。該目標對象為系統的重要組件對象,用於執行各種應用所需的操作。
系統中部分應用的創建、運行等均需要目標對象的參與,因此在目標對象的源頭設置鉤子,就可以截獲各個針對目標對象的調用,從而確定所需的信息。本實施例中,應用在創建需要調用目標對象執行操作,因此可以通過第一鉤子程序截獲調用所述目標對象時的應用信息,該應用信息用於指示創建該目標應用的應用源架構數據。即在目標應用創建時需要調用目標對應的一系列接口獲取數據,並創建所需的函數對象等,通過該接口調用和函數對象可以確定出該目標應用的應用源架構數據,從而啟動並運行該目標應用。
因此本實施例先採用應用信息搭建該目標應用的應用映射架構數據,再搭建應用源架構數據,即依據該應用信息確定所需操作,先創建一個映射信息再創建源信息,且該映射信息與源信息指向相同的內容地址,即採用映射架構數據搭建一個與應用源架構數據相同的外殼,但其實質內容仍然由應用源架構數據提供,從而極少量的消耗內存信息,且能夠獲知該目標應用的架構,並控制應用所需數據的返回。
本發明實施例中,可以在各種系統的各種目標對象設置鉤子程序,本實施例中以組件對象模型(Component Object Model,COM)作為目標對象為例,可以在創建函數初始化COM組件時,為COM組件設置第一鉤子程序,從而在COM組件的源頭設置鉤子,實現對COM組件的接管。其中,COM組件是微軟對於網頁伺服器與客戶端之間交互的一項軟體組件技術,是一種面向對象的編程模式,它定義了對象在單個應用程式內部或多個應用程式之間的行為方式。並且COM被實現於多個平臺之上,並不限於Windows作業系統。例如,遊戲客戶端採用DirectX(Direct eXtension,DX)的3D引擎,該DirectX是由微軟公司創建的多媒體編程接口,由C++程式語言實現,遵循COM組件。因此在啟動運行該遊戲客戶端,涉及到3D引擎操作時,需要調用COM組件,通過在COM組件設置的第一鉤子引擎,可以獲取調用COM組件的應用信息,從而確定出該遊戲客戶端的3D引擎的源架構數據,即獲知3D引擎運行所需的各種接口以及函數對象等。
步驟204,依據所述應用映射架構數據確定至少一個目標接口。
在搭建應用映射架構數據時可以確定該目標應用所需調用的各種接口,以及各接口的功能等信息,因此可以確定出所需的至少一個目標接口,該目標接口包括用於繪製、渲染、顯示圖像的各種接口。目標接口包括第一接口和第二接口,第一接口用於繪製圖像數據,第二接口用於輸出圖像數據。
步驟206,在基於目標應用進行直播的過程中,獲取直播返回信息。
步驟208,依據應用映射架構數據調用第一接口,繪製所述直播返回信息對應的信息反饋圖像,並獲取基於應用源框架數據繪製的應用界面。
步驟210,將所述彈幕圖像和應用界面進行疊加並渲染得到顯示圖像。
目標應用運行後可以採用全屏模式,全屏模式下該目標應用的顯示界面即界面圖像會鋪滿整個窗口,且焦點位於該目標應用中。其中,在系統底層以及屏幕顯示的角度,在系統中顯示的界面、窗口都可以看作是一幀圖像。本實施例依據上述應用映射架構數據,基於該目標應用的開發技術原理來繪製所述直播返回信息對應的信息反饋圖像。
因此基於應用源框架數據繪製目標應用的應用界面,以及獲取直播返回信息後,可以採用預先注入的鉤子程序調用第一接口依據應用映射架構數據對應圖像繪製、渲染、顯示等方式,繪製所述直播返回信息對應的信息反饋圖像,獲取基於應用源框架數據創建的應用界面,將所述信息反饋圖像和應用界面進行疊加並渲染得到顯示圖像,從而得到顯示有彈幕數據、禮物等直播返回信息的圖像。對於每一幀圖像採用上述方式繪製、疊加、渲染,從而得到屏幕上動態的畫面。
例如針對遊戲客戶端,用戶在玩客戶端遊戲時通常是採用全屏模式並進行遊戲直播,則可以採用應用源框架數據創建的遊戲客戶端的應用界面,基於應用界面生成直播數據;依據應用映射架構數據調用所述目標接口,繪製所述直播返回信息對應的信息反饋圖像,將信息反饋圖像和應用界面進行疊加顯示,從而用戶看起來就是在全屏遊戲下,顯示了直播彈幕、禮物以及私信等數據,提高用戶體驗以及直播的靈活性。
步驟212,依據應用映射架構數據調用第一接口,繪製在所述目標應用的應用界面上疊加所述直播返回信息對應信息反饋圖像的顯示圖像,渲染所述顯示圖像。
上述採用分別繪製應用界面和信息反饋圖像後疊加顯示的方式,實際處理中,還可以依據應用映射架構數據調用所述第一接口,直接繪製疊加的顯示圖像,即直接繪製應用界面和信息反饋圖像已疊加的顯示圖像數據。從而後續直播過程中基於疊加的顯示圖像進行直播,可以直接返回已添加彈幕、禮物等數據的直播數據,不用在服務側為直播數據疊加彈幕等數據。
步驟214,依據顯示圖像的時間信息,在終端屏幕上依次展示顯示圖像,構成所述目標應用的直播界面。
獲取每個顯示圖像的時間信息即獲取每個顯示圖像的時間戳,按照該時間戳對顯示圖像進行組合,在終端屏幕上依次展示各幀顯示圖像,構成所述目標應用的直播界面。
步驟216,依據所述應用映射架構數據調用第二接口,獲取所述顯示圖像。
步驟218,依據顯示圖像的時間信息,將所述各顯示圖像構成所述直播視頻數據。
步驟220,上傳所述直播視頻數據。
本實施例再直播端直接生成攜帶彈幕數據、禮物等數據的直播圖像,無需在伺服器合成。因此可以依據所述應用映射架構數據調用第二接口,獲取所述顯示圖像,按照顯示圖像的時間信息對顯示圖像進行合成,生成響應的直播視頻數據,上傳該直播視頻數據。
本申請實施例中,所述直播返回信息包括:彈幕數據、業務數據和/或非公開信息。其中,業務數據依據具體業務確定,例如遊戲業務則業務數據為禮物等電子物品數據,非公開信息包括給主播發送的私信、權限問題等數據,該權限問題可以是購買的權限後的提問數據。因此直播返回信息對應的信息反饋圖像包括公開圖像和私密圖像,其中,所述公開圖像依據彈幕數據和業務數據繪製,所述私密圖像依據所述非公開信息繪製。
因此在獲取顯示圖像上傳直播數據時,可以獲取由所述目標應用的應用界面和公開圖像疊加生成的顯示圖像,生成不攜帶非公開信息的直播數據。其中,針對步驟208-210這類分別繪製圖像再疊加的方式,可以直接獲取分別繪製的應用界面和公開圖像疊加生成的顯示圖像;對於步驟212這類直接繪製疊加圖像的方式,可以繪製應用界面和公開圖像的疊加圖像,而對於私密圖像單獨繪製後再疊加,從而保證直播數據不攜帶非公開信息。
本實施例中,上述圖像繪製是基於目標應用的架構原理執行的,因此,可以預先確定目標應用的架構以及在架構下的接口、函數等信息,然後再全屏模式下提供圖像繪製。
一個可選實施例中,可以確定目標應用的架構。
本實施例以遊戲客戶端作為目標應用為例,該遊戲客戶端可以採用DX的3D引擎,該3D引擎在Windows作業系統中是基於硬體圖形處理器(Graphics Processing Unit,GPU)加速,直接從內存讀寫,可以規避消息機制。
參照圖3,示出了根據本發明另一個實施例的另一種直播數據處理方法實施例的步驟流程圖,具體可以包括如下步驟:
步驟302,對系統中創建函數進行監控,在所述創建函數創建目標對象時掛起所述目標對象。
預先對系統進行監控,監控系統的創建函數如crate函數,當調用該創建函數創建目標對象時,可以掛起該目標對象,即在初始化目標對象時設置第一鉤子程序,從而在目標對象的源頭設置鉤子程序。該目標對象為系統的重要組件對象,用於執行各種應用所需的操作。
本發明實施例中,可以在各種系統的各種目標對象設置鉤子程序,本實施例中以組件對象模型(Component Object Model,COM)作為目標對象為例,可以在創建函數初始化COM組件時,為COM組件設置第一鉤子程序,從而在COM組件的源頭設置鉤子,實現對COM組件的接管。
步驟304,在調用所述目標對象創建目標應用時截獲應用信息。
系統中部分應用的創建、運行等均需要目標對象的參與,因此在目標對象的源頭設置鉤子,就可以截獲各個針對目標對象的調用,從而確定所需的信息。本實施例中,應用在創建需要調用目標對象執行操作,因此可以通過第一鉤子程序截獲調用所述目標對象時的應用信息,該應用信息用於指示創建該目標應用的應用源架構數據。即在目標應用創建時需要調用目標對應的一系列接口獲取數據,並創建所需的函數對象等,通過該接口調用和函數對象可以確定出該目標應用的應用源架構數據,從而啟動並運行該目標應用。
例如,遊戲客戶端採用DirectX(Direct eXtension,DX)的3D引擎,該DirectX是由微軟公司創建的多媒體編程接口,由C++程式語言實現,遵循COM組件。因此在啟動運行該遊戲客戶端,涉及到3D引擎操作時,需要調用COM組件,通過在COM組件設置的第一鉤子引擎,可以獲取調用COM組件的應用信息,從而確定出該遊戲客戶端的3D引擎的源架構數據,即獲知3D引擎運行所需的各種接口以及函數對象等。
步驟306,在創建對象時,依據所述應用信息創建映射對象並指向源內存地址,再創建源對象並指向所述源內存地址。
步驟308,在各源對象對應的各接口分別設置鉤子程序。
步驟310,依據映射對象和接口調用,搭建應用映射架構數據。
步驟312,依據源對象和接口調用,搭建應用源架構數據。
本實施例中,目標對象創建目標應用相關內容時,可以創建所需對象依據確定需要調用的接口等信息,本實施例中,採用映射架構數據搭建一個與應用源架構數據相同的外殼,但其實質內容仍然由應用源架構數據提供。因此,可以在該應用信息需要創建對象時,確定所需創建對象的相關信息,創建一個映射對象指向對應的源內存地址,然後創建源對象並指向所述源內存地址。即依據該應用信息確定所需定義的內容,定義一個具有含義的映射對象,再定義原本需要定義的源對象,並且在各源對象所需的接口處分別設置鉤子程序,從而針對該目標應用可以設置一組鉤子程序,實現在入口級掛鈎子的調用方式。從而採用映射對象和接口調用搭建應用映射架構數據,採用源對象和接口調用搭建應用源架構數據,從而得到與該應用源架構數據相同的外殼即應用映射架構數據,而該應用映射架構數據實際定義、調用的內容可以與應用源架構數據對應,還可以映射到應用源架構數據中處理。
例如,遊戲客戶端的3D引擎調用COM組件時,截獲調用信息,例如調用信息指示創建函數A,該函數A調用接口B和函數C,函數C調用接口D、E,可以向創建映射函數A'和C',並且在接口B、D、E處分別設置鉤子程序以及建立映射函數的對應關係,再創建源函數A和C以及與接口B、D、E的對應關係,從而搭建一個與遊戲客戶端的源架構數據相同的外殼即映射架構數據,通過該映射架構數據可以映射到源架構數據。
步驟314,基於所述應用映射架構數據,依據所述接口信息確定用於繪製顯示圖像的至少一個目標接口。
在搭建應用映射架構數據時可以確定該目標應用所需調用的各種接口,以及各接口的功能等信息,因此可以確定出所需的至少一個目標接口,該目標接口包括用於繪製、渲染、顯示圖像的各種接口。即可以確定出與圖像相關的一系列目標接口,且各目標接口均注入了鉤子程序,從而後續可以直接通過鉤子程序調用目標接口。目標接口包括第一接口和第二接口。
從而能夠在初始化時目標應用時截獲應用信息,搭建所述目標應用的應用映射架構數據和應用源架構數據,即分析出了目標應用的架構,便於後續基於該架構執行所需操作。
步驟316,基於目標應用進行直播,獲取直播返回信息。
步驟318,依據應用映射架構數據調用第一接口,繪製所述直播返回信息對應的信息反饋圖像,並獲取基於應用源框架數據繪製的應用界面。
步驟320,將所述彈幕圖像和應用界面進行疊加並渲染得到顯示圖像。
目標應用運行後可以採用全屏模式,全屏模式下該目標應用的顯示界面即界面圖像會鋪滿整個窗口,且焦點位於該目標應用中。其中,在系統底層以及屏幕顯示的角度,在系統中顯示的界面、窗口都可以看作是一幀圖像。本實施例依據上述應用映射架構數據,基於該目標應用的開發技術原理來繪製所述直播返回信息對應的信息反饋圖像。
因此基於應用源框架數據繪製目標應用的應用界面,以及獲取直播返回信息後,可以採用預先注入的鉤子程序調用第一接口依據應用映射架構數據對應圖像繪製、渲染、顯示等方式,繪製所述直播返回信息對應的信息反饋圖像,獲取基於應用源框架數據創建的應用界面,將所述信息反饋圖像和應用界面進行疊加並渲染得到顯示圖像,從而得到顯示有彈幕數據、禮物等直播返回信息的圖像。對於每一幀圖像採用上述方式繪製、疊加、渲染,從而得到屏幕上動態的畫面。
例如針對遊戲客戶端,用戶在玩客戶端遊戲時通常是採用全屏模式並進行遊戲直播,則可以採用應用源框架數據創建的遊戲客戶端的應用界面,基於應用界面生成直播數據;依據應用映射架構數據調用所述目標接口,繪製所述直播返回信息對應的信息反饋圖像,將信息反饋圖像和應用界面進行疊加顯示,從而用戶看起來就是在全屏遊戲下,顯示了直播彈幕、禮物以及私信等數據,提高用戶體驗以及直播的靈活性。
步驟322,依據應用映射架構數據調用第一接口,繪製在所述目標應用的應用界面上疊加所述直播返回信息對應信息反饋圖像的顯示圖像,渲染所述顯示圖像。
上述採用分別繪製應用界面和信息反饋圖像後疊加顯示的方式,實際處理中,還可以依據應用映射架構數據調用所述第一接口,直接繪製疊加的顯示圖像,即直接繪製應用界面和信息反饋圖像已疊加的顯示圖像數據。從而後續直播過程中基於疊加的顯示圖像進行直播,可以直接返回已添加彈幕、禮物等數據的直播數據,不用在服務側為直播數據疊加彈幕等數據。
步驟324,依據顯示圖像的時間信息,在終端屏幕上依次展示顯示圖像,構成所述目標應用的直播界面。
獲取每個顯示圖像的時間信息即獲取每個顯示圖像的時間戳,按照該時間戳對顯示圖像進行組合,在終端屏幕上依次展示各幀顯示圖像,構成所述目標應用的直播界面。
步驟326,依據所述應用映射架構數據調用第二接口,獲取所述顯示圖像。
步驟328,依據顯示圖像的時間信息,將所述各顯示圖像構成所述直播視頻數據。
步驟330,上傳所述直播視頻數據。
本實施例再直播端直接生成攜帶彈幕數據、禮物等數據的直播圖像,無需在伺服器合成。因此可以依據所述應用映射架構數據調用第二接口,獲取所述顯示圖像,按照顯示圖像的時間信息對顯示圖像進行合成,生成響應的直播視頻數據,上傳該直播視頻數據。
例如通過COM組件初始化遊戲客戶端時,確定對應源架構數據和映射架構數據,依據該遊戲客戶端在繪製、渲染、顯示圖像所需的目標接口。初始化完成後可以運行遊戲客戶端並進入全屏模式。用戶在玩遊戲的過程中進行遊戲直播,對於直播的彈幕等數據,可以基於3D引擎的圖像繪製原理、調用目標接口繪製相應的第一顯示圖像,將該第一圖像疊加到遊戲客戶端顯示界面圖像上顯示,或者直接繪製疊加的圖像替代遊戲客戶端顯示界面圖像。
實際上在目標應用運行過程中,目標應用的界面圖像即第二顯示圖像可以是每幀都繪製顯示,響應直播返回信息的第二顯示圖像也是每幀繪製後疊加顯示在第二顯示圖像上的,因此即使用戶角度圖像是靜止的,而在系統角度是每幀均繪製相應的圖像。以遊戲客戶端為例,所顯示的遊戲界面圖像是每幀繪製、渲染顯示的,因此該遊戲界面圖像上顯示的第一顯示圖像也是每幀繪製渲染後,疊加到相應位置的遊戲界面圖像上顯示的。
從而通過調用底層窗口直接繪製圖像並顯示的方式,可以繞過系統的通信機制(如Windows的消息機制),從而對於直播返回信息的顯示以及操縱也可以正常執行且不會退出全屏,在保證用戶正常操作的基礎上,提高了用戶體驗。
對於方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發明實施例並不受所描述的動作順序的限制,因為依據本發明實施例,某些步驟可以採用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬於優選實施例,所涉及的動作並不一定是本發明實施例所必須的。
在上述實施例的基礎上,本實施例還提供了一種直播數據處理裝置。
參照圖4,示出了根據本發明一個實施例的一種直播數據處理裝置實施例的結構框圖,具體可以包括如下模塊:
獲取模塊402,用於在基於目標應用進行直播的過程中,獲取直播返回信息,其中,所述直播返回信息用於反饋除視頻數據外的信息,所述直播返回信息包括彈幕數據。
渲染顯示模塊404,用於渲染所述目標應用的應用界面和直播返回信息疊加的顯示圖像,依據所述顯示圖像展示直播界面。
直播返回模塊406,用於依據所述直播界面生成具有彈幕數據的直播視頻數據,上傳所述直播視頻數據。
在基於目標應用進行直播的過程中,獲取直播返回信息,其中,所述直播返回信息用於反饋除直播視頻數據外的信息,所述直播返回信息包括彈幕數據,渲染所述目標應用的應用界面和直播返回信息疊加的顯示圖像,依據所述顯示圖像展示直播界面,依據所述直播界面生成具有彈幕數據的直播視頻數據,上傳所述直播視頻數據從而在直播的主播端直接生成帶有彈幕等數據的直播視頻數據,無需在服務端進行直播視頻和彈幕等直播返回信息的合成,減少時延。
參照圖5,示出了根據本發明另一個實施例的一種直播數據處理裝置實施例的結構框圖,具體可以包括如下模塊:
初始化模塊408,用於預先通過掛起的目標對象,在初始化目標應用創建應用映射架構數據和應用源架構數據;依據所述應用映射架構數據確定至少一個目標接口。
獲取模塊402,用於在基於目標應用進行直播的過程中,獲取直播返回信息,其中,所述直播返回信息用於反饋除視頻數據外的信息,所述直播返回信息包括彈幕數據。
渲染顯示模塊404,用於渲染所述目標應用的應用界面和直播返回信息疊加的顯示圖像,依據所述顯示圖像展示直播界面。
直播返回模塊406,用於依據所述直播界面生成具有彈幕數據的直播視頻數據,上傳所述直播視頻數據。
一個可選實施例中,所述渲染顯示模塊404,包括:渲染子模塊4042,用於依據應用映射架構數據調用第一接口,繪製所述直播返回信息對應的信息反饋圖像,並獲取基於應用源框架數據繪製的應用界面;將所述信息反饋圖像和應用界面進行疊加並渲染得到顯示圖像;其中,所述應用映射架構數據是依據所述目標應用的應用源框架數據確定的。
另一個可選實施例中,所述渲染顯示模塊404,包括:繪製子模塊4044,用於依據應用映射架構數據調用第一接口,繪製在所述目標應用的應用界面上疊加所述直播返回信息對應信息反饋圖像的顯示圖像,渲染所述顯示圖像。
所述繪製顯示模塊404,包括:顯示子模塊4046,用於依據顯示圖像的時間信息,在終端屏幕上依次展示顯示圖像,構成所述目標應用的直播界面。
所述直播返回模塊406,包括:
獲取子模塊4062,用於依據所述應用映射架構數據調用第二接口,獲取所述顯示圖像。
直播生成子模塊4064,用於依據顯示圖像的時間信息,將所述各顯示圖像構成所述直播視頻數據。
其中,所述直播返回信息還包括:業務數據和/或非公開信息。所述直播返回信息對應的信息反饋圖像包括公開圖像和私密圖像,其中,所述公開圖像依據彈幕數據和業務數據繪製,所述私密圖像依據所述非公開信息繪製。
所述獲取子模塊4062,用於獲取由所述目標應用的應用界面和公開圖像疊加生成的顯示圖像。
所述初始化模塊408,包括:
掛起子模塊4082,用於對系統中創建函數進行監控,在所述創建函數創建目標對象時掛起所述目標對象。
架構搭建子模塊4084,用於在所述目標對象初始化目標應用創建應用,依據所述應用信息確定映射對象和接口調用,搭建應用映射架構數據,再依據所述應用信息確定源對象和接口調用,搭建應用源架構數據。
其中,架構搭建子模塊4084,還用於在創建對象時,依據所述應用信息創建映射對象並指向源內存地址,再創建源對象並指向所述源內存地址;在調用接口時,依據所述應用信息在對應各接口處設置一組鉤子程序,並確定各接口的接口信息。
所述初始化模塊408,還包括:接口分析子模塊4086,用於基於所述應用映射架構數據,依據所述接口信息確定用於繪製顯示圖像的至少一個目標接口。
從而通過調用底層窗口直接繪製圖像並顯示的方式,可以繞過系統的通信機制(如Windows的消息機制),從而對於直播返回信息的顯示以及操縱也可以正常執行且不會退出全屏,在保證用戶正常操作的基礎上,提高了用戶體驗。
對於裝置實施例而言,由於其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
在此提供的算法和顯示不與任何特定計算機、虛擬系統或者其它設備固有相關。各種通用系統也可以與基於在此的示教一起使用。根據上面的描述,構造這類系統所要求的結構是顯而易見的。此外,本發明也不針對任何特定程式語言。應當明白,可以利用各種程式語言實現在此描述的本發明的內容,並且上面對特定語言所做的描述是為了披露本發明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節。然而,能夠理解,本發明的實施例可以在沒有這些具體細節的情況下實踐。在一些實例中,並未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
類似地,應當理解,為了精簡本公開並幫助理解各個發明方面中的一個或多個,在上面對本發明的示例性實施例的描述中,本發明的各個特徵有時被一起分組到單個實施例、圖、或者對其的描述中。然而,並不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發明要求比在每個權利要求中所明確記載的特徵更多的特徵。更確切地說,如下面的權利要求書所反映的那樣,發明方面在於少於前面公開的單個實施例的所有特徵。因此,遵循具體實施方式的權利要求書由此明確地併入該具體實施方式,其中每個權利要求本身都作為本發明的單獨實施例。
本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變並且把它們設置在與該實施例不同的一個或多個設備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特徵和/或過程或者單元中的至少一些是相互排斥之外,可以採用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特徵以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特徵可以由提供相同、等同或相似目的的替代特徵來代替。
此外,本領域的技術人員能夠理解,儘管在此所述的一些實施例包括其它實施例中所包括的某些特徵而不是其它特徵,但是不同實施例的特徵的組合意味著處於本發明的範圍之內並且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發明的各個部件實施例可以以硬體實現,或者以在一個或者多個處理器上運行的軟體模塊實現,或者以它們的組合實現。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數位訊號處理器(DSP)來實現根據本發明實施例的直播數據處理方法和裝置設備中的一些或者全部部件的一些或者全部功能。本發明還可以實現為用於執行這裡所描述的方法的一部分或者全部的設備或者裝置程序(例如,電腦程式和電腦程式產品)。這樣的實現本發明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從網際網路網站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應該注意的是上述實施例對本發明進行說明而不是對本發明進行限制,並且本領域技術人員在不脫離所附權利要求的範圍的情況下可設計出替換實施例。在權利要求中,不應將位於括號之間的任何參考符號構造成對權利要求的限制。單詞「包含」不排除存在未列在權利要求中的元件或步驟。位於元件之前的單詞「一」或「一個」不排除存在多個這樣的元件。本發明可以藉助於包括有若干不同元件的硬體以及藉助於適當編程的計算機來實現。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬體項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
本發明公開了A1、一種直播數據處理方法,包括:
在基於目標應用進行直播的過程中,獲取直播返回信息,其中,所述直播返回信息用於反饋除直播視頻數據外的信息,所述直播返回信息包括彈幕數據;
渲染所述目標應用的應用界面和直播返回信息疊加的顯示圖像,依據所述顯示圖像展示直播界面;
依據所述直播界面生成具有彈幕數據的直播視頻數據,上傳所述直播視頻數據。
A2、如A1所述的方法,渲染所述目標應用的應用界面和直播返回信息疊加的顯示圖像,包括:
依據應用映射架構數據調用第一接口,繪製所述直播返回信息對應的信息反饋圖像,並獲取基於應用源框架數據繪製的應用界面;
將所述信息反饋圖像和應用界面進行疊加並渲染得到顯示圖像;
其中,所述應用映射架構數據是依據所述目標應用的應用源框架數據確定的。
A3、如A1所述的方法,渲染所述目標應用的應用界面和直播返回信息疊加的顯示圖像,包括:
依據應用映射架構數據調用第一接口,繪製在所述目標應用的應用界面上疊加所述直播返回信息對應信息反饋圖像的顯示圖像,渲染所述顯示圖像。
A4、如A1所述的方法,依據所述顯示圖像展示直播界面,包括:
依據顯示圖像的時間信息,在終端屏幕上依次展示顯示圖像,構成所述目標應用的直播界面。
A5、如A4所述的方法,依據所述直播界面生成具有彈幕數據的直播視頻數據,包括:
依據所述應用映射架構數據調用第二接口,獲取所述顯示圖像;
依據顯示圖像的時間信息,將所述各顯示圖像構成所述直播視頻數據。
A6、如A1-A5任一所述的方法,所述直播返回信息還包括:業務數據和/或非公開信息。
A7、如A6所述的方法,所述直播返回信息對應的信息反饋圖像包括公開圖像和私密圖像,其中,所述公開圖像依據彈幕數據和業務數據繪製,所述私密圖像依據所述非公開信息繪製。
A8、如A7所述的方法,獲取所述顯示圖像,包括:
獲取由所述目標應用的應用界面和公開圖像疊加生成的顯示圖像。
A9、如A2-A5任一所述的方法,還包括:
預先通過掛起的目標對象,在初始化所述目標應用創建應用映射架構數據和應用源架構數據;
依據所述應用映射架構數據確定至少一個目標接口。
A10、如A9所述的方法,所述預先通過掛起的目標對象,在初始化目標應用創建應用映射架構數據和應用源架構數據,包括:
對系統中創建函數進行監控,在所述創建函數創建目標對象時掛起所述目標對象;
在所述目標對象初始化目標應用時,依據所述應用信息確定映射對象和接口調用,搭建應用映射架構數據,再依據所述應用信息確定源對象和接口調用,搭建應用源架構數據。
A11、如A10所述的方法,還包括:
在創建對象時,依據所述應用信息創建映射對象並指向源內存地址,再創建源對象並指向所述源內存地址;
在調用接口時,依據所述應用信息在對應各接口處設置一組鉤子程序,並確定各接口的接口信息。
A12、如A11所述的方法,依據所述應用映射架構數據確定至少一個目標接口,包括:
基於所述應用映射架構數據,依據所述接口信息確定用於繪製顯示圖像的至少一個目標接口。
本發明還公開了B13、一種直播數據處理裝置,包括:
獲取模塊,用於在基於目標應用進行直播的過程中,獲取直播返回信息,其中,所述直播返回信息用於反饋除視頻數據外的信息,所述直播返回信息包括彈幕數據;
渲染顯示模塊,用於渲染所述目標應用的應用界面和直播返回信息疊加的顯示圖像,依據所述顯示圖像展示直播界面;
直播返回模塊,用於依據所述直播界面生成具有彈幕數據的直播視頻數據,上傳所述直播視頻數據。
B14、如B13所述的裝置,所述渲染顯示模塊,包括:
渲染子模塊,用於依據應用映射架構數據調用第一接口,繪製所述直播返回信息對應的信息反饋圖像,並獲取基於應用源框架數據繪製的應用界面;將所述信息反饋圖像和應用界面進行疊加並渲染得到顯示圖像;其中,所述應用映射架構數據是依據所述目標應用的應用源框架數據確定的。
B15、如B13所述的裝置,所述渲染顯示模塊,包括:
繪製子模塊,用於依據應用映射架構數據調用第一接口,繪製在所述目標應用的應用界面上疊加所述直播返回信息對應信息反饋圖像的顯示圖像,渲染所述顯示圖像。
B16、如B13所述的裝置,所述繪製顯示模塊,包括:
顯示子模塊,用於依據顯示圖像的時間信息,在終端屏幕上依次展示顯示圖像,構成所述目標應用的直播界面。
B17、如B16所述的裝置,所述直播返回模塊,包括:
獲取子模塊,用於依據所述應用映射架構數據調用第二接口,獲取所述顯示圖像;
直播生成子模塊,用於依據顯示圖像的時間信息,將所述各顯示圖像構成所述直播視頻數據。
B18、如B13-B17任一所述的裝置,所述直播返回信息還包括:業務數據和/或非公開信息。
B19、如B18所述的裝置,所述直播返回信息對應的信息反饋圖像包括公開圖像和私密圖像,其中,所述公開圖像依據彈幕數據和業務數據繪製,所述私密圖像依據所述非公開信息繪製。
B20、如B18所述的裝置,
所述獲取子模塊,用於獲取由所述目標應用的應用界面和公開圖像疊加生成的顯示圖像。
B21、如B14-B17任一所述的裝置,還包括:
初始化模塊,用於預先通過掛起的目標對象,在初始化目標應用創建應用映射架構數據和應用源架構數據;依據所述應用映射架構數據確定至少一個目標接口。
B22、如B21所述的裝置,初始化模塊,包括:
掛起子模塊,用於對系統中創建函數進行監控,在所述創建函數創建目標對象時掛起所述目標對象;
架構搭建子模塊,用於在所述目標對象初始化目標應用創建應用,依據所述應用信息確定映射對象和接口調用,搭建應用映射架構數據,再依據所述應用信息確定源對象和接口調用,搭建應用源架構數據。
B23、如B22所述的裝置,
架構搭建子模塊,還用於在創建對象時,依據所述應用信息創建映射對象並指向源內存地址,再創建源對象並指向所述源內存地址;在調用接口時,依據所述應用信息在對應各接口處設置一組鉤子程序,並確定各接口的接口信息。
B24、如B23所述的裝置,初始化模塊,還包括:
接口分析子模塊,用於基於所述應用映射架構數據,依據所述接口信息確定用於繪製顯示圖像的至少一個目標接口。