CN117896556A - 用于进行推流的方法、装置及计算机可读介质 - Google Patents

用于进行推流的方法、装置及计算机可读介质 Download PDF

Info

Publication number
CN117896556A
CN117896556A CN202311701963.XA CN202311701963A CN117896556A CN 117896556 A CN117896556 A CN 117896556A CN 202311701963 A CN202311701963 A CN 202311701963A CN 117896556 A CN117896556 A CN 117896556A
Authority
CN
China
Prior art keywords
push
target
pushing
target application
sdk
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.)
Pending
Application number
CN202311701963.XA
Other languages
English (en)
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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202311701963.XA priority Critical patent/CN117896556A/zh
Publication of CN117896556A publication Critical patent/CN117896556A/zh
Pending legal-status Critical Current

Links

Abstract

本申请提供了一种用于进行推流的方法、装置及计算机可读介质。根据本申请的方法包括:目标应用通过调用预配置的推流SDK来创建推流进程;创建推流进程后,所述目标应用通过所述推流SDK将目标应用使用的目标显卡的显卡位置信息传递至所述推流进程;所述目标应用通过所述推流进程来进行推流,其中,所述推流进程基于所述显卡位置信息从所述目标显卡的显存获取目标推流数据来进行推流。本申请在需要进行直播推流时,由基于Unity等引擎开发的目标应用发起推流,无需使用直播来进行推流,提升了使用目标应用进行直播推流的便利性,提升了效率。

Description

用于进行推流的方法、装置及计算机可读介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种进行推流的方法、装置及计算机可读介质。
背景技术
基于现有技术的方案,在游戏等具有直播功能的应用程序中,一般需要通过直播机或其他直播工具来进行直播推流。例如,Unity是一款非常流行的游戏引擎,目前市场上有非常多的游戏是用Unity开发的。基于现有技术的方案,在基于Unity开发的游戏应用中要直播游戏的话,一般是通过专门的直播机或者通用的直播工具,比如OBS把游戏窗口作为一个视频源来进行直播推流。使用直播机进行推流时,直播机中嵌入Unity,由Unity将推流内容推至显存。接着,直播机从显存中获取推流内容,并通过服务器推送至收看直播的用户所在的客户端。
发明内容
本申请的多个方面提供一种用于进行推流的方法、装置及计算机可读介质。
本申请的一方面,提供一种用于进行推流的方法,其中,所述方法包括:
目标应用通过调用预配置的推流SDK来创建推流进程,所述目标应用为基于目标引擎开发的具有直播功能的应用;
创建推流进程后,所述目标应用通过所述推流SDK将目标应用使用的目标显卡的显卡位置信息传递至所述推流进程;
所述目标应用通过所述推流进程来进行推流,其中,所述推流进程基于所述显卡位置信息从所述目标显卡的显存获取目标推流数据来进行推流。
本申请的一方面,提供一种用于进行推流的装置,其中,所述装置包括:
用于使得目标应用通过调用预配置的推流SDK来创建推流进程的装置,所述目标应用为基于目标引擎开发的具有直播功能的应用;
用于创建推流进程后,使得所述目标应用通过所述推流SDK将目标应用使用的目标显卡的显卡位置信息传递至所述推流进程的装置;
用于使得目标应用通过所述推流进程来进行推流的装置,其中,所述推流进程基于所述显卡位置信息从所述目标显卡的显存获取目标推流数据来进行推流。
本申请的另一方面,提供一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行申请实施例的方法。
本申请的另一方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现申请实施例的方法。
本申请实施例提供的方案中,在需要进行直播推流时,由基于Unity等引擎开发的目标应用发起推流,该目标应用通过调用推流SDK来创建推流进程并将目标应用使用的显卡的位置信息传递至该推流进程,使得推流进程从该显卡的显存获取目标应用的渲染纹理数据来进行推流,从而无需使用直播来进行推流,提升了使用目标应用进行直播推流的便利性,提升了效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出了本申请实施例提供的一种用于进行推流的方法的流程示意图;
图2示出了本申请实施例提供的一种用于进行推流的装置的结构示意图;
图3示出了根据本申请实施例的示例性的Unity应用与推流进程进行交互的流程示意图;
图4示出了适用于实现本申请实施例中的方案的一种设备的结构示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请一个典型的配置中,终端、服务网络的设备均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机程序指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
图1示出了本申请实施例提供的一种用于进行推流的方法的流程示意图。所述方法至少包括步骤S101、步骤S102和步骤S103。
其中,所述方法的执行主体可以是客户端设备、或者也可以是运行于客户端设备的应用程序,所述客户端设备包括但不限于计算机、手机、平板电脑、智能手表、手环等各类终端设备。
在直播的场景中,根据本申请实施例的方法可由运行目标应用的客户端设备来执行。所述目标应用为基于诸如Unity等引擎开发的应用。
其中,Unity是一款由Unity Technologies研发的、跨平台的2D和3D游戏引擎。如果Unity应用需要进行推流时,一般通过专门的直播机或者通用的直播工具来进行直播推流。其中,推流指将音频、视频或其他实时数据通过网络传输,使用户能够在数据传输的同时观看或听取内容,而不需要等待完整文件下载。
对于Unity引擎,本申请实施例的方法可在Unity引擎中集成一个推流SDK。当Unity应用需要进行推流时,调用该推流SDK的相关接口,推流SDK会创建用于进行推流的推流进程并与该推流进程进行通讯,使得推流进程获知当前Unity应用使用的显卡的位置信息,进而使得推流进程可从该显卡的显存获取Unity应用的渲染纹理(Render Texture)数据来进行推流。
其中,SDK为软件开发工具包(Software Development Kit)的简称,是为了方便开发者快速开发应用程序而提供的一套开发工具集合。
在图1所示的步骤之前,根据本申请实施例的方法通过执行步骤S104和步骤S105来将预配置的推流SDK集成至基于目标引擎开发的目标应用。
其中,所述目标引擎为渲染引擎。并且,所述渲染引擎本身不具备推流功能。所述目标引擎包括但不限于Unity引擎。
其中,所述预配置的推流SDK在被所述目标应用调用时创建推流进程并与所创建的推流进程进行交互。所述推流进程用于从目标应用所使用的显卡的显存中获取推流内容并推送至相应的直播观众所在的客户端设备。
在步骤S104中,所述目标应用获取集成所述推流SDK所需的资源数据。
其中,所述资源数据包括但不限于推流SDK的安装包。
在步骤S105中,所述目标应用基于所述资源数据,安装并导入所述推流SDK。
可选地,所述目标应用基于用户下载和安装推流SDK的操作,获取所述资源数据,并基于所述资源数据来安装和导入所述推流SDK。其中,安装所述推流SDK的过程可涉及基于用户的设置操作来设置环境变量,或添加依赖项等操作。
需要说明的是,本申请实施例的方法基于自动集成的方式或手动集成的方式将预配置的推流SDK集成至基于目标引擎开发的目标应用。
可选地,在将预配置的推流SDK集成至所述目标应用后,所述方法可通过与用户的交互来对集成了推流SDK的目标应用进行权限配置,例如,对目标应用使用摄像头和麦克风的权限进行配置等。
下面参照图1进行说明,在步骤S101中,目标应用通过调用推流SDK来创建推流进程。
其中,所述目标应用为基于目标引擎开发的具有直播功能的应用。
可选地,所述目标应用在启动时执行步骤S101调用推流SDK来创建推流进程。
可选地,目标应用响应于用于进行推流的用户操作执行步骤S101调用推流SDK来创建推流进程。
例如,用户在Unity应用中开启直播功能来进行直播推流。响应于该操作,Unity应用通过调用推流SDK来创建推流进程。
在步骤S102中,创建推流进程后,所述目标应用通过所述推流SDK将目标应用使用的目标显卡的显卡位置信息传递至所述推流进程。
其中,所述目标显卡为目标应用使用的客户端设备的显卡设备。
其中,所述显卡位置信息包括各种可用于指示目标显卡的显存地址的信息。基于所述显卡位置信息,所述推流进程可找到目标显卡的位置并访问目标显卡的显存。
根据一个实施例,所述步骤S102包括步骤S1021。
在步骤S1021中,所述目标应用获取该目标应用使用的目标显卡的显卡位置信息并传递至所述推流SDK,并经由所述推流SDK将所述显卡位置信息传递至所述推流进程。
根据一个实施例,所述方法还包括步骤S106和步骤S107。
在步骤S106中,所述目标应用通过推流SDK将所述显卡位置信息和其他相关参数作为设置参数信息传递至推流进程。
其中,所述其他相关参数包括各种与显卡相关的参数,例如,显卡设备ID等。
可选地,所述其他相关参数可包括通过Microsoft DirectX图形基础结构(DXGI)获取的适配器(Adapter)描述的AdapterLuid的LowPart参数和HighPart参数。
在步骤S107中,所述目标应用接收所述推流进程在设置成功后返回的确认信息。
其中,所述推流进程在接收到所述设置参数信息并设置成功后,返回相应的确认信息。
继续参照图1进行说明,在步骤S103中,所述目标应用通过所述推流进程来进行推流。
其中,所述推流进程基于所述显卡位置信息从所述目标显卡的显存获取目标推流数据来进行推流。
其中,所述目标推流数据为所述目标引擎的渲染纹理数据。所述渲染纹理数据包括但不限于音视频数据。
可选地,所述推流进程响应于目标应用开始推流的指令,来基于所述显卡位置信息,从所述目标显卡的显存获取目标推流数据来进行推流。
可选地,所述推流进程将获取到的目标推流数据作为直播音视频数据来进行推流。
可选地,所述推流进程对获取到的目标推流数据进行处理后进行推流。例如,基于用户的操作对目标推流数据进行特效处理,从而将添加特效的目标推流数据进行推流。
根据一个实施例,所述步骤S103包括步骤S1031。
在步骤S1031中,需要进行推流时,所述目标应用通过推流SDK来调用推流进程的应用程序接口,使得所述推流进程开始执行推流操作。
其中,所述推流进程开始执行推流操作后,基于所述显卡位置信息,从所述目标显卡的显存中获取目标推流数据来进行推流。
根据本实施例的方法还包括步骤S108。
在步骤S108中,需要进行直播推流时,所述目标应用将经过目标引擎渲染处理的渲染纹理数据传入目标显卡的显存。
根据一个实施例,所述方法还包括步骤S109。
在步骤S109中,需要结束推流时,所述目标应用通过推流SDK来调用推流进程的应用程序接口,使得所述推流进程结束推流。
下面结合一个示例对本申请实施例的方法进行说明。
本示例的方法由客户端设备执行,该客户端设备中运行Unity应用。该Unity应用可以是基于Unity开发的诸如游戏等各种应用。并且,本示例的方法在Unity中集成一个推流SDK,该推流SDK在被Unity应用调用时创建推流进程并与所述推流进程进行交互。图2示出了本示例的Unity应用通过推流SDK与推流进程进行交互的过程。
参照图2,在客户端设备中启动Unity应用后,该Unity应用调用SDK的接口来创建推流进程。被创建后,在该推流进程中进行进程的初始化操作。
接着,在推流准备阶段,Unity应用将所在客户端设备上的显卡位置信息和其他相关参数传递至推流SDK,再经由该推流SDK将该显卡位置信息和其他相关参数作为设置参数信息传递至推流进程。推流进程在接收到所述设置参数信息并设置成功后,返回相应的推流参数设置成功确认信息。
需要进行直播推流时,由Unity应用来发起推流。具体地,Unity应用通过推流SDK调用推流进程的API,以开始推流并将经过Unity渲染处理的渲染纹理(RT)数据传入显卡显存;开始推流后,推流进程基于已获知的显卡位置信息,从Unity应用使用的显卡的显存中获取Unity渲染纹理数据作为直播音视频数据来进行推流。
需要结束推流时,Unity应用通过推流SDK调用推流进程的API来在推流进程中结束推流。
结束流程后,如果再次需要进行直播推流,则再次执行上述由Unity应用来发起的推流流程。
根据本示例的方法,在需要进行直播推流时,由基于Unity等引擎开发的目标应用发起推流,该目标应用通过调用推流SDK来创建推流进程并将目标应用使用的显卡的位置信息传递至该推流进程,使得推流进程从该显卡的显存获取目标应用的渲染纹理数据来进行推流,从而无需使用直播来进行推流,提升了使用目标应用进行直播推流的便利性,提升了效率。
此外,本申请实施例还提供了一种用于进行推流的装置,该装置的结构如图3所示。所述装置包括:用于使得目标应用通过调用预配置的推流SDK来创建推流进程的装置(以下简称“进程创建装置101”),用于创建推流进程后,使得所述目标应用通过所述推流SDK将目标应用使用的目标显卡的显卡位置信息传递至所述推流进程的装置(以下简称“显卡获取装置102”),和用于使得目标应用通过所述推流进程来进行推流的装置(以下简称“推流处理装置103”)。
其中,所述装置包含于客户端设备中的目标应用。所述目标应用为基于诸如Unity等引擎开发的应用。
在图3所示的装置的操作之前,根据本申请实施例的装置还包括资源获取装置和SDK集成装置,所述装置通过资源获取装置和SDK集成装置的操作将预配置的推流SDK集成至基于目标引擎开发的目标应用。
其中,所述目标引擎为渲染引擎。并且,所述渲染引擎本身不具备推流功能。所述目标引擎包括但不限于Unity引擎。
其中,所述预配置的推流SDK在被所述目标应用调用时创建推流进程并与所创建的推流进程进行交互。所述推流进程用于从目标应用所使用的显卡的显存中获取推流内容并推送至相应的直播观众所在的客户端设备。
资源获取装置使得目标应用获取集成所述推流SDK所需的资源数据。
其中,所述资源数据包括但不限于推流SDK的安装包。
SDK集成装置使得目标应用基于所述资源数据,安装并导入所述推流SDK。
可选地,所述资源获取装置基于用户下载和安装推流SDK的操作,获取所述资源数据,SDK集成装置基于所述资源数据来安装和导入所述推流SDK。其中,SDK集成装置安装所述推流SDK的过程可涉及基于用户的设置操作来设置环境变量,或添加依赖项等操作。
需要说明的是,本申请实施例的装置基于自动集成的方式或手动集成的方式将预配置的推流SDK集成至基于目标引擎开发的目标应用。
可选地,在将预配置的推流SDK集成至所述目标应用后,所述方法可通过与用户的交互来对集成了推流SDK的目标应用进行权限配置,例如,对目标应用使用摄像头和麦克风的权限进行配置等。
下面参照图3进行说明,进程创建装置101使得目标应用通过调用推流SDK来创建推流进程。
其中,所述目标应用为基于目标引擎开发的具有直播功能的应用。
可选地,进程创建装置101在启动目标应用时,使得目标应用通过调用推流SDK来创建推流进程。
可选地,进程创建装置101响应于用于进行推流的用户操作,使得目标应用通过调用推流SDK来创建推流进程。例如,用户在Unity应用中开启直播功能来进行直播推流,进程创建装置101响应于该操作使得Unity应用调用推流SDK来创建推流进程。
创建推流进程后,显卡获取装置102使得所述目标应用通过所述推流SDK将目标应用使用的目标显卡的显卡位置信息传递至所述推流进程。
其中,所述目标显卡为目标应用使用的客户端设备的显卡设备。
其中,所述显卡位置信息包括各种可用于指示目标显卡的显存地址的信息。基于所述显卡位置信息,所述推流进程可找到目标显卡的位置并访问目标显卡的显存。
根据一个实施例,所述显卡获取装置102包括第一传递装置。
第一传递装置使得所述目标应用获取该目标应用使用的目标显卡的显卡位置信息并传递至所述推流SDK,并经由所述推流SDK将所述显卡位置信息传递至所述推流进程。
根据一个实施例,所述装置还包括参数传递装置和确认接收装置。
参数传递装置使得所述目标应用通过推流SDK将所述显卡位置信息和其他相关参数作为设置参数信息传递至推流进程。
其中,所述其他相关参数包括各种与显卡相关的参数,例如,显卡设备ID等。
可选地,所述其他相关参数可包括通过Microsoft DirectX图形基础结构(DXGI)获取的适配器(Adapter)描述的AdapterLuid的LowPart参数和HighPart参数。
确认接收装置使得所述目标应用接收所述推流进程在设置成功后返回的确认信息。
其中,推流进程在接收到所述设置参数信息并设置成功后,返回相应的确认信息。
继续参照图3进行说明,推流处理装置103使得目标应用通过所述推流进程来进行推流。
其中,所述推流进程基于所述显卡位置信息,从所述目标显卡的显存获取目标推流数据来进行推流。
其中,所述目标推流数据为所述目标引擎的渲染纹理数据。所述渲染纹理数据包括但不限于音视频数据。
可选地,推流处理装置103响应于目标应用开始推流的指令使得所述推流进程基于所述显卡位置信息,从所述目标显卡的显存获取目标推流数据来进行推流。
可选地,所述推流进程将获取到的目标推流数据作为直播音视频数据来进行推流。
可选地,所述推流进程对获取到的目标推流数据进行处理后进行推流。例如,基于用户的操作对所述目标推流数据进行特效处理,从而将添加特效的目标推流数据进行推流。
根据一个实施例,所述推流处理装置103包括推流执行装置。
需要进行推流时,推流执行装置使得目标应用通过推流SDK来调用推流进程的应用程序接口,使得所述推流进程开始执行推流操作。
其中,推流进程开始执行推流操作后,基于所述显卡位置信息,从所述目标显卡的显存中获取目标推流数据来进行推流。
根据本实施例的装置还包括纹理传入装置。
需要进行直播推流时,纹理传入装置使得所述目标应用将经过目标引擎渲染处理的渲染纹理数据传入目标显卡的显存。
根据一个实施例,所述装置还包括推流结束装置。
需要结束推流时,推流结束装置使得目标应用通过推流SDK来调用推流进程的应用程序接口,使得所述推流进程结束推流。
下面结合一个示例对本申请实施例的装置进行说明。
本示例的装置包含于客户端设备,该客户端设备中运行Unity应用。该Unity应用可以是基于Unity开发的诸如游戏等各种应用。并且,本示例的方法在Unity中集成一个推流SDK,该推流SDK在被Unity应用调用时创建推流进程并与所述推流进程进行交互。图2示出了本示例的Unity应用通过推流SDK与推流进程进行交互的过程。
参照图2,在客户端设备中启动Unity应用后,进程创建装置101使得该Unity应用调用SDK的接口来创建推流进程。被创建后,在该推流进程中进行进程的初始化操作。
接着,在推流准备阶段,显卡获取装置102使得Unity应用将所在客户端设备上的显卡位置信息和其他相关参数传递至推流SDK,再由推流SDK将该显卡位置信息和其他相关参数作为设置参数信息传递至推流进程。推流进程在接收到所述设置参数信息并设置成功后,返回相应的推流参数设置成功确认信息。
需要进行直播推流时,由Unity应用来发起推流。具体地,推流处理装置103使得Unity应用通过推流SDK调用推流进程的API,以开始推流并将经过Unity渲染处理的渲染纹理(RT)数据传入显卡显存;开始推流后,推流进程基于已获知的显卡位置信息,从Unity应用使用的显卡的显存中获取Unity渲染纹理数据作为直播音视频数据来进行推流。
需要结束推流时,推流结束装置使得Unity应用通过推流SDK调用推流进程的API来在推流进程中结束推流。
结束流程后,如果再次需要进行直播推流,则再次执行上述由Unity应用来发起的推流流程。
根据本示例的装置,在需要进行直播推流时,由基于Unity等引擎开发的目标应用发起推流,该目标应用通过调用推流SDK来创建推流进程并将目标应用使用的显卡的位置信息传递至该推流进程,使得推流进程从该显卡的显存获取目标应用的渲染纹理数据来进行推流,从而无需使用直播来进行推流,提升了使用目标应用进行直播推流的便利性,提升了效率。
基于同一发明构思,本申请实施例中还提供了一种电子设备,所述电子设备对应的方法可以是前述实施例中的用于进行推流的方法,并且其解决问题的原理与该方法相似。本申请实施例提供的所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述本申请的多个实施例的方法和/或技术方案。
所述电子设备可以是用户设备、或者用户设备与网络设备通过网络相集成所构成的设备,或者也可以是运行于上述设备的应用程序,所述用户设备包括但不限于计算机、手机、平板电脑、智能手表、手环等各类终端设备,所述网络设备包括但不限于如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现,可以用于实现设置闹钟时的部分处理功能。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。
图4示出了适用于实现本申请实施例中的方法和/或技术方案的一种设备的结构,该设备1200包括中央处理单元(CPU,Central Processing Unit)1201,其可以根据存储在只读存储器(ROM,Read Only Memory)1202中的程序或者从存储部分1208加载到随机访问存储器(RAM,Random Access Memory)1203中的程序而执行各种适当的动作和处理。在RAM1203中,还存储有系统操作所需的各种程序和数据。CPU 1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O,Input/Output)接口1205也连接至总线1204。
以下部件连接至I/O接口1205:包括键盘、鼠标、触摸屏、麦克风、红外传感器等的输入部分1206;包括诸如阴极射线管(CRT,Cathode Ray Tube)、液晶显示器(LCD,LiquidCrystal Display)、LED显示器、OLED显示器等以及扬声器等的输出部分1207;包括硬盘、光盘、磁盘、半导体存储器等一个或多个计算机可读介质的存储部分1208;以及包括诸如LAN(局域网,Local Area Network)卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。
特别地,本申请实施例中的方法和/或实施例可以被实现为计算机软件程序。例如,本申请公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在该计算机程序被中央处理单元(CPU)1201执行时,执行本申请的方法中限定的上述功能。
本申请另一实施例还提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现前述本申请的任意一个或多个实施例的方法和/或技术方案。
具体来说,本实施例可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图或框图示出了按照本申请各种实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的针对硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或页面组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一个计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (10)

1.一种用于进行推流的方法,其中,所述方法包括:
目标应用通过调用预配置的推流SDK来创建推流进程,所述目标应用为基于目标引擎开发的具有直播功能的应用;
创建推流进程后,所述目标应用通过所述推流SDK将目标应用使用的目标显卡的显卡位置信息传递至所述推流进程;
所述目标应用通过所述推流进程来进行推流,其中,所述推流进程基于所述显卡位置信息从所述目标显卡的显存获取目标推流数据来进行推流。
2.根据权利要求1所述的方法,其中,所述目标应用通过调用预配置的推流SDK来创建推流进程之前,所述方法还包括:
所述目标应用获取集成所述推流SDK所需的资源数据;
所述目标应用基于所述资源数据,安装并导入所述推流SDK。
3.根据权利要求1或2所述的方法,其中,所述目标应用通过所述推流SDK将目标应用使用的目标显卡的显卡位置信息传递至所述推流进程包括:
所述目标应用获取该目标应用使用的目标显卡的显卡位置信息并传递至所述推流SDK,并经由所述推流SDK将所述显卡位置信息传递至所述推流进程。
4.根据权利要求3所述的方法,其中,所述方法还包括:
所述目标应用通过所述推流SDK将所述显卡位置信息和其他相关参数作为设置参数信息传递至推流进程;
所述目标应用接收所述推流进程在设置成功后返回的确认信息。
5.根据权利要求1或2所述的方法,其中,所述目标应用通过所述推流进程来进行推流包括:
需要进行推流时,所述目标应用通过推流SDK来调用推流进程的应用程序接口,使得所述推流进程开始执行推流操作。
6.根据权利要求5所述的方法,其中,所述方法还包括:
需要进行推流时,所述目标应用将经过目标引擎渲染处理的渲染纹理数据传入目标显卡的显存。
7.根据权利要求1或2所述的方法,其中,所述方法还包括:
需要结束推流时,所述目标应用通过推流SDK来调用推流进程的应用程序接口,使得所述推流进程结束推流。
8.一种用于进行推流的装置,其中,所述装置包括:
用于使得目标应用通过调用预配置的推流SDK来创建推流进程的装置,所述目标应用为基于目标引擎开发的具有直播功能的应用;
用于创建推流进程后,使得所述目标应用通过所述推流SDK将目标应用使用的目标显卡的显卡位置信息传递至所述推流进程的装置;
用于使得目标应用通过所述推流进程来进行推流的装置,其中,所述推流进程基于所述显卡位置信息从所述目标显卡的显存获取目标推流数据来进行推流。
9.一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至7中任一项所述的方法。
10.一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现如权利要求1至7中任一项所述的方法。
CN202311701963.XA 2023-12-11 2023-12-11 用于进行推流的方法、装置及计算机可读介质 Pending CN117896556A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311701963.XA CN117896556A (zh) 2023-12-11 2023-12-11 用于进行推流的方法、装置及计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311701963.XA CN117896556A (zh) 2023-12-11 2023-12-11 用于进行推流的方法、装置及计算机可读介质

Publications (1)

Publication Number Publication Date
CN117896556A true CN117896556A (zh) 2024-04-16

Family

ID=90649667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311701963.XA Pending CN117896556A (zh) 2023-12-11 2023-12-11 用于进行推流的方法、装置及计算机可读介质

Country Status (1)

Country Link
CN (1) CN117896556A (zh)

Similar Documents

Publication Publication Date Title
CN110389936B (zh) 一种启动小程序的方法、设备和计算机存储介质
TWI626593B (zh) 一種軟體升級的方法及裝置
EP4210053A1 (en) Application program control method and apparatus, electronic device, and storage medium
CN111722885B (zh) 程序运行方法、装置以及电子设备
CN111338623B (zh) 一种开发用户界面的方法、装置、介质和电子设备
CN110098998B (zh) 用于处理信息的方法和设备
CN110968331B (zh) 应用程序运行的方法和装置
CN111309375B (zh) 生成远程过程调用工具包的方法、装置、介质和电子设备
CN108549586B (zh) 信息处理方法和装置
CN113900721A (zh) 操作系统启动方法、装置和电子设备
WO2019029451A1 (zh) 发布移动应用的方法和电子设备
CN111324376B (zh) 功能配置方法、装置、电子设备及计算机可读介质
CN112835632B (zh) 一种端能力的调用方法、设备和计算机存储介质
CN111666199B (zh) 在智能终端上执行的调试方法以及软件调试器
US20200007959A1 (en) Method and apparatus for publishing information, and method and apparatus for processing information
CN109981546B (zh) 获取应用模块间的远程调用关系的方法和装置
CN110442416B (zh) 用于展示信息的方法、电子设备和计算机可读介质
CN112416303A (zh) 软件开发工具包热修复方法、装置及电子设备
CN117896556A (zh) 用于进行推流的方法、装置及计算机可读介质
CN110019059B (zh) 一种定时同步的方法和装置
CN112162755B (zh) 一种数据处理方法、装置、介质和电子设备
CN114489891A (zh) 云应用程序的控制方法、系统、装置、可读介质和设备
CN111124907A (zh) 一种手机游戏测试方法、装置和服务器
Kim Cloud computing to improve Javascript processing efficiency of mobile applications
CN115309415B (zh) 一种应用软件安装方法、装置、系统和电子设备

Legal Events

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