CN114390300B - 一种直播控制方法、装置、电子设备及计算机存储介质 - Google Patents

一种直播控制方法、装置、电子设备及计算机存储介质 Download PDF

Info

Publication number
CN114390300B
CN114390300B CN202011121900.3A CN202011121900A CN114390300B CN 114390300 B CN114390300 B CN 114390300B CN 202011121900 A CN202011121900 A CN 202011121900A CN 114390300 B CN114390300 B CN 114390300B
Authority
CN
China
Prior art keywords
client
live
audio
function
audio data
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
CN202011121900.3A
Other languages
English (en)
Other versions
CN114390300A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202011121900.3A priority Critical patent/CN114390300B/zh
Publication of CN114390300A publication Critical patent/CN114390300A/zh
Application granted granted Critical
Publication of CN114390300B publication Critical patent/CN114390300B/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供一种直播控制方法、装置、电子设备及计算机存储介质,属于计算机技术领域。本申请实施例中,响应在第一客户端中启动第二客户端的操作,在第一客户端对应的沙箱环境中运行第二客户端;获取第二客户端运行过程中播放的音频数据以及视频数据,并采集直播环境中直播对象的语音数据;对音频数据、视频数据以及直播对象的语音数据进行编码处理,得到直播视频流并上传至服务器,以使服务器将直播视频流推送至其它直播客户端。由于本申请实施例在第一客户端对应的沙箱环境中运行第二客户端,使第一客户端与第二客户端处于同一进程,则第一客户端可以获取到第二客户端运行过程中播放的音频数据,从而提高了直播效率,进一步优化了直播控制方式。

Description

一种直播控制方法、装置、电子设备及计算机存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种直播控制方法、装置、电子设备及计算机存储介质。
背景技术
随着移动互联网的发展和互联网+战略的推进,网络直播凭借准入门槛低,实时交互性等优势迅速壮大。
目前,随着中国游戏产业和电竞产业的扩大,游戏直播行业也得到了迅速发展,在传统的直播方式中,主播在进行游戏直播时需要至少准备两个终端设备,其中第一终端设备上安装有直播客户端,第二终端设备上安装有游戏客户端,主播操作第二终端设备上的游戏客户端过程中,通过第一终端设备上的直播客户端采集第二终端设备上游戏客户端外放的音频数据、主播声音数据,以及采集游戏客户端的画面,进行编码后得到直播视频流并上传至服务器。
因此,目前通过直播客户端对其它客户端的音视频进行直播时,需要搭建直播环境,直播方式较为复杂。
发明内容
本申请实施例提供一种直播控制方法、装置、电子设备及计算机存储介质,用以提高直播效率,进一步优化了直播控制方式。
第一方面,本申请实施例提供一种直播控制方法,包括:
响应在第一客户端中启动第二客户端的操作,在所述第一客户端对应的沙箱环境中运行所述第二客户端;
获取所述第二客户端运行过程中播放的音频数据;以及
获取所述第二客户端运行过程中播放的视频数据,并采集直播环境中直播对象的语音数据;对所述音频数据、所述视频数据以及所述直播对象的语音数据进行编码处理,得到直播视频流;将得到的所述直播视频流上传至服务器,以使所述服务器将所述直播视频流推送至其它直播客户端。
第二方面,本申请实施例提供一种直播控制装置,包括:
虚拟环境单元,用于响应在第一客户端中启动第二客户端的操作,在所述第一客户端对应的沙箱环境中运行所述第二客户端;
Hook单元,用于获取所述第二客户端运行过程中播放的音频数据;
推流单元,用于获取所述第二客户端运行过程中播放的视频数据,并采集直播环境中直播对象的语音数据;对所述音频数据、所述视频数据以及所述直播对象的语音数据进行编码处理,得到直播视频流;将得到的所述直播视频流上传至服务器,以使所述服务器将所述直播视频流推送至其它直播客户端。
第三方面,本申请实施例提供一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请提供的语音数据处理方法。
第四方面,本申请实施例提供一种计算机可读介质,存储有计算机可执行指令,所述计算机可执行指令用于执行本申请提供的语音数据处理方法。
本申请有益效果:
本申请实施例的第一客户端可以为直播客户端,第二客户端为运行待直播内容的客户端;由于本申请实施例第二客户端在第一客户端对应的沙箱环境中运行,第一客户端与第二客户端在运行过程中处于同一进程,则第一客户端可以直接获取到第二客户端运行过程中播放的音频数据,可以提高直播过程中获取音频数据的效率。另外,由于第二客户端在第一客户端对应的沙箱环境中运行,第一客户端可以直接获取第二客户端运行过程中播放的视频数据,并采集直播环境中直播对象的语音数据,通过对音频数据和视频数据进行编码处理,得到直播视频流并上传至服务器,以使服务器将直播视频流推送至其他直播客户端。本申请实施例的直播控制方法简化了直播控制流程,进一步优化了直播控制方式。
附图说明
图1为本申请实施例示例性的一种可选应用场景的示意图;
图2为本申请实施例提供的一种直播控制方法流程示意图;
图3为本申请实施例提供的第一客户端创建沙箱环境后的显示界面;
图4为本申请实施例提供的需添加的第二客户端列表显示界面;
图5为本申请实施例提供的在第一客户端的显示界面中展示的游戏初始化画面;
图6为本申请实施例提供的在第一客户端的显示界面中展示的游戏开始后的游戏运行画面;
图7为本申请实施例提供的选择第二客户端进行直播的显示界面示意图;
图8为本申请实施例提供的第二客户端直播类型的显示界面;
图9为本申请实施例提供的第二客户端的直播界面示意图;
图10为本申请实施例提供的直播对象触发第二客户端进行屏幕录制的显示界面;
图11为本申请实施例提供的第二客户端结束运行过程的显示界面示意图;
图12为本申请实施例提供的一种直播控制方法流程图;
图13为本申请实施例提供的一种直播控制装置的结构示意图;
图14为本申请实施例中的电子设备的结构示意图;
图15为本申请实施例中的一种计算装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
下面对文中出现的一些术语进行解释:
1、Hook:Hook技术即钩子函数,钩子函数是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在***级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。钩子的本质是一段用以处理***消息的程序,通过***调用,把它挂入***。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。
2、虚拟环境:也可以称沙箱环境,即是一个虚拟***程序,允许你在沙箱环境中运行浏览器或其他程序,因此运行所产生的变化可以随后删除。它创造了一个类似沙箱的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响。在网络安全中,沙箱指在隔离环境中,用以测试不受信任的文件或应用程序等行为的工具。
3、OPENSLES:游戏中使用的嵌入式跨平台免费的音频处理库。
4、RTMP:实时消息协议(Real-Time Messaging Protocol)也称实时消息传输协议,用于用户和后台服务器之间传输流媒体音频、视频和数据。
5、终端:又称为用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等,是一种向用户提供语音和/或数据连通性的设备,例如,具有无线连接功能的手持式设备、车载设备等。目前,一些终端的举例为:手机(mobilephone)、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)。
6、客户端:既可以指软件类的APP(Application,应用程序),也可以指终端设备。它具有可视的显示界面,能与用户进行交互;是与服务器相对应,为客户提供本地服务。针对软件类的应用程序,除了一些只在本地运行的应用程序之外,一般安装在普通的客户终端上,需要与服务端互相配合运行。因特网发展以后,较常用的应用程序包括了如收寄电子邮件时的电子邮件客户端,以及即时通讯的客户端等。对于这一类应用程序,需要网络中有相应的服务器和服务程序来提供相应的服务,如数据库服务,配置参数服务等,这样在客户终端和服务器端,需要建立特定的通信连接,来保证应用程序的正常运行。
下面对本申请实施例的设计思想进行简要介绍:
目前,在传统的直播方式中,主播需要搭建直播环境进行直播,主播在进行游戏直播时需要至少准备两个终端设备,其中,第一终端设备上安装有直播客户端,第二终端设备上安装有游戏客户端,主播操作第二终端设备上的游戏客户端过程中,游戏客户端的声音一般是外放的,主播可以通过第一终端设备上的直播客户端采集第二终端设备上游戏客户端外放的音频数据、主播声音数据,以及采集游戏客户端的画面,进行编码后得到直播视频流并上传至服务器。目前通过直播客户端对其它客户端的音视频进行直播时,需要搭建直播环境,直播方式较为复杂。另外,当主播在操作第二终端设备的游戏客户端过程中可能会选择佩戴耳机,则游戏客户端运行过程的声音无法获取,主播只能通过第一终端设备上安装的直播客户端采集主播的声音数据,以及采集游戏客户端的画面,进行编码后得到直播视频流并上传至服务器,而之后服务器可以将直播视频流上传至其他直播客户端,则通过其他直播客户端观看到的是没有游戏客户端运行过程的声音的直播视频流,为游戏直播带来很大的局限性。
本申请实施例提供一种直播控制方法,响应在第一客户端中启动第二客户端的操作,在第一客户端对应的沙箱环境中运行第二客户端;获取第二客户端运行过程中播放的音频数据;以及获取第二客户端运行过程中播放的视频数据,并采集直播环境中直播对象的语音数据;对音频数据、视频数据以及直播对象的语音数据进行编码处理,得到直播视频流;将得到的直播视频流上传至服务器,以使服务器将直播视频流推送至其它直播客户端。本申请实施例的第一客户端可以为直播客户端,第二客户端为运行待直播内容的客户端;由于本申请实施例第二客户端在第一客户端对应的沙箱环境中运行,第一客户端与第二客户端在运行过程中处于同一进程,则第一客户端可以直接获取到第二客户端运行过程中播放的音频数据,可以提高直播过程中获取音频数据的效率。另外,由于第二客户端在第一客户端对应的沙箱环境中运行,第一客户端可以直接获取第二客户端运行过程中播放的视频数据,并采集直播环境中直播对象的语音数据,通过对音频数据和视频数据进行编码处理,得到直播视频流并上传至服务器,以使服务器将直播视频流推送至其他直播客户端。本申请实施例的直播控制方法简化了直播控制流程,进一步优化了直播控制方式。
在介绍完本申请实施例的设计思想之后,下面对本申请实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
如图1所示,其为本申请实施例示例性的一种可选应用场景的示意图,包括移动终端11、直播对象12、云端服务器13;其中,移动终端11上安装有第一客户端和第二客户端,下面场景描述第一客户端以直播客户端为例,第二客户端以游戏客户端为例。
直播对象12在移动终端11上安装的直播客户端中启动游戏客户端,响应启动游戏客户端的操作,在直播客户端对应的沙箱环境中运行游戏客户端;直播客户端获取游戏客户端运行过程中播放的音频数据;以及获取游戏客户端运行过程中播放的视频数据,并采集直播环境中直播对象12的语音数据;直播客户端对音频数据、视频数据以及直播对象12的语音数据进行编码处理得到直播视频流;直播客户端与云端服务器13通信;直播客户端将得到的直播视频流上传至云端服务器13,云端服务器13将直播视频流推送至其他直播客户端。
其中,本申请实施例的云端服务器可以为一个独立服务器,或者可以是由多个服务器组成的服务器集群;云端服务器13可以为直播客户端对应的服务器。
下面结合上述描述的应用场景,参考图2-图13来描述本申请示例性实施方式提供的一种直播控制方法。需要注意的是,上述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。
如图2所示,其为本申请实施例提供的直播控制方法流程示意图,该方法可以包括以下步骤:
步骤S201、响应在第一客户端中启动第二客户端的操作,在第一客户端对应的沙箱环境中运行第二客户端;
步骤S202、获取第二客户端运行过程中播放的音频数据;
步骤S203、获取第二客户端运行过程中播放的视频数据,并采集直播环境中直播对象的语音数据;对音频数据、视频数据以及直播对象的语音数据进行编码处理,得到直播视频流;将得到的直播视频流上传至服务器,以使服务器将直播视频流推送至其它直播客户端。
本申请实施例在第一客户端中创建沙箱环境,第一客户端为沙箱环境的宿主客户端,第二客户端安装于沙箱环境中。
在第一客户端运行过程中,通过第一客户端的显示界面,直播对象可以触发启动第二客户端的操作,响应在第一客户端中启动第二客户端的操作,在第一客户端对应的沙箱环境中运行第二客户端。
需要说明的是,在第一客户端中创建沙箱环境,首先需要获取***安装包,解析安装包并根据提示进行安装,安装成功后,需要进一步安装沙箱环境必备插件,则在第一客户端中成功创建沙箱环境;简单来讲就是将***的核心源代码复制到第一客户端,其中,***的核心源代码是开放的,因此,可以在第一客户端创建沙箱环境,在第一客户端的沙箱环境中可以安装和运行其他客户端。本申请实施例在第一客户端创建沙箱环境后,可以通过解析第二客户端的安装包,安装并运行第二客户端,由于是在沙箱环境中运行第二客户端,第二客户端认为在正常的***中运行,而在沙箱环境中运行第二客户端,可以保证第一客户端与第二客户端运行在同一进程。
其中,第二客户端可以是多种类型的客户端,在第一客户端创建的沙箱环境中,可以安装多种不同类型的客户端。
例如,第一客户端可以为直播助手客户端,直播助手客户端中创建有沙箱环境,如图3所示的直播助手客户端的显示界面,直播助手客户端提供多种直播方式,如图3中所示的屏幕直播、电脑投屏、摄像头直播、录制视频等直播方式;直播对象通过点击直播助手客户端显示界面中的“开启子应用”选项,可以安装或运行其他客户端。
在直播对象点击直播助手客户端显示界面中的“开启子应用”选项之后,直播助手客户端的显示界面如图4所示,直播助手客户端的显示界面中展示在沙箱环境中已安装的客户端列表,直播对象通过选择已安装的客户端,可以在沙箱环境中运行选择的客户端;或者,直播对象通过触摸直播客户端显示界面中“添加”选项,可以在沙箱环境中安装新的客户端。
例如,在直播助手客户端的沙箱环境中运行的第二客户端可以为游戏客户端。
实施中,在第一客户端对应的沙箱环境添加第二客户端之后,直播对象可以点击运行第二客户端,例如,第二客户端可以为直播对象需要进行直播的游戏客户端,在直播对象在第一客户端的沙箱环境中启动第二客户端后,第一客户端的显示界面中展示第二客户端中运行的游戏画面,如图5所示的在第一客户端的显示界面中展示的游戏初始化画面,,直播对象可以通过选择游戏模式开始游戏,则在第一客户端的显示界面中展示如图6所示游戏开始后的游戏运行画面。
在第一客户端的沙箱环境中运行第二客户端过程中,直播对象可以操作第一客户端对第二客户端的显示内容进行直播;
例如,第一客户端为直播助手客户端,第二客户端为在第一客户端沙箱环境中运行的游戏客户端,当直播对象需要对第一客户端沙箱环境中运行的游戏客户端的显示内容进行直播时,如图7所示,可以通过触发显示界面中的“窗口截取”按钮,选择对游戏窗口进行直播,在直播对象选择游戏窗口之后,直播对象点击显示界面中的“开始直播”按钮,则在显示界面中弹出如图8所示的直播类型显示界面,直播对象需要填写直播游戏名称、直播标题、房间简介等相关信息,直播对象通过点击弹出的显示界面中的“开始直播”按钮,进入如图9所示的直播界面。
本申请实施例在第一客户端的沙箱环境中运行第二客户端过程中,直播对象操作第一客户端对第二客户端的显示内容进行直播之后,第一客户端需要获取第二客户端运行过程中播放的音频数据和视频数据,以及采集直播对应的语音数据;对音频数据、视频数据和语音数据进行编码处理后得到直播视频流。
下面针对本申请实施例获取第二客户端运行过程中播放的音频数据、视频数据,以及采集直播对应的语音数据的方式分别进行说明。
1、第一客户端获取第二客户端运行过程中播放的音频数据。
在第二客户端在第一客户端的沙箱环境中运行过程中,若第二客户端在运行过程中涉及音视频播放,则第二客户端在沙箱环境中需要创建播放器;
例如,若第二客户端为游戏客户端,则游戏客户端可以通过调用OPENSLES的CreateAudioPlayer接口创建播放器,
其中CreateAudioPlayer函数原型为:
SLresult(*CreateAudioPlayer)(SLEngineItf self,SLObjectItf*pPlayer,SLDataSource*pAudioSrc,SLDataSink*pAudioSnk,SLuint32 numInterfaces,constSLInterfaceID*pInterfaceIds,const SLboolean*pInterfaceRequired);
CreateAudioPlayer函数中游戏客户端播放的音频数据的音频参数。例如,pAudioSrc中包含音频数据的音频参数。
由于本申请实施例在获取第二客户端播放的音频数据后,需要根据音频数据的音频参数确定音频数据的格式,在对音频数据和语音数据进行音频编码处理时,需要保证获取到的音频数据的格式为直播视频流要求的预设格式,因此,本申请实施例第一客户端需要确定第二客户端播放的音频数据的格式;
实施中,本申请实施例第一客户端在获取到音频数据的音频参数后,可以判断音频数据的格式是否为预设格式。
例如,在第二客户端为游戏客户端时,本申请实施例可以获取CreateAudioPlayer函数pAudioSrc中包含音频数据的音频参数。
一种可选的实施方式为,第一客户端调用音频参数Hook函数,对第二客户端运行过程中调用的播放器创建函数进行拦截,获取第二客户端运行过程中播放的音频数据的音频参数;
例如,音频参数Hook函数可以为CreateAudioPlayerHook函数。
由于本申请实施例第二客户端在第一客户端的沙箱环境中运行,第二客户端与第一客户端在同一进程,因此通过定义Hook函数的方式,第一客户端可以对第二客户端运行的CreateAudioPlayer函数进行Hook,从而获取CreateAudioPlayer函数中的pAudioSrc,进一步从pAudioSrc中解析出音频数据的音频参数。
其中,音频参数可以包括但不限于:
采样率、数据格式、声道数、位数。
需要说明的是,本申请实施例第一客户端通过调用音频参数Hook函数,对第二客户端的CreateAudioPlayer函数进行拦截,从而获取到第二客户端运行过程中播放的音频数据的音频参数,由于第二客户端的CreateAudioPlayer函数被第一客户端拦截,为保证第二客户端的正常运行,第二客户端需再次调用CreateAudioPlayer函数。
一种可选的实施方式为,本申请实施例调用音频数据Hook函数,对第二客户端运行过程中调用的音频播放函数进行拦截,获取第二客户端运行过程中播放的音频数据;
例如,第二客户端为游戏客户端,假设游戏客户端运行过程中调用Enquence函数播放音频;则音频数据Hook函数可以定义为EnquenceHook函数;
其中Enquence函数原型为:
struct SLBufferQueueItf_{SLresult(*Enqueue)(SLBufferQueueItf self,const void*pBuffer,SLuint32 size);};
需要说明的是,pBuffer为数据,size为大小。
实施中,本申请实施例通过查找Enquence的got表,查找到Enquence函数,定义EnquenceHook函数,对第二客户端运行过程中调用的Enquence函数进行拦截,获取第二客户端运行过程中播放的音频数据。
需要说明的是,本申请实施例第一客户端通过调用音频数据Hook函数,对第二客户端的Enquence函数进行拦截,从而获取到第二客户端运行过程中播放的音频数据,由于第二客户端的Enquence函数被第一客户端拦截,为保证第二客户端的正常播放音频,第二客户端需再次调用Enquence函数。
2、第一客户端获取第二客户端运行过程中播放的视频数据。
实施中,第一客户端对第二客户端运行过程中的显示界面进行屏幕录制处理,得到第二客户端运行过程中播放的视频数据。
例如,如图10所示,第一客户端以直播助手客户端为例,第二客户端以游戏客户端为例,游戏客户端运行过程中,直播对象可以通过勾选直播助手客户端显示界面中的“同时录制视频”按钮,进行屏幕录制,得到第二客户端运行过程中播放的视频数据。
3、第一客户端采集直播对象的语音数据。
实施中,第一客户端通过麦克风对当前的直播环境中的声音进行采集,得到直播对应的语音数据;
需要说明的是,第一客户端在采集直播对象的语音数据时使用的麦克风为第一客户端安装于的终端设备的麦克风。
本申请实施例在获取到第二客户端运行过程中播放的音频数据、视频数据和直播对象的语音数据之后,对音频数据、视频数据和直播对象的语音数据进行编码处理,得到直播视频流。
实施中,首先根据获取到的音频数据的音频参数,判断音频数据的格式是否为预设格式;
需要说明的是,预设格式可以为预先设置的第一客户端推送至服务器的直播视频流规定的音频格式。
下面针对是否为预设格式的不同情况分别进行说明:
情况1、根据音频参数确定音频数据的格式为预设格式。
需要说明的是,假设预设格式为48000HZ,则判断第二客户端运行过程中音频数据的音频参数也为48000HZ,则确定音频数据的格式为预设格式。
本申请实施例第一客户端确定音频数据的格式为预设格式之后,对音频数据和直播对象的语音数据进行音频编码处理,得到目标音频数据。
情况2、根据音频参数确定音频数据的格式不是预设格式。
需要说明的是,假设预设格式为48000HZ,若第二客户端运行过程中音频数据的音频参数为16000HZ,则确定音频数据的格式不是预设格式。
实施中,在确定音频数据的格式不是预设格式之后,则对第二客户端运行过程中播放的音频数据进行重采样处理,得到预设格式的音频数据;例如,将16000HZ的音频数据进行重采样得到48000HZ的音频数据。
本申请实施例第一客户端进行重采样得到预设格式的音频数据之后,对音频数据和直播对象的语音数据进行音频编码处理,得到目标音频数据。
另外,第一客户端对得到的第二客户端运行过程中播放的视频数据进行视频编码处理,得到目标视频数据。
本申请实施例第一客户端在得到目标音频数据和目标视频数据之后,将目标音频数据和目标视频数据封装为直播视频流。
例如,本申请实施例的目标音频数据可以为高级音频编码(Advanced AudioCoding,AAC)格式,目标视频数据可以根据高级视频编码(Advanced Video Coding,H264)方式得到,直播视频流可以为RTMP流。
实施中,第一客户端将得到的直播视频流上传至服务器,由服务器将直播视频流推送至其它直播客户端。
本申请实施例在通过第一客户端对第二客户端的内容进行直播过程中,若直播对象需要结束直播,如图11所示,可以通过触发显示界面中的结束直播按钮,结束对第二客户端的内容的直播。
如图12所示,本申请实施例提供的一种直播控制方法流程图,包括以下步骤:
步骤S1201、第一客户端响应在第一客户端中启动第二客户端的操作,在第一客户端对应的沙箱环境中运行第二客户端;
步骤S1202、第一客户端调用音频参数Hook函数,对第二客户端运行过程中调用的CreateAudioPlayer函数进行拦截,获取第二客户端运行过程中播放的音频数据的音频参数;
步骤S1203、第一客户端调用音频数据Hook函数,对第二客户端运行过程中调用的Enquence函数进行拦截,获取第二客户端运行过程中播放的音频数据;
步骤S1204、第一客户端对第二客户端运行过程中的显示界面进行屏幕录制处理,得到第二客户端运行过程中播放的视频数据;
步骤S1205、第一客户端通过麦克风对当前的直播环境中的声音进行采集,得到直播对象的语音数据;
步骤S1206、第一客户端根据音频参数确定音频数据的格式是否为预设格式;如果是,则执行步骤S1208;否则,执行步骤S1207;
步骤S1207、第一客户端对音频数据进行重采样处理,得到预设格式的音频数据;
步骤S1208、第一客户端对音频数据和直播对象的语音数据进行音频编码处理,得到目标音频数据;
步骤S1209、第一客户端对视频数据进行视频编码处理,得到目标视频数据;
步骤S1210、第一客户端将目标音频数据和目标视频数据封装为直播视频流;
步骤S1211、第一客户端将得到的直播视频流上传至服务器,以使服务器将直播视频流推送至其它直播客户端。
如图13所示,为本申请实施例中的一种直播控制装置1300的结构示意图,包括:
虚拟环境单元1301,用于响应在第一客户端中启动第二客户端的操作,在第一客户端对应的沙箱环境中运行第二客户端;
Hook单元1302,用于获取第二客户端运行过程中播放的音频数据;
推流单元1303,用于获取第二客户端运行过程中播放的视频数据,并采集直播环境中直播对象的语音数据;对音频数据、视频数据以及直播对象的语音数据进行编码处理,得到直播视频流;将得到的直播视频流上传至服务器,以使服务器将直播视频流推送至其它直播客户端。
可选地,推流单元1303具体用于:
对音频数据和直播对象的语音数据进行音频编码处理,得到目标音频数据;以及,对视频数据进行视频编码处理,得到目标视频数据;
将目标音频数据和目标视频数据封装为直播视频流。
可选地,Hook单元1302还用于:
获取第二客户端运行过程中播放的音频数据的音频参数;
根据音频参数确定音频数据的格式为预设格式。
可选地,推流单元1303还用于:
若根据音频参数确定音频数据的格式不是预设格式,则对音频数据进行重采样处理,得到预设格式的音频数据。
可选地,Hook单元1302具体用于:
调用音频数据Hook函数,对第二客户端运行过程中调用的音频播放函数进行拦截,获取第二客户端运行过程中播放的音频数据。
可选地,推流单元1303具体用于:
对第二客户端运行过程中的显示界面进行屏幕录制处理,得到第二客户端运行过程中播放的视频数据。
可选地,Hook单元1302具体用于:
调用音频参数Hook函数,对第二客户端运行过程中调用的播放器创建函数进行拦截,获取第二客户端运行过程中播放的音频数据的音频参数。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
所属技术领域的技术人员能够理解,本申请的每个方面可以实现为***、方法或程序产品。因此,本申请的每个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
在一些可能的实施方式中,本申请实施例还提供一种电子设备,参阅图14所示,电子设备1400可以至少包括至少一个处理器1401、以及至少一个存储器1402。其中,存储器1402存储有程序代码,当程序代码被处理器1401执行时,使得处理器1401执行本说明书上述描述的根据本申请各种示例性实施方式的直播控制方法中的步骤,例如,处理器1401可以执行如图2中所示的步骤。
在一些可能的实施方式中,本申请实施例还提供一种计算装置,可以至少包括至少一个处理单元、以及至少一个存储单元。其中,存储单元存储有程序代码,当程序代码被处理单元执行时,使得处理单元执行本说明书上述描述的根据本申请各种示例性实施方式的直播控制方法中的步骤,例如,处理器1401可以执行如图2所示的步骤。
下面参照图15来描述根据本申请的这种实施方式的计算装置1500。图15的计算装置1500仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图15,计算装置1500以通用计算装置的形式表现。计算装置1500的组件可以包括但不限于:上述至少一个处理单元1501、上述至少一个存储单元1502、连接不同***组件(包括存储单元1502和处理单元1501)的总线1503。
总线1503表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、***总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元1502可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)1521或高速缓存存储单元1522,还可以进一步包括只读存储器(ROM)1523。
存储单元1502还可以包括具有一组(至少一个)程序模块1524的程序/实用工具1525,这样的程序模块1524包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算装置1500也可以与一个或多个外部设备1504(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与计算装置1600交互的设备通信,或与使得该计算装置1500能与一个或多个其它计算装置进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1505进行。并且,计算装置1500还可以通过网络适配器1506与一个或者多个网络(例如局域网(LAN),广域网(WAN)或公共网络,例如因特网)通信。如图所示,网络适配器1506通过总线1503与用于计算装置1500的其它模块通信。应当理解,尽管图中未示出,可以结合计算装置1500使用其它硬件或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
在一些可能的实施方式中,本申请提供的直播控制方法的每个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的直播控制中的步骤,例如,计算机设备可以执行如图2所示的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (6)

1.一种直播控制方法,其特征在于,应用于第一客户端,所述第一客户端用于发起直播,该方法包括:
所述第一客户端运行在目标进程中后,获取沙箱环境的***安装包和必备插件;基于所述***安装包和所述必备插件,在所述第一客户端中创建所述沙箱环境;
所述第一客户端响应在所述第一客户端中启动第二客户端的操作,在所述第一客户端对应的所述沙箱环境中运行所述第二客户端,以使所述第二客户端运行在所述沙箱环境所在的所述目标进程中;
所述第一客户端基于播放器创建函数的函数链接地址存储的所述播放器创建函数的函数原型,定义所述播放器创建函数对应的音频参数Hook函数;在所述第二客户端调用所述播放器创建函数后,调用所述音频参数Hook函数,拦截所述播放器创建函数传递的音频参数,获得所述第二客户端运行过程中播放的音频数据的音频参数,以使所述第二客户端重新调用所述播放器创建函数;
所述第一客户端基于音频播放函数的函数链接地址存储的所述音频播放函数的函数原型,定义所述音频播放函数对应的音频数据Hook函数;在所述第二客户端调用所述音频播放函数后,调用所述音频数据Hook函数,拦截所述音频播放函数返回的音频数据,获得所述第二客户端运行过程中播放的音频数据,以使所述第二客户端重新调用所述音频播放函数;
所述第一客户端获取所述第二客户端运行过程中播放的视频数据,并采集直播环境中直播对象的语音数据;基于所述音频参数,确定所述音频数据的格式与预设格式不匹配时,基于所述预设格式,对所述音频数据进行重采样处理,获得预设格式的音频数据;对获得的预设格式的音频数据、所述视频数据以及所述直播对象的语音数据进行编码处理,得到直播视频流;将得到的所述直播视频流上传至服务器,以使所述服务器将所述直播视频流推送至其它直播客户端。
2.如权利要求1所述的方法,其特征在于,所述对获得的预设格式的音频数据、所述视频数据以及所述直播对象的语音数据进行编码处理,得到直播视频流,具体包括:
对获得的预设格式的音频数据和所述直播对象的语音数据进行音频编码处理,得到目标音频数据;以及,对所述视频数据进行视频编码处理,得到目标视频数据;
将所述目标音频数据和所述目标视频数据封装为所述直播视频流。
3.如权利要求1所述的方法,其特征在于,所述获取所述第二客户端运行过程中播放的视频数据,具体包括:
对所述第二客户端运行过程中的显示界面进行屏幕录制处理,得到所述第二客户端运行过程中播放的视频数据。
4.一种直播控制装置,其特征在于,应用于第一客户端,所述第一客户端用于发起直播,该装置包括:
虚拟环境单元,用于在目标进程中运行所述第一客户端后,获取沙箱环境的***安装包和必备插件;以及,基于所述***安装包和所述必备插件,在所述第一客户端中创建所述沙箱环境;以及,响应在所述第一客户端中启动第二客户端的操作,在所述第一客户端对应的所述沙箱环境中运行所述第二客户端,以使所述第二客户端运行在所述沙箱环境所在的所述目标进程中;
Hook单元,用于基于播放器创建函数的函数链接地址存储的所述播放器创建函数的函数原型,定义所述播放器创建函数对应的音频参数Hook函数;在所述第二客户端调用所述播放器创建函数后,调用所述音频参数Hook函数,拦截所述播放器创建函数传递的音频参数,获得所述第二客户端运行过程中播放的音频数据的音频参数,以使所述第二客户端重新调用所述播放器创建函数;
基于音频播放函数的函数链接地址存储的所述音频播放函数的函数原型,定义所述音频播放函数对应的音频数据Hook函数;在所述第二客户端调用所述音频播放函数后,调用所述音频数据Hook函数,拦截所述音频播放函数返回的音频数据,获得所述第二客户端运行过程中播放的音频数据,以使所述第二客户端重新调用所述音频播放函数;
推流单元,用于获取所述第二客户端运行过程中播放的视频数据,并采集直播环境中直播对象的语音数据;基于所述音频参数,确定所述音频数据的格式与预设格式不匹配时,基于所述预设格式,对所述音频数据进行重采样处理,获得预设格式的音频数据;对获得的预设格式的音频数据、所述视频数据以及所述直播对象的语音数据进行编码处理,得到直播视频流;将得到的所述直播视频流上传至服务器,以使所述服务器将所述直播视频流推送至其它直播客户端。
5.一种电子设备,其特征在于,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行权利要求1~3中任一所述方法的步骤。
6.一种计算机可读存储介质,其特征在于,其包括程序代码,当所述程序代码在电子设备上运行时,所述程序代码用于使所述电子设备执行权利要求1~3中任一所述方法的步骤。
CN202011121900.3A 2020-10-20 2020-10-20 一种直播控制方法、装置、电子设备及计算机存储介质 Active CN114390300B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011121900.3A CN114390300B (zh) 2020-10-20 2020-10-20 一种直播控制方法、装置、电子设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011121900.3A CN114390300B (zh) 2020-10-20 2020-10-20 一种直播控制方法、装置、电子设备及计算机存储介质

Publications (2)

Publication Number Publication Date
CN114390300A CN114390300A (zh) 2022-04-22
CN114390300B true CN114390300B (zh) 2024-04-26

Family

ID=81194106

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011121900.3A Active CN114390300B (zh) 2020-10-20 2020-10-20 一种直播控制方法、装置、电子设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN114390300B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105791958A (zh) * 2016-04-22 2016-07-20 北京小米移动软件有限公司 游戏直播方法及装置
CN108882055A (zh) * 2018-06-28 2018-11-23 广州虎牙信息科技有限公司 视频直播方法及***、合成视频流的方法及装置
CN109858237A (zh) * 2019-03-05 2019-06-07 广州酷狗计算机科技有限公司 音频数据采集方法、装置、终端及存储介质
CN109982148A (zh) * 2019-04-03 2019-07-05 广州虎牙信息科技有限公司 一种直播方法、装置、计算机设备与存储介质
CN110688314A (zh) * 2019-09-25 2020-01-14 启迪国信(北京)信息技术有限公司 一种应用的性能分析方法、装置、电子设备和存储介质
CN110694267A (zh) * 2019-11-14 2020-01-17 珠海金山网络游戏科技有限公司 一种云游戏实现方法及装置
CN110784757A (zh) * 2019-11-05 2020-02-11 网易(杭州)网络有限公司 直播客户端中的游戏直播方法及装置、介质、电子设备
CN110841278A (zh) * 2019-11-14 2020-02-28 珠海金山网络游戏科技有限公司 一种云游戏实现方法及装置
CN111083527A (zh) * 2019-12-31 2020-04-28 北京视博云科技有限公司 应用的视频播放方法、装置、存储介质及电子设备
CN111445901A (zh) * 2020-03-26 2020-07-24 北京达佳互联信息技术有限公司 音频数据获取方法、装置、电子设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105656876A (zh) * 2015-11-26 2016-06-08 乐视云计算有限公司 一种直播视频的播放方法、装置及***
CN107846633B (zh) * 2016-09-18 2023-07-14 腾讯科技(深圳)有限公司 一种直播方法及***
US11366789B2 (en) * 2017-06-29 2022-06-21 Microsoft Technology Licensing, Llc Content access

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105791958A (zh) * 2016-04-22 2016-07-20 北京小米移动软件有限公司 游戏直播方法及装置
CN108882055A (zh) * 2018-06-28 2018-11-23 广州虎牙信息科技有限公司 视频直播方法及***、合成视频流的方法及装置
CN109858237A (zh) * 2019-03-05 2019-06-07 广州酷狗计算机科技有限公司 音频数据采集方法、装置、终端及存储介质
CN109982148A (zh) * 2019-04-03 2019-07-05 广州虎牙信息科技有限公司 一种直播方法、装置、计算机设备与存储介质
CN110688314A (zh) * 2019-09-25 2020-01-14 启迪国信(北京)信息技术有限公司 一种应用的性能分析方法、装置、电子设备和存储介质
CN110784757A (zh) * 2019-11-05 2020-02-11 网易(杭州)网络有限公司 直播客户端中的游戏直播方法及装置、介质、电子设备
CN110694267A (zh) * 2019-11-14 2020-01-17 珠海金山网络游戏科技有限公司 一种云游戏实现方法及装置
CN110841278A (zh) * 2019-11-14 2020-02-28 珠海金山网络游戏科技有限公司 一种云游戏实现方法及装置
CN111083527A (zh) * 2019-12-31 2020-04-28 北京视博云科技有限公司 应用的视频播放方法、装置、存储介质及电子设备
CN111445901A (zh) * 2020-03-26 2020-07-24 北京达佳互联信息技术有限公司 音频数据获取方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN114390300A (zh) 2022-04-22

Similar Documents

Publication Publication Date Title
CN110113407B (zh) 小程序状态同步方法、设备和计算机存储介质
EP1739924A1 (en) Digital media player for validating operational state data of a digital media server
CN110740313B (zh) 硬件编码能力检测方法及装置
CN112653700B (zh) 一种基于webrtc网页视频通信的方法
CN102158553A (zh) 用于远程桌面的播放多媒体文件的方法和装置
KR101650804B1 (ko) 미디어 콘텐츠 공유 방법, 단말 장치, 및 콘텐츠 공유 시스템
CN102362269A (zh) 实时内核
CN110177300B (zh) 程序运行状态的监控方法、装置、电子设备和存储介质
CN112839238B (zh) 投屏播放方法、装置和存储介质
CN112799891B (zh) iOS设备测试方法、装置、***、存储介质及计算机设备
CN112188277B (zh) 投屏控制方法、装置、电子设备和计算机程序介质
KR20140106838A (ko) 스트리밍 기반의 게임 플랫폼을 이용한 클라우드 서비스 제공 장치 및 방법
CN113230660B (zh) 应用程序更新方法、装置及设备
CN113489805B (zh) 一种云桌面***的对接方法、装置、设备及存储介质
CN111093094A (zh) 视频转码方法、装置、***及电子设备及可读存储介质
CN111163330A (zh) 直播视频的渲染方法、装置、***、设备及存储介质
US20230285854A1 (en) Live video-based interaction method and apparatus, device and storage medium
CN110662017A (zh) 一种视频播放质量检测方法和装置
CN111131891A (zh) 一种音视频播放方法、装置、播放设备及***
CN111541906B (zh) 数据发送方法、装置、计算机设备及存储介质
CN114390300B (zh) 一种直播控制方法、装置、电子设备及计算机存储介质
CN116842205A (zh) 一种游戏回放方法、装置及存储介质
CN116233209A (zh) 一种gpu云渲染服务远程管理调度方法
CN107168648B (zh) 文件存储方法、装置及终端
EP4184924A1 (en) Network live broadcast interaction method and device

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