CN112911329B - 窗口直播方法、装置、电子设备和计算机可读存储介质 - Google Patents

窗口直播方法、装置、电子设备和计算机可读存储介质 Download PDF

Info

Publication number
CN112911329B
CN112911329B CN202110152286.5A CN202110152286A CN112911329B CN 112911329 B CN112911329 B CN 112911329B CN 202110152286 A CN202110152286 A CN 202110152286A CN 112911329 B CN112911329 B CN 112911329B
Authority
CN
China
Prior art keywords
window
target
live
image
display
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110152286.5A
Other languages
English (en)
Other versions
CN112911329A (zh
Inventor
黄汉铨
杨剑飞
周浩
范赐丰
梁伟鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Huya Technology Co Ltd
Original Assignee
Guangzhou Huya Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Huya Technology Co Ltd filed Critical Guangzhou Huya Technology Co Ltd
Priority to CN202110152286.5A priority Critical patent/CN112911329B/zh
Publication of CN112911329A publication Critical patent/CN112911329A/zh
Application granted granted Critical
Publication of CN112911329B publication Critical patent/CN112911329B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Abstract

本发明实施例提出一种窗口直播方法、装置、电子设备和计算机可读存储介质,涉及直播技术领域。其中,上述窗口直播方法应用于电子设备,所述电子设备与直播服务器通信连接,上述窗口直播方法包括:获取显示界面图像;其中,所述显示界面图像中包括目标窗口;从所述显示界面图像中裁剪出目标图像区域;其中,所述目标图像区域为呈现所述目标窗口的图像区域;根据所述目标图像区域生成直播图像帧,并向直播服务器发出。本方案通过简单的算法实现对窗口内容的获取,提高窗口内容采集的普适性,兼容性高。

Description

窗口直播方法、装置、电子设备和计算机可读存储介质
技术领域
本发明涉及直播技术领域,具体而言,涉及一种窗口直播方法、装置、电子设备和计算机可读存储介质。
背景技术
随着互联网技术的不断发展,人们日常的娱乐活动也越来越丰富,观看直播已成为一种新兴的网络娱乐活动,且深受大众喜爱。
直播可提供的内容形式多样,除了以人为主题的直播内容外,还有以显示窗口为主题的直播内容,比如,游戏直播。针对窗口的直播,实现起来存在很多问题,比如,相关技术中由于需要通过读取窗口的句柄获取窗口展示内容,在部分系统环境下,由于窗口读取句柄获取不成功,而无法成功的获取到对应的窗口展示内容。
发明内容
有鉴于此,本发明的目的在于提供一种窗口直播方法、装置、电子设备和计算机可读存储介质。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明提供一种窗口直播方法,应用于电子设备,所述电子设备与直播服务器通信连接,所述窗口直播方法包括:
获取显示界面图像;其中,所述显示界面图像中包括目标窗口;
从所述显示界面图像中裁剪出目标图像区域;其中,所述目标图像区域为呈现所述目标窗口的图像区域;
根据所述目标图像区域生成直播图像帧,并向直播服务器发出。
在可选的实施方式中,所述根据所述目标图像区域生成直播图像帧的步骤包括:
利用所述目标图像区域中的像素点,对存储纹理资源进行更新;其中,所述存储纹理资源与目标窗口匹配;
根据更新后的所述存储纹理资源,生成所述直播图像帧。
在可选的实施方式中,所述窗口直播方法还包括:
在所述目标窗口出现变化的情况下,释放所述存储纹理资源;
重建变化后的目标窗口所对应的存储纹理资源。
在可选的实施方式中,所述重建变化后的目标窗口所对应的存储纹理资源,包括:
获取变化后的目标窗口的位置信息及显示大小信息;
根据所述目标窗口的位置信息及显示大小信息,创建对应的存储纹理资源。
在可选的实施方式中,获取变化后的目标窗口的显示大小信息包括:
在所述目标窗口横跨多个显示界面的情况下,获取每个所述显示界面下目标窗口所占的显示区域;
从多个所述显示区域中确定目标显示区域,并将目标显示区域的面积大小确定为变化后的目标窗口的显示大小信息。
在可选的实施方式中,所述获取显示界面图像的步骤包括:
在选定的目标窗口满足预设条件的情况下,通过设备上下文获取函数,读取由至少一个显示界面所组成的所述显示界面图像。
在可选的实施方式中,所述预设条件包括以下至少一项:
所述目标窗口的状态为可见;
所述目标窗口未被其他窗口遮挡。
在可选的实施方式中,所述从所述显示界面图像中裁剪出目标图像区域的步骤包括:
获取所述目标窗口在显示界面图像中的位置信息及显示大小信息;
依据所述位置信息及显示大小信息,确定出目标图像区域;
利用位块转换函数,将所述目标图像区域的像素点裁剪出来。
第二方面,本发明提供一种窗口直播装置,应用于电子设备,所述电子设备与直播服务器通信连接,所述窗口直播装置包括:
获取模块,用于获取显示界面图像;其中,所述显示界面图像中包括目标窗口;
裁剪模块,用于从所述显示界面图像中裁剪出目标图像区域;其中,所述目标图像区域为呈现所述目标窗口的图像区域;
直播模块,用于根据所述目标图像区域生成直播图像帧,并向直播服务器发出。
第三方面,本发明提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现前述实施方式任一所述的方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述实施方式中任一项所述的方法。
与现有技术相比,本发明实施例提供的窗口直播方法通过获取显示界面图像,上述显示界面图像中包括目标窗口,从显示界面图像中裁剪出呈现所述目标窗口的目标图像区域,根据目标图像区域生成直播图像帧,并向直播服务器发出。无需读取目标窗口的句柄,也可获取显示界面图像中的目标窗口,如此,无论是采用何种绘制机制所创建的窗口,还是于不同系统环境下,都能够普适地获取到窗口呈现内容,提高窗口直播方法的通用性,节约窗口直播的实现成本。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的应用场景的示意图。
图2示出了本发明实施例提供的电子设备示意图。
图3示出了本发明实施例提供的窗口直播方法的步骤流程图。
图4示出了本发明实施例提供的获取目标窗口所对应的目标图像区域的示例图。
图5示出了本发明实施例提供的步骤S103的步骤示例图。
图6示出了本发明实施例提供的窗口直播方法的步骤流程图的另一部分。
图7示出了本发明实施例提供的目标窗口横跨多个显示界面的示例图。
图8示出了本发明实施例提供的窗口直播装置的示意图。
图标:100-电子设备;110-存储器;120-处理器;130-通信模块;140-显示屏;400-窗口直播装置;401-获取模块;402-裁剪模块;403-直播模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
(Device Context,DC)设备描述表,又称设备上下文,或者设备环境,是由windows所提供,用于应用程序和物理设备之间进行交互,从而提供了应用程序设计的平台无关性。
另外,DC是一个Windows数据结构,它包含了电子设备的绘制属性。不同显示区域所对应的DC可以是不同的。同一显示区域的DC在不同的时间点是不会变化的。上述显示区域可以是整个显示界面,也可以是特定窗口,还可以用户在显示界面上选定的特定区域。
此处,引入一个DC资源数据的概念,上述DC资源数据具有数据结构和数据内容两部分。通过显示区域的DC资源数据可以表征该显示区域的实际呈现的画面。显然地,同一显示区域的DC资源数据所对应的数据结构不会随时间变化,但是DC资源数据所对应的数据内容会随着显示区域呈现画面的变化而变化。比如,电脑桌面更换桌面壁纸前后,电脑桌面所对应的DC资源数据的数据结构不变,但是数据内容会对应发生变化。
GetDC,设备上下文获取函数,该函数用于检索显示界面或者特定窗口的DC资源数据的句柄,以后可以在GDI函数中使用该句柄来在设备上下文环境中绘图。
BitBlt,位块转换函数,是一个计算机函数,该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。
DPI:图像每英寸长度内的像素点数。
针对窗口的直播实现的关键步骤在于采集到窗口呈现的内容,上述窗口为呈现应用程序的交互界面的窗口(简称:应用程序窗口)。然而,用户用于直播的电子设备的系统版本十分多样,比如,Windows平台就存在不同的操作版本,而不同的系统版本使用的管理窗口的方式也有所区别,应用程序窗口也在新的操作系统技术基础上,开发不一样的界面绘制技术。现阶段,对于应用程序的窗口显示内容的采集技术有下面几种:
1)利用GetDC/BitBlt的技术实现应用程序窗口的图像采集,也即,通过应用程序窗口的句柄,实现窗口图像的采集。但是,该技术对于某些直接在GPU显存上绘制程序,此方法是无法采集到界面图像的,如chrome浏览器,office软件等。
2)基于PrintWindow的技术实现应用程序窗口的图像采集。通过调用PrintWindow的API,实现应用程序窗口的采集。但是,该技术对于不响应WM_PRINTCLIENT消息的程序,是无法采集的,如一些游戏界面等。
3)基于hook的技术实现应用程序窗口的图像采集。针对GDI,DX,DXGI,DWM等各类的hook技术。但是,该技术过于复杂,不稳定,容易造成所采集的程序出现崩溃问题,而且针对不同的程序需要采用不同的hook技术。
显然,现有的窗口内容采集方法中没有一个通用便捷的方案,有些是对于DX绘制的无法采集;有些是在特定系统下无法实现;有些是没有太好的通用性,需要依赖具体程序窗口的底层技术实现。
为了实现一种普适性且简单稳定的窗口内容直播,本发明实施例提供了一种窗口直播方法、装置、电子设备和计算机可读存储介质。
上述窗口直播方法及装置可以应用于图1所示的直播场景。如图1所示,直播客户端(又称为主播)采集直播图像帧生成直播视频数据,以视频流的形式发送给视频服务器。由视频服务器对直播视频数据进行相关处理后,发送至对应的观众客户端。上述观众客户端可以是进入直播客户端所创建的直播间的观众所使用的客户端。
在一些实施例中,上述直播客户端可以是能够视频服务器获取主持直播权限、创建直播间的客户端,上述观众客户端可以是能够视频服务器获取观看直播权限、访问直播间的客户端。
在一些实施例中,上述直播客户端和观众客户端本质上都是从视频服务器获取服务的客户端,二者区别仅在于直播活动中所承担的角色不同。每一个客户端都可以根据用户的选择在直播客户端与观众客户端之间切换。比如,用户A使用客户端A进行直播,那么客户端A为直播客户端,而进入用户A所创建的直播间的用户B所使用的客户端B为观众客户端。在用户A下播后,使用客户端A进入用户B所创建的直播间时,正在进行直播的用户B所使用的客户端B为直播客户端,客户端A为观众客户端。
本发明实施例所提供的窗口直播方法及装置可以应用于图1中的直播客户端。
请参照图2,是电子设备100的方框示意图。在一些实施例中,上述电子设备100安装有直播客户端的设备。在一些实施例中,上述电子设备100还可以是安装有客户端且在直播过程中承担主播角色的设备。
上述电子设备100可以是具有图像显示功能的设备,可以是但不限于个人电脑(personal computer,PC)、可模拟PC的手机、智能家居设备、智能移动设备、虚拟现实设备、或增强现实设备等,也可以是平板计算机、膝上型计算机等。
上述电子设备100包括存储器110、处理器120、通信模块130及显示屏140。所述存储器110、处理器120、通信模块130及显示屏140各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,存储器110用于存储程序或者数据。所述存储器110可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。
处理器120用于读/写存储器110中存储的数据或程序,并执行相应地功能。
通信模块130用于通过所述网络建立所述服务器与其它通信终端之间的通信连接,并用于通过所述网络收发数据。
显示屏140用于在电子设备100与用户之间提供交互界面。上述交互界面可以是,但不限于是电子设备100所提供的操作界面、不同应用程序运行过程所对应的交互画面。通常不同应用程序的交互画面可以采用窗口的形式进行展示,以方便用户管理多个应用程序的交互画面。
应当理解的是,图2所示的结构仅为服务器的结构示意图,所述服务器还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
请参考图3,图3示出了本发明实施例提供的窗口直播方法。上述窗口直播方法可以包括以下步骤:
步骤S101,获取显示界面图像。
上述显示界面图像可以是上述显示屏140所呈现的显示界面的图像。在电子设备100只具有一个显示屏140的情况下,上述显示界面图像可以该显示屏140的显示界面所呈现的图像数据。
在上述电子设备100可以具有多个显示屏140的情况下,上述显示界面图像可以多个显示屏140的显示界面拼接后所呈现的图像数据。
在一些实施例中,上述获取显示界面图像可以是在直播过程中实时地获取。
当然,为了有效降低资源消耗,提升性能。在另一些实施例中,上述获取显示界面图像可以是在满足特定触发条件的情况下进行。
比如,上述触发条件可以是上述显示界面图像中出现目标窗口,也即出现目标窗口时可以获取上述显示界面图像。
可以理解地,上述目标窗口可以是用户(主播)选中用于产生直播数据的应用程序所对应的窗口。比如,主播要直播如何玩游戏A,那么在电子设备100运行游戏A后,电子设备100的显示屏140上会展示游戏A运行过程中所呈现的交互界面窗口,主播选中该窗口后,该游戏A所对应的窗口则为目标窗口。
再比如,为了避免直播过程中暴露遮挡该目标窗口的其他窗口,从而影响到用户的隐私等问题。上述触发条件还可以是目标窗口满足预设条件。上述预设条件可以包括以下一项或多项的组合:
(1)目标窗口在显示界面图像中可见,也即,目标窗口未被最小化。
(2)目标窗口在显示界面中处于置顶状态,也即,目标窗口未被其他窗口遮挡的情况下。
另外,作为一种实施方式,实现获取显示界面图像的方式可以是通过设备上下文获取函数,读取由至少一个显示界面所组成的显示界面图像。比如,通过GetDC(nullptr)得到电子设备100的显示界面所对应的DC资源地址,然后通过访问该DC资源地址,获取该显示界面的DC资源数据。进一步地,还可以将该DC资源数据拷贝至用户预先选择的待处理缓存空间内,以便对DC资源数据进行处理。
步骤S102,从显示界面图像中裁剪出目标图像区域。
上述目标图像区域为呈现目标窗口的图像区域。
在一些实施例中,可以根据目标窗口在显示界面图像中的位置及尺寸,从显示界面图像中裁剪出目标图像区域。比如,图4所示,目标窗口为窗口a,从得到的显示界面图像中裁剪出窗口a所对应的目标图像区域。
在一些实施例中,上述步骤S102可以是获取目标窗口在显示界面图像中的位置信息及显示大小信息,依据位置信息及显示大小信息,确定出目标图像区域。利用位块转换函数,将目标图像区域的像素点裁剪出来。
作为另一种实施方式,可以通过系统函数直接获取目标窗口所对应的位置及尺寸。根据上述位置及尺寸,从显示界面的DC资源数据的数据内容(比如,显示界面所对应的像素点阵列信息)中获取目标窗口所对应的像素点阵列,并利用位块转换函数将目标窗口所对应的像素点阵列拷贝至选定缓存空间,从而实现裁剪出目标图像区域。
步骤S103,根据目标图像区域生成直播图像帧,并向直播服务器发出。
在一些实施例中,如图5所示,上述步骤S103可以包括以下子步骤:
子步骤S103-1,利用目标图像区域中的像素点,对存储纹理资源进行更新。
上述存储纹理资源也包括数据结构和数据内容两部分。上述存储纹理资源与目标窗口匹配。也即,上述存储纹理资源的数据结构可以根据目标窗口的实际位置及尺寸确定,上述数据内容可以根据目标窗口所对应的目标图像区域的像素点所确定。
可以理解地,在目标窗口的位置及尺寸未改变的情况下,存储纹理资源所对应的数据结构不变,但是目标窗口的显示内容变化的过程中,存储纹理资源所对应的数据内容会随之被更新。
子步骤S103-2,根据更新后的存储纹理资源,生成直播图像帧。
从而,解决了现有窗口采集技术受限于应用程序自身底层绘制技术的问题(比如,由于windows操作系统版本的限制,导致窗口直接由GPU绘制而成,从而不能直接通过GETDC查询到该窗口的DC资源数据)。在保持较好的用户体验基础上(实现简单,稳定),以更好的兼容性(无需得到应用程序的响应),便捷地解决窗口图像采集的问题。
当然,目标窗口的存储纹理资源的数据结构也不是一成不变。比如,在目标窗口被用户拖动、扩大或者缩小时,显示界面上渲染目标窗口所占用的资源也会变化,如此,目标窗口的存储纹理资源的数据结构也变化。
在此情景下,如图6所示,上述窗口直播方法还包括:
步骤S201,在目标窗口出现变化的情况下,释放存储纹理资源。
上述变化可以是目标窗口的中心位置变化、目标窗口的尺寸变化。比如,目标窗口被用户拖动而改变位置,再比如,目标窗口被用户拉动边框,从而扩大或缩小目标窗口尺寸,再比如,目标窗口被用户从最小化状态恢复到正常状态下。
步骤S202,重建变化后的目标窗口所对应的存储纹理资源。
在一些实施例中,上述步骤S202可以是获取变化后的目标窗口的位置信息及显示大小信息,根据目标窗口的位置信息及显示大小信息,创建对应的存储纹理资源。
上述位置信息可以是表征目标窗口在显示界面上的位置的信息,比如,可以是目标窗口的窗口中心位置。上述显示大小信息可以是目标窗口在显示界面上所占面积大小。
在一些场景下,主播不想向观众公开目标窗口中的部分内容,但主播自己需从显示屏140上看到该部分内容时,可以利用电子设备100的多显示屏140的硬件条件,使目标窗口横跨多个显示屏140,将需要向观众展示的窗口部分置于一显示屏140,将不需向观众展示的窗口部分置于另一显示屏140,比如,图7所示。
在此基础上,在一些实施例中,上述获取变化后的目标窗口的显示大小信息还可以是:
首先,在目标窗口横跨多个显示界面的情况下,获取每个显示界面下目标窗口所占的显示区域。
在一些实施例中,每一个显示屏140对应一个显示界面,获取目标窗口在各个显示屏140所对应的显示界面下所占的显示区域。比如,图7中目标窗口中的区域abcd属于目标窗口在第一显示屏140中所占的显示区域,同样目标窗口的区域efgs属于目标窗口在第二显示屏140中所占的显示区域。
其次,从多个显示区域中确定目标显示区域,并将目标显示区域的面积大小确定为变化后的目标窗口的显示大小信息。
在一些实施例中,上述目标显示区域可以是选定显示界面所对应的显示区域。在另一些实施例中,上述目标显示区域还可以是各个显示区域中面积最大的显示区域。
下面以一个应用实例对上述窗口直播方法进行描述:
S1,检验选定的目标窗口在显示屏140的显示界面中是否可见且置顶。如果是,流程进入S2,如果否,结束流程,直至更换目标窗口,或者目标窗口的位置或者状态出现变化。
S2,根据侦测到用户对目标窗口的操作,判断目标窗口是否出现变化。比如,目标窗口的位置和大小出现变化。如果是,流程进入S7。如果否,流程进入S3。
S3,实时地通过GETDC获取显示界面所对应的DC资源数据。该DC资源数据可以表征显示界面图像。每次获取到DC资源数据,流程都会进入S4。
S4,利用目标窗口所对应的位置信息和显示大小信息,从上述DC资源数据中获取目标窗口所对应的像素点阵列。如此,实现从显示界面图像中裁剪出目标图像区域。
S5,利用上述像素点阵列更新目标窗口对应的存储纹理资源。
S6,根据更新后的存储纹理资源生成直播图像帧,并向直播服务器发出,以便直播服务器转发至各个正在观看该直播的观众客户端。
S7,释放目标窗口对应的存储纹理资源。
S8,获取变化后的目标窗口的位置信息及显示大小信息。
S9,根据目标窗口的位置信息及显示大小信息,创建对应的存储纹理资源。然后,流程回到步骤S3。
为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种窗口直播装置400的实现方式,可选地,该窗口直播装置400可以采用上述图2所示的电子设备100的器件结构。进一步地,请参阅图8,图8为本发明实施例提供的一种窗口直播装置400的功能模块图。需要说明的是,本实施例所提供的窗口直播装置400,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该窗口直播装置400包括:获取模块401、裁剪模块402及直播模块403。
获取模块401,用于获取显示界面图像;其中,所述显示界面图像中包括目标窗口。
在一些实施例中,上述步骤S101可以由获取模块401执行。
裁剪模块402,用于从所述显示界面图像中裁剪出目标图像区域;其中,所述目标图像区域为呈现所述目标窗口的图像区域。
在一些实施例中,上述步骤S102可以由裁剪模块402执行。
直播模块403,用于根据所述目标图像区域生成直播图像帧,并向直播服务器发出。
在一些实施例中,上述步骤S103可以由直播模块403执行。
在一些实施例中,上述直播模块403具体用于:
利用所述目标图像区域中的像素点,对存储纹理资源进行更新;其中,所述存储纹理资源与目标窗口匹配;
根据更新后的所述存储纹理资源,生成所述直播图像帧。
在一些实施例中,窗口直播装置400还包括:
释放模块,用于在所述目标窗口出现变化的情况下,释放所述存储纹理资源。
重建模块,用于重建变化后的目标窗口所对应的存储纹理资源。
在一些实施例中,上述创建模块具体用于:
获取变化后的目标窗口的位置信息及显示大小信息;
根据所述目标窗口的位置信息及显示大小信息,创建对应的存储纹理资源。
在一些实施例中,上述重建模块还用于:
在所述目标窗口横跨多个显示界面的情况下,获取每个所述显示界面下目标窗口所占的显示区域;
从多个所述显示区域中确定目标显示区域,并将目标显示区域的面积大小确定为变化后的目标窗口的显示大小信息。
在一些实施例中,上述获取模块401还用于:
在选定的目标窗口满足预设条件的情况下,通过设备上下文获取函数,读取由至少一个显示界面所组成的所述显示界面图像。
在一些实施例中,上述预设条件包括以下至少一项:
所述目标窗口的状态为可见;
所述目标窗口未被其他窗口遮挡。
在一些实施例中,上述裁剪模块402具体用于:获取所述目标窗口在显示界面图像中的位置信息及显示大小信息;依据所述位置信息及显示大小信息,确定出目标图像区域;利用位块转换函数,将所述目标图像区域的像素点裁剪出来。
可选地,上述模块可以软件或固件(Firmware)的形式存储于图2所示的存储器110中或固化于该电子设备100的操作系统(Operating System,OS)中,并可由图2中的处理器120执行。同时,执行上述模块所需的数据、程序的代码等可以存储在存储器110中。
综上所述,本发明实施例所提供的一种窗口直播方法、装置、电子设备和计算机可读存储介质。其中,上述窗口直播方法应用于电子设备,所述电子设备与直播服务器通信连接,上述窗口直播方法包括:获取显示界面图像;其中,所述显示界面图像中包括目标窗口;从所述显示界面图像中裁剪出目标图像区域;其中,所述目标图像区域为呈现所述目标窗口的图像区域;根据所述目标图像区域生成直播图像帧,并向直播服务器发出。如此,提高窗口内容采集的普适性,兼容性高,实现简单,节约窗口直播的实现成本。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种窗口直播方法,其特征在于,应用于电子设备,所述电子设备与直播服务器通信连接,所述窗口直播方法包括:
获取显示界面图像;其中,所述显示界面图像中包括目标窗口;
从所述显示界面图像中裁剪出目标图像区域;其中,所述目标图像区域为呈现所述目标窗口的图像区域;
根据所述目标图像区域生成直播图像帧,并向直播服务器发出;所述根据所述目标图像区域生成直播图像帧的步骤包括:
利用所述目标图像区域中的像素点,对存储纹理资源进行更新;其中,所述存储纹理资源与目标窗口匹配;
根据更新后的所述存储纹理资源,生成所述直播图像帧。
2.根据权利要求1所述的窗口直播方法,其特征在于,所述窗口直播方法还包括:
在所述目标窗口出现变化的情况下,释放所述存储纹理资源;
重建变化后的目标窗口所对应的存储纹理资源。
3.根据权利要求2所述的窗口直播方法,其特征在于,所述重建变化后的目标窗口所对应的存储纹理资源,包括:
获取变化后的目标窗口的位置信息及显示大小信息;
根据所述目标窗口的位置信息及显示大小信息,创建对应的存储纹理资源。
4.根据权利要求3所述的窗口直播方法,其特征在于,获取变化后的目标窗口的显示大小信息包括:
在所述目标窗口横跨多个显示界面的情况下,获取每个所述显示界面下目标窗口所占的显示区域;
从多个所述显示区域中确定目标显示区域,并将目标显示区域的面积大小确定为变化后的目标窗口的显示大小信息。
5.根据权利要求1所述的窗口直播方法,其特征在于,所述获取显示界面图像的步骤包括:
在选定的目标窗口满足预设条件的情况下,通过设备上下文获取函数,读取由至少一个显示界面所组成的所述显示界面图像。
6.根据权利要求5所述的窗口直播方法,其特征在于,所述预设条件包括:
所述目标窗口的状态为可见。
7.根据权利要求6所述的方法,其特征在于,所述目标窗口的状态为可见包括所述目标窗口未被其他窗口遮挡。
8.根据权利要求1所述的窗口直播方法,其特征在于,所述从所述显示界面图像中裁剪出目标图像区域的步骤包括:
获取所述目标窗口在显示界面图像中的位置信息及显示大小信息;
依据所述位置信息及显示大小信息,确定出目标图像区域;
利用位块转换函数,将所述目标图像区域的像素点裁剪出来。
9.一种窗口直播装置,其特征在于,应用于电子设备,所述电子设备与直播服务器通信连接,所述窗口直播装置包括:
获取模块,用于获取显示界面图像;其中,所述显示界面图像中包括目标窗口;
裁剪模块,用于从所述显示界面图像中裁剪出目标图像区域;其中,所述目标图像区域为呈现所述目标窗口的图像区域;
直播模块,用于根据所述目标图像区域生成直播图像帧,并向直播服务器发出;
所述直播模块还用于:
利用所述目标图像区域中的像素点,对存储纹理资源进行更新;其中,所述存储纹理资源与目标窗口匹配;
根据更新后的所述存储纹理资源,生成所述直播图像帧。
10.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现权利要求1-8任一所述的方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8中任一项所述的方法。
CN202110152286.5A 2021-02-03 2021-02-03 窗口直播方法、装置、电子设备和计算机可读存储介质 Active CN112911329B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110152286.5A CN112911329B (zh) 2021-02-03 2021-02-03 窗口直播方法、装置、电子设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110152286.5A CN112911329B (zh) 2021-02-03 2021-02-03 窗口直播方法、装置、电子设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112911329A CN112911329A (zh) 2021-06-04
CN112911329B true CN112911329B (zh) 2023-08-25

Family

ID=76122009

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110152286.5A Active CN112911329B (zh) 2021-02-03 2021-02-03 窗口直播方法、装置、电子设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112911329B (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6549218B1 (en) * 1999-03-31 2003-04-15 Microsoft Corporation Dynamic effects for computer display windows
US7878808B1 (en) * 2003-09-19 2011-02-01 Sap Ag Multiple application interactive tutorial player
CN102804161A (zh) * 2009-04-03 2012-11-28 社会传播公司 应用共享
CN106105246A (zh) * 2016-06-24 2016-11-09 北京小米移动软件有限公司 直播显示方法、装置及系统
CN107551555A (zh) * 2017-08-24 2018-01-09 网易(杭州)网络有限公司 游戏画面显示方法及装置、存储介质、终端
WO2018121557A1 (zh) * 2016-12-27 2018-07-05 北京奇虎科技有限公司 直播数据显示方法、装置、程序及介质
CN108449640A (zh) * 2018-03-26 2018-08-24 广州虎牙信息科技有限公司 直播视频输出控制方法、装置及存储介质、终端
CN109640105A (zh) * 2018-12-05 2019-04-16 网易(杭州)网络有限公司 游戏直播方法、装置、存储介质和电子装置
CN109819268A (zh) * 2019-03-15 2019-05-28 网易(杭州)网络有限公司 视频直播中的直播间播放控制方法、装置、介质及设备
CN110337007A (zh) * 2019-07-09 2019-10-15 深圳品阔信息技术有限公司 任意窗口的白板操作方法、装置、可读存储介质及系统
CN110795097A (zh) * 2019-11-04 2020-02-14 腾讯科技(深圳)有限公司 一种页面处理方法、装置、计算机设备以及存储介质
WO2020134841A1 (zh) * 2018-12-28 2020-07-02 广州市百果园信息技术有限公司 一种直播互动方法、装置、系统、设备和存储介质
CN112019907A (zh) * 2019-05-30 2020-12-01 上海哔哩哔哩科技有限公司 直播画面分流方法、计算机设备及可读存储介质

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6549218B1 (en) * 1999-03-31 2003-04-15 Microsoft Corporation Dynamic effects for computer display windows
US7878808B1 (en) * 2003-09-19 2011-02-01 Sap Ag Multiple application interactive tutorial player
CN102804161A (zh) * 2009-04-03 2012-11-28 社会传播公司 应用共享
CN106105246A (zh) * 2016-06-24 2016-11-09 北京小米移动软件有限公司 直播显示方法、装置及系统
WO2018121557A1 (zh) * 2016-12-27 2018-07-05 北京奇虎科技有限公司 直播数据显示方法、装置、程序及介质
CN107551555A (zh) * 2017-08-24 2018-01-09 网易(杭州)网络有限公司 游戏画面显示方法及装置、存储介质、终端
CN108449640A (zh) * 2018-03-26 2018-08-24 广州虎牙信息科技有限公司 直播视频输出控制方法、装置及存储介质、终端
CN109640105A (zh) * 2018-12-05 2019-04-16 网易(杭州)网络有限公司 游戏直播方法、装置、存储介质和电子装置
WO2020134841A1 (zh) * 2018-12-28 2020-07-02 广州市百果园信息技术有限公司 一种直播互动方法、装置、系统、设备和存储介质
CN109819268A (zh) * 2019-03-15 2019-05-28 网易(杭州)网络有限公司 视频直播中的直播间播放控制方法、装置、介质及设备
CN112019907A (zh) * 2019-05-30 2020-12-01 上海哔哩哔哩科技有限公司 直播画面分流方法、计算机设备及可读存储介质
CN110337007A (zh) * 2019-07-09 2019-10-15 深圳品阔信息技术有限公司 任意窗口的白板操作方法、装置、可读存储介质及系统
CN110795097A (zh) * 2019-11-04 2020-02-14 腾讯科技(深圳)有限公司 一种页面处理方法、装置、计算机设备以及存储介质

Also Published As

Publication number Publication date
CN112911329A (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
CN109618177B (zh) 视频处理方法、装置、电子设备及计算机可读存储介质
CN111131851B (zh) 游戏直播控制方法及装置、计算机存储介质、电子设备
CN112929678B (zh) 直播方法、装置、服务端及计算机可读存储介质
US9049341B2 (en) Method and apparatus for video resource management in video conference
CN111078070B (zh) Ppt视频弹幕的播放控制方法、装置、终端及介质
CN110381326B (zh) 视频系统及处理方法、设备与计算机可读介质
CN109803151B (zh) 多媒体数据流切换方法、装置、存储介质及电子装置
US10531153B2 (en) Cognitive image obstruction
CN112243137A (zh) 一种直播间界面更新方法、装置、服务器以及系统
CN109168012B (zh) 用于终端设备的信息处理方法和装置
CN114245228A (zh) 页面链接投放方法、装置及电子设备
CN112532896A (zh) 视频的制作方法、装置、电子设备以及存储介质
CN112804578A (zh) 氛围特效生成方法、装置、电子设备和存储介质
CN113014934A (zh) 产品展示方法、产品展示装置、计算机设备及存储介质
CN112911329B (zh) 窗口直播方法、装置、电子设备和计算机可读存储介质
WO2016066056A1 (zh) 图像远程投射方法、服务器和客户端
US7369137B2 (en) Method for mapping a single decoded content stream to multiple textures in a virtual environment
CN113891136A (zh) 一种视频播放方法、装置、电子设备和存储介质
CN114092362A (zh) 一种全景图片加载方法和装置
CN112181340A (zh) 一种ar图像的共享方法及电子设备
CN112804551A (zh) 一种直播方法、装置、计算机设备及存储介质
CN1745584A (zh) 用于增加内容显示的方法和系统
CN115278278B (zh) 一种页面显示方法、装置、电子设备及存储介质
CN111009021A (zh) 一种电子白板的回放方法及相关设备
CN112351314B (zh) 多媒体信息播放方法、服务器、终端、系统及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant