本申请提供一种直播方法、装置、设备及存储介质,所述方法包括步骤:从应用程序提供的接口获取所述应用程序显示界面的图像纹理ID;根据所述图像纹理ID获得所述显示界面的图像数据;根据所述图像数据制作成直播视频流发送至服务器,以供指定客户端播放所述直播视频流。旨在解决现有录屏直播中,会录制到屏幕显示的非相关数据的问题。
【技术实现步骤摘要】
一种直播方法、装置、设备及存储介质
本申请涉及互联网技术,特别涉及一种直播方法、装置、设备及存储介质。
技术介绍
随着直播行业的不断发展发展,用户对应用程序操作界面进行实时直播的需求也随之增加。例如,游戏直播,即游戏玩家在运行游戏应用程序时,会希望将正在运行的游戏画面实时的播放给直播间的其他用户观看,以便与其他用户进行互动。目前,在进行终端中应用程序的操作界面的直播时,例如游戏直播,常通过“录屏”的方式获得应用程序的操作界面的每一帧图像,所述“录屏”指的是录制终端的显示的画面,但是,现有的录屏直播,会将用户在终端屏幕上显示的非应用程序操作画面也录制进去,例如在录屏直播时,收到一条微信消息,该微信消息的提示窗口也会被录制,使得用户体验不好。
技术实现思路
有鉴于此,本申请提供直播方法、装置、设备及存储介质,旨在解决现有录屏直播中,会录制到屏幕显示的非相关数据的问题。具体地,本申请是通过如下技术方案实现的:在本申请的第一方面,提供一种直播方法,所述方法包括步骤:从应用程序提供的接口获取所述应用程序显示界面的图像纹理ID;根据所述图像纹理ID获得所述显示界面的图像数据;根据所述图像数据制作成直播视频流发送至服务器,以供指定客户端播放所述直播视频流。在一些例子中,所述方法由嵌入在所述应用程序中自定义软件开发工具包执行;或所述方法由与所述应用程序运行在同一终端设备上的直播软件执行。在一些例子中,根据所述图像纹理ID获得所述显示界面的图像数据,根据所述图像数据制作成直播视频流发送至服务器的步骤,由所述应用程序所在终端设备的GPU执行。在一些例子中,根据所述图像纹理ID获得所述显示界面的图像数据,包括:在所述应用程序的渲染线程中,通过OpenGL根据所述显示图像的图像纹理ID与FrameBuffer绑定,再将所述FrameBuffer与SurfaceView绑定,编码后获得所述显示图像的图像数据。在一些例子中,每张显示图像对应至少两个图像纹理ID。在一些例子中,所述方法还包括步骤:创建一虚拟摄像机,配置所述虚拟摄像机的深度属性为最顶层图层深度值;将所述虚拟摄像机挂载到所述应用程序的虚拟摄像机上,以使通过所述应用程序的虚拟摄像机获取当前显示界面对应图像的唯一图像纹理ID。在一些例子中,通过所述应用程序的虚拟摄像机获取每张显示图像的唯一图像纹理ID,包括:所述唯一图像纹理ID利用虚拟摄像机的图像纹理ID回调函数获取。本申请的第二方面,提供一种直播装置,所述装置包括:获取模块,用于从应用程序提供的接口获取显示图像的图像纹理ID;处理模块,用于根据所述显示图像的图像纹理ID获得所述显示图像的图像数据;根据所述图像数据制作成直播视频流发送至服务器,以供指定客户端播放所述直播视频流。本申请的第三方面,提供一种图像设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行如前述第一方面任意一项方法所述的操作。本申请的第四方面,提供一种存储介质,其上存储有程序,该程序被处理器执行如前述第一方面任意一项所述的方法的操作。本申请实施例通过从应用程序提供的接口获取显示图像的图像纹理ID;根据所述显示图像的图像纹理ID获得所述显示图像的图像数据,可以去除其他应用程序的图像数据,解决现有录屏直播中,会录制到屏幕显示的非相关数据的问题,并且还可以避免用于录屏的进程被后台系统“杀掉”的问题,安全性更高。更重要的是,本申请实施例提出的方案另辟蹊径,借助现有技术中为应用程序添加特效处理(如:海面波浪效果)的图像纹理ID,获得所述显示图像,而不是获取应用程序的RGBA数据直接得到显示图像,我们知道RGBA数据的数据量非常之大,进行直播时,需要每秒处理24帧以上的图像,使用RGBA数据是无法满足直播如此高的处理需求,而图像纹理ID仅几个KB的数据量,通过图像纹理ID获得所述显示图像的图像数据,可以极大的减少终端设备的数据处理量,有效地增加处理效率。附图说明图1为一直播场景示意图;图2为本申请实施例提供的一种直播方法的流程图;图3为本申请实施例提供的另一种直播方法的流程图;图4是本申请一示例性实施例示出的一种直播装置的结构示意图;图5是本申请一示例性实施例示出的另一种直播装置的结构示意图;图6是本申请一示例性实施例示出的一种终端设备的硬件结构示意图。具体实施方式以下将结合附图所示的具体实施方式对本申请进行详细描述。但这些实施方式并不限制本申请,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本申请的保护范围内。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。参照图1,为直播场景示意图,第一观众客户端、第二观众客户端及主播客户端分别被安装在电子设备110、120及130上,主播客户端可以通过屏幕捕捉,以及配合调用摄像头录制视频、拍摄照片等其他方式制作直播视频流,直播视频流包括一帧帧图像帧及音频数据,然后通过网络将制作的直播视频流发送给服务端100。服务端100用于提供直播的后台服务,例如保存各主播客户端与观众客户端的对应关系,进行直播视频流的分发等,当第一观众客户端、第二观众客户端与主播客户端在同一直播间内,主播客户端就可以通过服务端将想要展示的直播视频流分享给在同一直播间的第一观众客户端及第二观众客户端播放,以供第一观众客户端及第二观众客户端的用户观看。互联网直播形式非常丰富。尤其是用户对应用程序操作界面的实时直播,成为目前最受欢迎的互联网直播形式。例如游戏直播,即游戏玩家在运行游戏应用程序时,会希望将正在运行的游戏画面实时的播放给直播间的其他用户观看,以便与其他用户进行互动。目前,在进行终端中应用程序的操作界面的直播时,例如游戏直播,常通过“录屏”的方式获得应用程序的操作界面的每一帧图像,所述“录屏”指的是录制终端的显示的画面,但是,现有的录屏直播,会将用户在终端屏幕上显示的非应用程序操作画面也录制进去,例如在录屏直播时,收到一条微信消息,该微信消息的提示窗口也会被录制,使得用户体验不好。为了解决上述技术问题,本申请提供一种直播方案。参照图2,为本申请实施例示例性示出的一种直播方法的流程图,该直播方法用于用户对应用程序操作界面的实时直播,对该方法的步骤包括:S210:从应用程序提供的接口获取所述应用程序显示界面的图像纹理(Texture)ID;S220:根据所述图像纹理ID获得所述显示界面的图像数据;S230:根据所述图像数据制作成直播视频流发送至服务器,以供指定客户端播放所述直播视频流。在一些例子中,本申请实施例提出的方法可以应用在终端设备中,终端设备可以是智能手机、平板电脑、PDA(PersonalDigitalAssistant,个人数字助理)等。在一些例子中,该终端设备上可以安装有直播软件以及所述应用程序,本申请实施例提出的方法由直播软件执行,该直播软件可以对应用程序操作界面进行实时直播。在另外一些例子中,该终端设备上可以安装有应用程序,本申请本文档来自技高网...
【技术保护点】
1.一种直播方法,其特征在于,所述方法包括步骤:从应用程序提供的接口获取所述应用程序显示界面的图像纹理ID;根据所述图像纹理ID获得所述显示界面的图像数据;根据所述图像数据制作成直播视频流发送至服务器,以供指定客户端播放所述直播视频流。
【技术特征摘要】
1.一种直播方法,其特征在于,所述方法包括步骤:从应用程序提供的接口获取所述应用程序显示界面的图像纹理ID;根据所述图像纹理ID获得所述显示界面的图像数据;根据所述图像数据制作成直播视频流发送至服务器,以供指定客户端播放所述直播视频流。2.根据权利要求1所述的方法,其特征在于,所述方法由嵌入在所述应用程序中自定义软件开发工具包执行;或所述方法由与所述应用程序运行在同一终端设备上的直播软件执行。3.根据权利要求1所述的方法,其特征在于,图像纹理ID根据所述图像纹理ID获得所述显示界面的图像数据,根据所述图像数据制作成直播视频流发送至服务器的步骤,由所述应用程序所在终端设备的GPU执行。4.根据权利要求3所述的方法,其特征在于,图像纹理ID根据所述图像纹理ID获得所述显示界面的图像数据,包括:在所述应用程序的渲染线程中,通过OpenGL根据所述显示图像的图像纹理ID与FrameBuffer绑定,再将所述FrameBuffer与SurfaceView绑定,编码后获得所述显示图像的图像数据。5.根据权利要求1所述的方法,其...
【专利技术属性】
技术研发人员:胡超,
申请(专利权)人:广州虎牙信息科技有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。