CN109168014B - 一种直播方法、装置、设备及存储介质 - Google Patents
一种直播方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN109168014B CN109168014B CN201811126792.1A CN201811126792A CN109168014B CN 109168014 B CN109168014 B CN 109168014B CN 201811126792 A CN201811126792 A CN 201811126792A CN 109168014 B CN109168014 B CN 109168014B
- Authority
- CN
- China
- Prior art keywords
- image
- application program
- video stream
- image texture
- display interface
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000003860 storage Methods 0.000 title claims abstract description 14
- 238000012545 processing Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 11
- 238000009877 rendering Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 241001025261 Neoraja caerulea Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4334—Recording operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44012—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4438—Window management, e.g. event handling following interaction with the user interface
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4781—Games
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请提供一种直播方法、装置、设备及存储介质,所述方法包括步骤:从应用程序提供的接口获取所述应用程序显示界面的图像纹理ID;根据所述图像纹理ID获得所述显示界面的图像数据;根据所述图像数据制作成直播视频流发送至服务器,以供指定客户端播放所述直播视频流。旨在解决现有录屏直播中,会录制到屏幕显示的非相关数据的问题。
Description
技术领域
本申请涉及互联网技术,特别涉及一种直播方法、装置、设备及存储介质。
背景技术
随着直播行业的不断发展发展,用户对应用程序操作界面进行实时直播的需求也随之增加。例如,游戏直播,即游戏玩家在运行游戏应用程序时,会希望将正在运行的游戏画面实时的播放给直播间的其他用户观看,以便与其他用户进行互动。
目前,在进行终端中应用程序的操作界面的直播时,例如游戏直播,常通过“录屏”的方式获得应用程序的操作界面的每一帧图像,所述“录屏”指的是录制终端的显示的画面,但是,现有的录屏直播,会将用户在终端屏幕上显示的非应用程序操作画面也录制进去,例如在录屏直播时,收到一条微信消息,该微信消息的提示窗口也会被录制,使得用户体验不好。
发明内容
有鉴于此,本申请提供直播方法、装置、设备及存储介质,旨在解决现有录屏直播中,会录制到屏幕显示的非相关数据的问题。
具体地,本申请是通过如下技术方案实现的:
在本申请的第一方面,提供一种直播方法,所述方法包括步骤:
从应用程序提供的接口获取所述应用程序显示界面的图像纹理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(Personal Digital Assistant,个人数字助理)等。
在一些例子中,该终端设备上可以安装有直播软件以及所述应用程序,本申请实施例提出的方法由直播软件执行,该直播软件可以对应用程序操作界面进行实时直播。
在另外一些例子中,该终端设备上可以安装有应用程序,本申请实施例提出的方法由自定义软件开发工具(Software Development Kit,SDK)执行,该SDK可以在所述应用程序创建时,被嵌入在所述应用程序的安装包中,并在所述应用程序运行时,执行所述的方法。通过在应用程序中嵌入SDK用来执行本申请提出的直播方法,可以减少终端设备上运行的进程,降低终端设备的功耗,从而提高效率。
为了避免歧义,以下将本申请实施例提出的直播方法的执行主体称为主播客户端,而本申请实施例提出的指定客户端指的是与所述主播客户端在同一直播间的直播客户端。
在一些例子中,本申请实施例所述的终端设备可以基于安卓(Android)***,例如:Android 4.3或以上***。
本申请实施例提出的应用程序可以是任意软件,例如游戏软件、图像绘制软件、文稿演示软件或图像处理软件等。本申请不限制所述应用程序的类型。
本申请实施例通过从应用程序提供的接口获取显示图像的图像纹理ID;根据所述显示图像的图像纹理ID获得所述显示图像的图像数据,可以去除其他应用程序的图像数据,解决现有录屏直播中,会录制到屏幕显示的非相关数据的问题,并且还可以避免用于录屏的进程被后台***“杀掉”的问题,安全性更高。更重要的是,本申请实施例提出的方案另辟蹊径,借助现有技术中为应用程序添加特效处理(如:海面波浪效果)的图像纹理ID,获得所述显示图像,而不是获取应用程序的RGBA数据直接得到显示图像,我们知道RGBA数据的数据量非常之大,进行直播时,需要每秒处理24帧以上的图像,使用RGBA数据是无法满足直播如此高的处理需求,而图像纹理ID仅几个KB的数据量,通过图像纹理ID获得所述显示图像的图像数据,可以极大的减少终端设备的数据处理量,有效地增加处理效率。
在某些例子中,本申请实施例提出的每张显示图像可以对应至少两个图像纹理ID。获得每帧图像的全部图像纹理ID后,根据全部图像纹理ID,以及各图像纹理ID对应的虚拟摄像机的的深度属性,获得该图像的图像数据。所述虚拟摄像机是为捕捉和显示场景的一种装置。通过定制和操作虚拟摄像机,来设置场景。在每个场景中可以有数量不限的虚拟摄像机。它们可以通过被设置深度属性以任何顺序来渲染显示界面的图像。所述虚拟摄像机的深度(Depth):确定虚拟摄像机在渲染上的位置,当深度属性值越大,渲染越在上面,越能最先被看到。
具体的一个例子中,假设应用程序的每帧图像帧可以由多个虚拟摄像机拍摄得到,例如背景由虚拟摄像机a拍摄得到,前景中的物件1由虚拟摄像机b拍摄得到,前景中的物件2由虚拟摄像机c拍摄得到。那么该图像对应3个图像纹理ID(虚拟摄像机a拍摄拍摄对应的图像纹理ID1,虚拟摄像机b拍摄拍摄对应的图像纹理ID2,虚拟摄像机c拍摄拍摄对应的图像纹理ID3),且每个虚拟摄像头具有深度属性,深度属性值:虚拟摄像机c>虚拟摄像机b>虚拟摄像机a,那么按照各图像纹理ID对应的虚拟摄像机的深度属性,按照图像纹理ID3在最上层,图像纹理ID2在中间层,图像纹理ID在最底层的顺序渲染得到最终的图像数据。
在一个例子中,参照图3,为本申请实施例示例性示出的另一直播方法的流程图,所述方法的步骤如下:
S211:创建一虚拟摄像机,配置所述虚拟摄像机的深度属性为最顶层图层深度值;
本步骤中,配置所述虚拟摄像机的深度属性为最顶层图层深度值,可以使所述虚拟摄像机汇集显示图像的全部显示内容。
S212:将所述虚拟摄像机挂载到所述应用程序的虚拟摄像机上;
S213:通过所述应用程序的虚拟摄像机获取当前界面的的唯一图像纹理ID;
S220:根据所述图像纹理ID获得所述显示界面的图像数据;
S230:根据所述图像数据制作成直播视频流发送至服务器,以供指定客户端播放所述直播视频流。
具体的,在一个实施例中,图3所述的步骤S211、S212及S213具体可以是:应用程序及主播客户端运行后,主播客户端创建一虚拟摄像机(可以是创建NimoCameraCapture类,该NimoCameraCapture类从MonoBehaviour继承),配置所述虚拟摄像机的深度属性为最顶层图层深度值;以使所述虚拟摄像机汇集显示图像的全部显示内容;其中所述虚拟摄像机中编写有回调函数(可以是在上述创建的NimoCameraCapture类中编写回调函数:voidOnRenderImage(RenderTexture source,RenderTexture destination));将前述编写有回调函数的虚拟摄像机挂载到所述应用程序的虚拟摄像机上(可以是将前述编写好回调函数的NimoCameraCapture类挂载到所述应用程序的虚拟摄像机上),从回调函数中获取图像纹理ID,且每张图像仅对应一个图像纹理ID。
至此,图3所述的方法通过创建一虚拟摄像机,配置所述虚拟摄像机的深度属性为最顶层图层深度值;以使所述虚拟摄像机汇集显示图像的全部显示内容,再将所述虚拟摄像机挂载到所述应用程序的虚拟摄像机上,从而获取当前界面的的唯一图像纹理ID,以使每帧图像仅对应唯一的图像纹理ID,可以有效地减少计算量,提高直播视频流的效率。
在一些例子中,图2所述的步骤S210、S220及S230,以及图3所述的步骤S211、S212、S213、S220及S230可以由所述主播客户端所在终端设备的CPU执行。
在一个例子中,CPU从应用程序提供的接口获取所述应用程序显示界面的图像纹理ID之后,CPU在应用程序的渲染线程中将SurfaceView与EGL绑定,根据图像纹理ID得到图像数据,将该图像数据传给MediaCodec,MediaCodec将一帧帧图像数据编码后输出直播视频流。
但申请人在实际应用中发现,图2所述的步骤S210、S220及S230,或图3所述的步骤S211、S212、S213、S220及S230由所述主播客户端所在终端设备的CPU执行时,效率不够高,虽然可以适用于大多数分辨率的直播视频流的制作,但是无法高效制作超清或蓝光分辨率的直播视频流。为了进一步提高效率,在一个例子中,图2所述步骤S210或图3所述的步骤S211、S212及S213可以由所述主播客户端所在终端设备的CPU执行,而图2或图3所述步骤S220及S230由所述主播客户端所在终端设备的GPU执行。
在一个具体的实施例中,CPU从应用程序提供的接口获取所述应用程序显示界面的图像纹理ID之后,将所述图像纹理ID发送给GPU,GPU在所述应用程序的渲染线程中,通过OpenGL根据所述显示图像的图像纹理ID与FrameBuffer绑定,再将所述FrameBuffer与SurfaceView绑定,编码后获得所述显示图像的图像数据;接着GPU根据所述图像数据制作成直播视频流发送至服务器。在一些例子中,本实施例所述的编码可以指GPU硬编码。
若所述终端设备基于安卓***,具体可以是:CPU从应用程序提供的接口获取所述应用程序显示界面的图像纹理ID之后,将所述图像纹理ID传递给Android Java层;接着在Android中实现回调函数,GPU通过图像纹理ID,用OpenGL在渲染线程中获取渲染数据(图像数据),将该图像数据传递给FFMpeg转码为直播视频流(H.264)后,发送给服务端。
此外,各个步骤的描述,可以实现为软件、硬件或者其结合的形式,例如,本领域技术人员可以将其实现为软件代码的形式,可以为能够实现所述步骤对应的逻辑功能的计算机可执行指令。当其以软件的方式实现时,所述的可执行指令可以存储在存储器中,并被设备中的处理器执行。
与前述直播方法的实施例相对应,本申请还提供了直播装置及终端设备的实施例。
参见图4,为本申请一种直播装置400的一个实施例框图,该装置包括:
获取模块410,用于从应用程序提供的接口获取显示图像的图像纹理ID;
处理模块420,用于根据所述显示图像的图像纹理ID获得所述显示图像的图像数据;根据所述图像数据制作成直播视频流发送至服务器,以供指定客户端播放所述直播视频流。
在一些例子中,图像纹理ID根据所述图像纹理ID获得所述显示界面的图像数据,根据所述图像数据制作成直播视频流发送至服务器,由所述应用程序所在终端设备的GPU执行。
在一些例子中,图像纹理ID根据所述图像纹理ID获得所述显示界面的图像数据,处理模块420具体用于:在所述应用程序的渲染线程中,通过OpenGL根据所述显示图像的图像纹理ID与FrameBuffer绑定,再将所述FrameBuffer与SurfaceView绑定,编码后获得所述显示图像的图像数据。
在一些例子中,每张显示图像对应至少两个图像纹理ID。
在一些例子中,参照图5,所述装置还包括:创建模块430,所述创建模块430用于:
创建一虚拟摄像机,配置所述虚拟摄像机的深度属性为最顶层图层深度值;
将所述虚拟摄像机挂载到所述应用程序的虚拟摄像机上,图像纹理ID以使通过所述应用程序的虚拟摄像机获取当前显示界面对应图像的唯一图像纹理ID。
在一些例子中,通过所述应用程序的虚拟摄像机获取每张显示图像的唯一图像纹理ID,所述创建模块430具体用于:
所述唯一图像纹理ID利用虚拟摄像机的图像纹理ID回调函数获取。
参见图6所示,对应于上述方法,本申请同时提供一种终端设备。如图6所示,该设备可以包括处理器601以及机器可读存储介质602,其中,处理器601和机器可读存储介质602通常借由内部总线603相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口604,以能够与其他设备或者部件进行通信。进一步地,机器可读存储介质602上存储有直播控制逻辑605,该控制逻辑605从功能上划分的逻辑模块,可以是图4或图5所示的直播装置的结构。所述处理器601用于执行如下步骤:
从应用程序提供的接口获取所述应用程序显示界面的图像纹理ID;
根据所述图像纹理ID获得所述显示界面的图像数据;
根据所述图像数据制作成直播视频流发送至服务器,以供指定客户端播放所述直播视频流。
在一些例子中,所述方法由嵌入在所述应用程序中自定义软件开发工具包执行;或
所述方法由与所述应用程序运行在同一终端设备上的直播软件执行。
在一些例子中,图像纹理ID根据所述图像纹理ID获得所述显示界面的图像数据,根据所述图像数据制作成直播视频流发送至服务器的步骤,由所述应用程序所在终端设备的GPU执行。
在一些例子中,图像纹理ID根据所述图像纹理ID获得所述显示界面的图像数据,包括:
在所述应用程序的渲染线程中,通过OpenGL根据所述显示图像的图像纹理ID与FrameBuffer绑定,再将所述FrameBuffer与SurfaceView绑定,编码后获得所述显示图像的图像数据。
在一些例子中,每张显示图像对应至少两个图像纹理ID。
在一些例子中,所述处理器601还用于执行步骤:
创建一虚拟摄像机,配置所述虚拟摄像机的深度属性为最顶层图层深度值;
将所述虚拟摄像机挂载到所述应用程序的虚拟摄像机上,图像纹理ID以使通过所述应用程序的虚拟摄像机获取当前显示界面对应图像的唯一图像纹理ID。
在一些例子中,通过所述应用程序的虚拟摄像机获取每张显示图像的唯一图像纹理ID,包括:
所述唯一图像纹理ID利用虚拟摄像机的图像纹理ID回调函数获取。
在不同的例子中,所述图6所述的终端设备的机器可读存储介质602可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种直播方法,其特征在于,所述方法包括步骤:
从应用程序提供的接口获取所述应用程序显示界面的图像纹理ID;
根据所述图像纹理ID获得所述显示界面的图像数据;
根据所述图像数据制作成直播视频流发送至服务器,以供指定客户端播放所述直播视频流。
2.根据权利要求1所述的方法,其特征在于,所述方法由嵌入在所述应用程序中的自定义软件开发工具包执行;或
所述方法由与所述应用程序运行在同一终端设备上的直播软件执行。
3.根据权利要求1所述的方法,其特征在于,根据所述图像纹理ID获得所述显示界面的图像数据,根据所述图像数据制作成直播视频流发送至服务器的步骤,由所述应用程序所在终端设备的GPU执行。
4.根据权利要求3所述的方法,其特征在于,根据所述图像纹理ID获得所述显示界面的图像数据,包括:
在所述应用程序的渲染线程中,通过OpenGL根据所述显示界面的图像纹理ID与FrameBuffer绑定,再将所述FrameBuffer与SurfaceView绑定,编码后获得所述显示界面的图像数据。
5.根据权利要求1所述的方法,其特征在于,每张图像对应至少两个图像纹理ID。
6.根据权利要求1所述的方法,其特征在于,所述从应用程序提供的接口获取所述应用程序显示界面的图像纹理ID之前,还包括步骤:
创建一虚拟摄像机,配置所述虚拟摄像机的深度属性为最顶层图层深度值;
将所述虚拟摄像机挂载到所述应用程序的虚拟摄像机上,以通过所述应用程序的虚拟摄像机获取当前显示界面对应图像的唯一图像纹理ID。
7.根据权利要求6所述的方法,其特征在于,所述唯一图像纹理ID利用虚拟摄像机的图像纹理ID回调函数获取。
8.一种直播装置,其特征在于,所述装置包括:
获取模块,用于从应用程序提供的接口获取所述应用程序显示界面的图像纹理ID;
处理模块,用于根据所述显示界面的图像纹理ID获得所述显示界面的图像数据;根据所述图像数据制作成直播视频流发送至服务器,以供指定客户端播放所述直播视频流。
9.一种图像设备,其特征在于,包括:
处理器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行如权利要求1至7任意一项方法所述的步骤。
10.一种计算机可读存储介质,其上存储有程序,其特征在于,该程序被处理器执行如权利要求1至7任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811126792.1A CN109168014B (zh) | 2018-09-26 | 2018-09-26 | 一种直播方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811126792.1A CN109168014B (zh) | 2018-09-26 | 2018-09-26 | 一种直播方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109168014A CN109168014A (zh) | 2019-01-08 |
CN109168014B true CN109168014B (zh) | 2021-05-28 |
Family
ID=64880366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811126792.1A Active CN109168014B (zh) | 2018-09-26 | 2018-09-26 | 一种直播方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109168014B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109547812A (zh) * | 2019-01-22 | 2019-03-29 | 广州虎牙信息科技有限公司 | 一种直播方法、装置、移动终端与存储介质 |
CN109982148B (zh) * | 2019-04-03 | 2022-05-20 | 广州虎牙信息科技有限公司 | 一种直播方法、装置、计算机设备与存储介质 |
CN111796812B (zh) * | 2019-04-04 | 2022-11-04 | 厦门雅基软件有限公司 | 图像渲染的方法、装置、电子设备及计算机可读存储介质 |
CN112004041B (zh) * | 2019-05-27 | 2022-06-10 | 腾讯科技(深圳)有限公司 | 视频录制方法、装置、终端及存储介质 |
CN112312146B (zh) * | 2019-08-01 | 2021-10-22 | 广州虎牙科技有限公司 | 直播数据处理方法、装置、电子设备及可读存储介质 |
CN110784757A (zh) * | 2019-11-05 | 2020-02-11 | 网易(杭州)网络有限公司 | 直播客户端中的游戏直播方法及装置、介质、电子设备 |
CN111314773A (zh) * | 2020-01-22 | 2020-06-19 | 广州虎牙科技有限公司 | 录屏方法、装置、电子设备和计算机可读存储介质 |
CN113271497B (zh) * | 2020-02-17 | 2024-03-15 | 腾讯科技(深圳)有限公司 | 一种视频播放方法、智能终端、存储介质及程序产品 |
CN111405301B (zh) * | 2020-03-02 | 2022-10-04 | 广州虎牙科技有限公司 | 终端的录屏交互方法、装置、计算机设备及存储介质 |
CN111338744B (zh) * | 2020-05-22 | 2020-08-14 | 北京小米移动软件有限公司 | 图像显示方法及装置、电子设备、存储介质 |
CN113411661B (zh) * | 2021-06-11 | 2023-01-31 | 北京百度网讯科技有限公司 | 用于记录信息的方法、装置、设备、存储介质及程序产品 |
WO2023245494A1 (zh) * | 2022-06-22 | 2023-12-28 | 云智联网络科技(北京)有限公司 | 从渲染引擎中获取纹理数据的方法及装置、电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101609401A (zh) * | 2009-07-02 | 2009-12-23 | 深圳市万兴软件有限公司 | 一种无干扰屏幕录制方法和*** |
CN102724466A (zh) * | 2012-05-25 | 2012-10-10 | 深圳市万兴软件有限公司 | 一种视频录制方法及装置 |
CN103823683A (zh) * | 2014-02-27 | 2014-05-28 | 北京六间房科技有限公司 | 一种视频录制装置及方法 |
CN106230841A (zh) * | 2016-08-04 | 2016-12-14 | 深圳响巢看看信息技术有限公司 | 一种基于终端的网络直播中视频实时美颜及推流的方法 |
CN106303329A (zh) * | 2016-08-11 | 2017-01-04 | 广州爱九游信息技术有限公司 | 录屏直播方法和装置、移动设备及直播*** |
CN108235107A (zh) * | 2016-12-15 | 2018-06-29 | 广州市动景计算机科技有限公司 | 视频录制方法、装置及电子终端 |
-
2018
- 2018-09-26 CN CN201811126792.1A patent/CN109168014B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101609401A (zh) * | 2009-07-02 | 2009-12-23 | 深圳市万兴软件有限公司 | 一种无干扰屏幕录制方法和*** |
CN102724466A (zh) * | 2012-05-25 | 2012-10-10 | 深圳市万兴软件有限公司 | 一种视频录制方法及装置 |
CN103823683A (zh) * | 2014-02-27 | 2014-05-28 | 北京六间房科技有限公司 | 一种视频录制装置及方法 |
CN106230841A (zh) * | 2016-08-04 | 2016-12-14 | 深圳响巢看看信息技术有限公司 | 一种基于终端的网络直播中视频实时美颜及推流的方法 |
CN106303329A (zh) * | 2016-08-11 | 2017-01-04 | 广州爱九游信息技术有限公司 | 录屏直播方法和装置、移动设备及直播*** |
CN108235107A (zh) * | 2016-12-15 | 2018-06-29 | 广州市动景计算机科技有限公司 | 视频录制方法、装置及电子终端 |
Also Published As
Publication number | Publication date |
---|---|
CN109168014A (zh) | 2019-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109168014B (zh) | 一种直播方法、装置、设备及存储介质 | |
US11303881B2 (en) | Method and client for playing back panoramic video | |
CN106789991B (zh) | 一种基于虚拟场景的多人互动网络直播方法及*** | |
KR20190008901A (ko) | 가상 현실 미디어 콘텐트의 스트리밍을 개선하는 방법, 디바이스, 및 컴퓨터 프로그램 | |
EP3831075A1 (en) | Generating composite video stream for display in vr | |
KR100889367B1 (ko) | 네트워크를 통한 가상 스튜디오 구현 시스템 및 그 방법 | |
JP2018078583A (ja) | デジタルビデオストリーミングにおけるトリック再生 | |
US11528538B2 (en) | Streaming volumetric and non-volumetric video | |
US11348307B2 (en) | Method and device for processing content | |
WO2016199607A1 (ja) | 情報処理装置および情報処理方法 | |
CN110636321A (zh) | 数据处理方法、装置、***、移动终端及存储介质 | |
JP2023529748A (ja) | ディスオクルージョンアトラスを用いたマルチビュービデオ動作のサポート | |
US10607396B2 (en) | Dynamic rendering of low frequency objects in a virtual reality system | |
CN112929740A (zh) | 一种渲染视频流的方法、装置、存储介质及设备 | |
CN110933461A (zh) | 图像处理方法、装置、***、网络设备、终端及存储介质 | |
KR102417055B1 (ko) | 비디오 스트림의 후속 프로세싱을 위한 방법 및 디바이스 | |
WO2023226504A1 (zh) | 一种媒体数据处理方法、装置、设备以及可读存储介质 | |
KR20170009977A (ko) | 기간들에 걸쳐 오브젝트들을 식별하기 위한 방법 및 이에 대응하는 디바이스 | |
CN110662082A (zh) | 数据处理方法、装置、***、移动终端及存储介质 | |
US10529129B2 (en) | Dynamic selection mechanism for interactive video | |
JP2021530179A (ja) | 映像圧縮に基づくコンテンツレイヤーのためのシステム及び方法 | |
CN111343475A (zh) | 数据处理方法和装置、直播服务器及存储介质 | |
Kammachi‐Sreedhar et al. | Omnidirectional video delivery with decoder instance reduction | |
TWI817273B (zh) | 即時多視像視訊轉換方法和系統 | |
WO2023207516A1 (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 |