直播数据处理方法、装置、电子设备、介质及程序产品与流程

文档序号:26907452发布日期:2021-10-09 14:11阅读:99来源:国知局
直播数据处理方法、装置、电子设备、介质及程序产品与流程

1.本公开涉及人工智能技术领域,尤其涉及云计算、物联网等技术领域。


背景技术:

2.随着计算机技术的发展,直播作为一种新的交互方式、新技术逐渐兴起。直播的形式可以包括秀场直播、电商直播、知识直播等多种类别,各色形态的泛直播领域已渗透到各行各业。至今,全球网络流量绝大部分来自视频流量,拥有的视频流量的多少可直接或间接决定获得的资源的多少。而在直播能够带来大量视频流量的情况下,直播技术的改进,不仅能够促进直播方和观看方使用直播技术,而且能够为直播平台带来更多的资源。因此,如何给直播技术使用方提供更为便捷、易于操作的直播技术,是直播技术发展的一个重要问题。


技术实现要素:

3.本公开提供了一种直播数据处理方法、装置、电子设备、介质及程序产品。
4.根据本公开的一方面,提供了一种直播数据处理方法,包括:
5.获取第一直播流数据;
6.根据直播指令,在第一直播流数据中添加直播流分发命令;
7.将添加直播流分发命令后的第一直播流数据发送给云终端系统,使得云终端系统能够根据直播流分发命令将第一直播流分发到至少一个指定接收方。
8.根据本公开的另一方面,提供了一种直播数据处理方法,包括:
9.接收终端发送的第一直播流数据;
10.在检测到第一直播流数据携带直播流分发命令的情况下,根据直播流分发命令和第一直播流数据,生成分发到至少一个指定接收方的第三直播流数据;
11.将第三直播流数据发送到内容分发网络服务器,使得内容分发网络服务器能够将第三直播流数据发送到至少一个指定接收方。
12.根据本公开的另一方面,提供了一种直播数据处理装置,包括:
13.第一直播流数据获取模块,用于获取第一直播流数据;
14.添加模块,用于根据直播指令,在第一直播流数据中添加直播流分发命令;
15.第一发送模块,用于将添加直播流分发命令后的第一直播流数据发送给云终端系统,使得云终端系统能够根据直播流分发命令将第一直播流分发到至少一个指定接收方。
16.根据本公开的另一方面,提供了一种直播数据处理装置,包括:
17.第一直播流数据接收模块,用于接收终端发送的第一直播流数据;
18.第三直播流数据生成模块,用于在检测到第一直播流数据携带直播流分发命令的情况下,根据直播流分发命令和第一直播流数据,生成分发到至少一个指定接收方的第三直播流数据;
19.第三直播流发送模块,用于将第三直播流数据分发到至少一个指定接收方。
20.根据本公开的另一方面,提供了一种电子设备,包括:
21.至少一个处理器;以及
22.与该至少一个处理器通信连接的存储器;其中,
23.该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开任一实施例中的方法。
24.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行本公开任一实施例中的方法。
25.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本公开任一实施例中的方法。
26.根据本公开的技术,能够将第一直播流数据发送至云端的云终端系统,通过云端的系统对第一直播流数据进行分发,从而利用了云端强大的数据处理能力,提高直播流的分发效率;同时,本公开实施例通过在云端运行的终端系统,对第一直播流数据进行分发,从而分发参数等信息易于按照用户的需求进行定制,提高直播流分发的可定制性和云端分发模块的可用性。
27.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
28.附图用于更好地理解本方案,不构成对本公开的限定。其中:
29.图1是根据本公开一实施例的直播数据处理方法示意图;
30.图2是根据本公开另一实施例的直播数据处理方法示意图;
31.图3是根据本公开又一实施例的直播数据处理方法示意图;
32.图4是根据本公开又一实施例的直播数据处理方法示意图;
33.图5是根据本公开一示例的直播数据处理方法实施的系统架构示意图;
34.图6a

c为根据本公开一示例的直播流分发命令数据格式示意图;
35.图7a是根据本公开一示例的直播数据处理方法实施的直播流分发命令结构示意图;
36.图7b是根据本公开一示例的直播数据处理方法实施的直播流分发命令转换示意图;
37.图8是根据本公开一示例的直播数据处理方法实施的录屏框架示意图;
38.图9是根据本公开一实施例的直播数据处理装置示意图;
39.图10是根据本公开另一实施例的直播数据处理装置示意图;
40.图11是根据本公开又一实施例的直播数据处理装置示意图;
41.图12是根据本公开又一实施例的直播数据处理装置示意图;
42.图13是根据本公开又一实施例的直播数据处理装置示意图;
43.图14是根据本公开又一实施例的直播数据处理装置示意图;
44.图15是根据本公开又一实施例的直播数据处理装置示意图;
45.图16是根据本公开又一实施例的直播数据处理装置示意图;
46.图17是根据本公开又一实施例的直播数据处理装置示意图;
47.图18是根据本公开又一实施例的直播数据处理装置示意图;
48.图19是根据本公开又一实施例的直播数据处理装置示意图;
49.图20是根据本公开又一实施例的直播数据处理装置示意图;
50.图21是用来实现本公开实施例的直播数据处理方法的电子设备的框图。
具体实施方式
51.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
52.本公开实施例首先提供一种直播数据处理方法,如图1所示,包括:
53.步骤s11:获取第一直播流数据;
54.步骤s12:根据直播指令,在第一直播流数据中添加直播流分发命令;
55.步骤s13:将添加直播流分发命令后的第一直播流数据发送给云终端系统,使得云终端系统能够根据直播流分发命令将第一直播流数据分发到至少一个指定接收方。
56.本实施例中,图1所示的直播数据处理方法,可以应用于多种类型的终端,比如可以是任意与计算机系统、通信系统连接的输入输出设备。具体例如,可以是手机、台式电脑、笔记本电脑、平板电脑、可穿戴智能设备等。
57.第一直播流数据,可以为直播端录制的直播流数据,即可用于推流的直播流数据。其中可具体包括视频数据和音频数据中的至少一种。第一直播流数据可以为直播端获取的原始录制数据,也可以为经过编码等操作处理后能够直接进行直播流推流的数据。
58.直播指令,可以为用户在直播端下发的指令,可用于指示直播端发出用于推流的第一直播流数据。在一种实现方式中,若终端未收到直播指令,则可默认不执行第一直播流数据的推流操作。
59.直播流分发命令用于指示接收到直播流分发命令的设定接收方,将第一直播流数据发送至指定接收方。具体实现方式中,直播端的用户可在直播流分发命令中编写、设定第一直播流数据的接收方以及鉴权信息等。
60.在第一直播流数据中添加直播流分发命令,可以是将直播流分发命令与第一直播流数据作为可发送数据,直播流分发命令与第一直播流数据在可发送数据中可以为相互独立的数据。
61.在第一直播流数据中添加直播流分发命令,还可以是将直播流分发命令插入第一直播流数据,从而使得发送第一直播流数据时能够同时发送直播流分发命令。
62.在具体实现方式中,用户可通过操作终端键盘、触控屏、鼠标等输入装置,下发直播指令,终端接收到直播指令后,将直播流分发命令加入第一直播流数据中。
63.当终端为具体类型的终端设备时,云终端系统可以为在云端运行的对应类型的终端系统。云端系统也可以为能够在云端模拟在终端环境下运行的终端组件,比如,能够在云端运行的终端a组件、b组件,a、b组件在云端运行时,能够实现与在终端运行类似的效果和同样的功能。
64.云终端系统也可以为在云端运行的具有终端系统部分功能的模块、环境等,复用与终端系统相同部分的功能。
65.在一种实现方式中,在终端系统与云终端系统共同的部分发生变化的情况下,云终端系统可随之一起变化。或者,在云终端系统发生变化的情况下,终端系统与云终端系统共同的部分也发生变化。
66.比如,若终端为手机,则云终端系统可以为在云端运行的手机系统,即云手机系统。若终端为电脑,则云终端系统可以为在云端运行的计算机系统。
67.在一种实现方式中,在直播方启动直播端的终端系统后,云终端系统可同时启动。或者,在直播方启动直播端与云终端系统共同的部分时,云终端系统同时启动。
68.本实施例中,将添加直播流分发命令后的第一直播流数据发送给云终端系统,可以是将添加直播流分发命令后的第一直播流数据通过一些中间传输系统发送给云终端系统,或者直接通过设定协议发送给云终端系统。从而云终端系统能够通过解析接收到的数据,在检测出接收到的数据中存在直播流分发命令的情况下,根据直播流分发命令,得到分发内容,将与分发内容对应的第一直播流数据发送给指定接收方。
69.在另一种实现方式中,云终端系统在检测出接收到的数据中存在直播流分发命令的情况下,将连同直播流分发命令一起接收的第一直播流数据发送给指定接收方。
70.在另一种实现方式中,云终端系统在检测出接收到的数据中存在直播流分发命令的情况下,可将与接收直播流分发命令的同时刻接收到的第一直播流数据发送给指定接收方。
71.本公开实施例中,能够将第一直播流数据发送至云端的云终端系统,通过云端的系统对第一直播流数据进行分发,从而利用了云端强大的数据处理能力,提高直播流的分发效率;同时,本公开实施例通过在云端运行的终端系统,对第一直播流数据进行分发,从而分发参数等信息易于按照用户的需求进行定制,提高直播流分发的可定制性和云端分发模块的可用性。
72.在一种实施方式中,获取第一直播流数据之后,如图2所示,还包括:
73.步骤s21:将第一直播流数据发送至云终端系统;
74.步骤s22:接收云终端系统根据第一直播流数据返回的录屏数据;
75.步骤s23:播放录屏数据,接收用户根据录屏数据的播放效果发送的直播指令。
76.本实施例中,将第一直播流数据发送至云终端系统,可以是将不携带直播流分发命令的第一直播流数据发送至云终端系统。
77.本实施例中,录屏数据可以是云终端系统直接根据第一直播流数据生成的、内容与第一直播流数据相同的可播放的音频和/或视频数据;也可以是云终端系统预播放第一直播流数据时录制的音频和/或视频数据。
78.本实施例中,接收云终端系统根据第一直播流数据返回的录屏数据,可以是在第一直播流数据不携带直播流分发命令的情况下,接收云终端系统根据第一直播流数据返回的录屏数据。
79.播放录屏数据,可以是在接收到录屏数据之后,在直播端所连接的显示设备上播放录屏数据,呈现录屏数据在观众端呈现的播放效果(包括头像效果、直播方信息等等),或者呈现录屏数据在观众端呈现的视频画面(单纯的视频画面)效果。
80.本实施例中,在直播端播放录屏数据,从而直播端的用户能够通过与直播端连接的显示设备观看到录屏数据的播放效果,根据播放效果决定调整第一直播流的拍摄方式、
获取方式、参数等信息,改变观众端的观看效果;或者根据播放效果决定按照目前的播放效果进行第一直播流的推送,并通过直播端的输入设备发出直播指令。
81.本实施例中,直播端的用户能够通过直播端的显示装置观看到录屏数据的播放效果,从而能够在决定推流之前进行预览,在播放效果无法达到预期时,调整第一直播数据的获取方式或参数,确保直播效果能够接近或达到直播方的要求。
82.在一种实施方式中,根据直播指令,在第一直播流数据中添加直播流分发命令,包括:
83.根据直播指令,在第一直播流数据的关键帧的相邻位置处插入直播流分发命令,或者,在第一直播流数据的所有帧的相邻位置处插入直播流分发命令。
84.本实施例中,第一直播流数据的关键帧的相邻位置处,可以是关键帧之前或关键帧之后。第一直播流数据的所有帧的相邻位置处,可以是每一帧之前或之后。
85.第一直播流数据的关键帧,可以根据定义进行确定,也可以根据标注进行确定。
86.本实施例中,能够根据直播指令,在第一直播流数据中添加直播流分发命令,从而云终端系统接收到第一直播流数据之后,能够根据第一直播流数据是否携带直播流分发命令而确定是否执行第一直播流数据的分发。
87.在一种实施方式中,直播数据处理方法还包括:
88.接收用户配置命令;
89.根据用户配置命令,设置直播流分发命令中的鉴权信息和分发地址。
90.本实施例中,接收用户配置命令,可以是通过直播端的终端输入装置,接收用户配置命令。
91.通过设置鉴权信息和分发地址,能够配置直播流数据的接收方,比如,可配置a购物平台接收直播流数据、b购物平台不接收直播流数据,以及对各平台的鉴权方式、鉴权指令等。
92.本实施例中,直播端的用户能够根据需要配置直播流分发命令中的鉴权信息和分发地址,从而,实现直播流分发的可定制化。同时,用户能够通过在直播端进行配置操作,简化用户配置的条件,提高用户个性化需求的满足程度。
93.在一种实施方式中,直播流分发命令为补充增强信息格式的命令,直播数据处理方法还包括:
94.根据用户配置命令设置的鉴权信息和分发地址,生成直播流分发命令的对象简谱格式信息;
95.将对象简谱格式信息转换为补充增强信息格式的命令,作为直播流分发命令。
96.本实施例中,对象简谱格式信息为json格式信息,json信息容易编写,而补充增强信息格式(sei:supplemental enhancement information)的命令,是h264编码中一种信号通道,用于在直播流添加信息,实现数据从推流到播放透传和解析。
97.本实施例中,将对象简谱格式的信息转换为补充增强信息格式的直播流分发命令,从而使得直播端的用户在配置直播流分发命令时容易操作。
98.在一种实施方式中,直播数据处理方法还包括:
99.接收云终端系统转发的至少一个指定接收方的第二直播流数据;
100.在本地播放第二直播流数据。
101.在接收方设置有多个的情况下,第二直播流数据可以是所有接收方的直播流数据或部分接收方发送的直播流数据。
102.本实施例中,云终端系统能够转发直播方的拉流数据,从而,直播端能够通过云终端系统同时实现拉流操作。
103.本公开实施例还提供一种直播数据处理方法,如图3所示,包括:
104.步骤s31:接收终端发送的第一直播流数据;
105.步骤s32:在检测到第一直播流数据携带直播流分发命令的情况下,根据直播流分发命令和第一直播流数据,生成分发到至少一个指定接收方的第三直播流数据;
106.步骤s33:将第三直播流数据分发到至少一个指定接收方。
107.本实施例中,第三直播流数据可以是对第一直播流数据进行编码等方式处理后产生的数据,也可以是第一直播路数据本身。
108.本实施例中,s31

s33可以应用于云端,云端可运行有终端系统,或者运行有终端系统的部分组件,以实现终端系统的部分功能。
109.本实施例中,可针对不同的指定接收方生成不同的第三直播流数据。
110.本实施例中,云端能够根据接收到的直播流分发命令,将第一直播流数据生成用于发送到指定接收方的第三直播流数据,从而提高直播流分发效率。
111.在一种实施方式中,接收终端发送的第一直播流数据,包括:
112.通过云端的平台即服务系统的推流集群接收第一直播流数据,以及将第一直播流数据发送至云端的平台即服务系统(paas,platform as service)的中控平台集群;中控平台集群用于在检测到获取的第一直播流数据携带直播流分发命令的情况下,根据第一直播流数据和直播流分发命令,生成分发到至少一个指定接收方的第三直播流数据。
113.在一种实施方式中,接收终端发送的第一直播流数据之后,如图4所示,还包括:
114.步骤s41:在未检测到第一直播流数据携带直播流分发命令的情况下,根据第一直播流数据,生成虚拟屏;
115.步骤s42:在虚拟屏中渲染第一直播流数据的播放画面;
116.步骤s43:对第一直播流数据的播放画面进行录屏,获得录屏数据;
117.步骤s44:将录屏数据发送至云端的平台即服务系统的推流集群,使得推流集群能够通过云终端系统将录屏数据发送至终端。
118.在本实施例中,paas系统的推流集群,也可以称为播放集群。
119.在一种实施方式中,根据直播流分发命令和第一直播流数据,生成分发到至少一个指定接收方的第三直播流数据,包括:
120.根据直播流分发命令中的鉴权信息和指定接收方地址,生成针对相应指定接收方的第三直播流数据。
121.本实施例中,鉴权信息可根据配置进行发送或不发送。
122.在一种实施方式中,直播数据处理方法还包括:
123.在云端运行终端的直播软件开发工具包,生成云终端系统。
124.在一种实施方式中,直播数据处理方法还包括:
125.接收内容分发网络服务器转发的至少一个指定接收方的第四直播流数据;
126.将第四直播流数据发送至云终端系统,使得云终端系统能够将第四直播流数据发
送至终端。
127.第四直播流数据可以是至少一个接收方中的全部接收方或部分接收方发送的直播流数据。
128.在本公开一种示例中,直播系统架构可以参照图5所示:在终端系统中,设置有live sdk51,其中包括播放器(player)52和推流模块(pusher)53等组件。在云端,运行有云终端系统54,在终端为手机的情况下,云终端系统可以为bac(云手机系统)。
129.在本公开一种实施方式中,云手机系统可以是基于arm(advanced risc machines,advanced reduced instruction set computing machines,先进精简指令集计算机机器)服务器的虚拟化技术,可以将手机系统运行在云端。比如,在手机系统为android系统的情况下,云手机可将原生终端android手机系统运行在云端,以在云端实现手机直播的推流和拉流功能。
130.云终端系统54包含与终端系统中的live sdk一样的组件,即播放器55、推流模块56等。云终端系统54上可部署多个终端实例,云终端系统54部署的终端实例比如可以是桌面系统上一个可执行的应用程序。云端还包括直播paas系统57,直播paas系统57进一步包括接流集群58、中控平台(platform)集群59、播放集群510,接流集群58、中控平台集群59、播放集群510可以通过内网进行信息传输,相对使用互联网公网而言,paas系统57内的各集群可通过指定ip地址直连,达到比公网带宽高、延时低的效果,使得信息传输有可靠性保障。云终端系统54的功能相当于中控平台集群59部分功能,即将中控平台集群59的部分功能迁移到云终端系统54。播放集群510进一步包括一个或多个流路由。直播系统的云端还包括cdn(content distribution network,内容分发网络)服务器511,起到分发直播流的作用,cdn服务器511可包括多级节点,如1级节点、2级节点、3级节点等,能够实现鉴权后将直播流转发至直播paas系统57并实现加速数据传输的作用。
131.在具体实现方式中,用户可以选择终端与云端或者cdn之间的传输协议,比如,可选择rmpt(real time messaging protocol基于tcp的实时传输协议)协议、rtp(real

time transport protocol)协议、srt(secure reliable transport,安全可依赖传输,为一种低延时传输协议)协议、flv(flash video,流媒体格式)协议或者hls(http live streaming,基于http的自适应码率流媒体传输协议)协议等。
132.在本公开示例中,云终端系统和终端系统之间,可进行信息回调,确认被回调方的运行状态。
133.本公开示例中,通过云终端系统进行直播流的分发,相比于通过终端系统进行直播流的多留分发而言,后者需要通过终端直播软件将流推到云端直播系统,再经过直播中控平台将流分发到其他目的地址,这一过程中除了引入中控平台开发外,还加入了风险。本公开实施例通过云终端系统将直播流分发至各个接收方,实现将原有终端直播能力,借助云端架构实现手机云化,将耦合在直播paas系统中的逻辑分离出来,保持直播paas系统独立性,有助于提高系统稳定性,独立出来的系统更容易扩展和维护。
134.在终端为手机的情况下,云端直播系统与手机系统对接,在维持现有云端直播系统基础上,实现云端直播流分发效果。
135.在终端采用手机、云终端系统采用云手机系统的情况下,云手机系统部署可独立自运行的直播apk(android application package,android应用程序包),即手机sdk。当用
户使用终端手机的直播sdk开始进行直播推流时,直播系统检测到有直播流活跃的情况下,会以异步的方式通知给云手机系统,此时云手机系统会将早已内置到系统层面直播服务唤醒,并触发直播服务中的拉流行为,从而发起终端直播的用户,可以借助云手机系统虚拟屏观看直播画面。
136.当终端手机用户发起直播流分发请求时,终端手机直播sdk会在视频流中加入分发命令的标识,加入分发命令是通过在标准的h264编码格式中加入sei(supplemental enhancement information,补充增强信息)信息实现的。sei信息是h264编码中一种信号通道,可用于在直播流添加信息,实现数据从推流到播放透传和解析。加入sei的直播流会经过终端手机的直播sdk发送到云端直播系统中。在接收到加入sei的直播流时,云端直播系统已经唤醒云手机系统中的直播服务,此时云手机系统中的直播服务使用其中的拉流能力开始解析直播流信息,当解析到带有sei的直播流时,将会sei信息完整的解析出来,并发送给内置到云手机系统中的直播服务。
137.在本公开具体实现方式中,直播流数据的格式可以为h264或者h265格式,这两种格式的直播流的裸流数据结构可如图6a所示,包括nal header(network abstract layer header,网络抽象层报头)和rbsp(raw byte sequence payload,原生比特序列负荷)。
138.加入sei信息时,sei信息可插入直播流数据的关键帧前,如图6b;也可以插入直播流数据的每一帧前,如图6c所示。在图6b中,rbsp可包括sps(sequence parameter set,序列参数集)、pps(picture parameter set,图像参数集)、idr((instantaneous decoding refresh,即时解码刷新)帧、p帧、b帧,sei信息可位于第一个关键帧p帧之前。在图6c中,在所有idr帧、p帧、b帧前都插入sei信息。
139.如图7a所示,sei信息在h264或h265中的基本信息构成nalu(network abstract layer unit,网络抽象层单元)包括:头部|f|nri|sei unit type|,其中,f(forbidden)表示禁止位,nri表示nal ref idc(network abstract layer reference idc,网络抽象层参考级别),sei unit type表示sei单元类型。sei nalu还包括:sei payload type(sei负荷类型)、sei payload size(sei负荷大小)、sei payload uuid(sei负荷通用唯一识别码)、sei payload content(sei负荷内容)、rbsp trailing bits(pbsp尾部比特)。其中,|f|nri|sei unit type|、sei负荷类型和pbsp尾部比特的长度可为1字节,其余信息的长度可为多字节或不限字节。
140.在本公开具体实现方式中,sei信息的数据结构可以是由业务方可灵活定制的数据结构,由于终端直播sdk与内置在云手机系统中的直播服务、直播底层推拉流能力实际上可以是同一个sdk产品直播sdk,具备跨平台能力,可以部署在移动端,也可以部署在云手机系统中。所以针对业务方定制的sei信息,云手机中的直播服务是可以完全理解的,用户可进行sei信息的配置,根据用户的配置信息,生成json格式的直播指令,将json格式的直播指令信息转换为sei格式的直播指令(sei信息),系统可通过预先设置的对应关系解析sei格式的指令,并借助这个方式实现端到端的全链路直播流打通。
141.在本公开一种示例中,直播命令的生成可以如图7b所示。用户通过json格式的直播指令,配置直播指令的负载(payload)内容为图7b中“{}”之间的内容,即“usetype”:1,“user name”:“shajiefeng”。将json字符串打包为sei帧(sei信息),接收方可逐字符解析sei信息。例如,图7b中sei信息中的06可解读为nalu类型为sei;05可解读为sei类型;36可
解读为payload负载字节;08

b8可解读为uuid(universally unique identifier,通用唯一识别码);7b

00可解析为负荷(payload)内容,即“usetype”:1,“user name”:“shajiefeng”;80可解析为尾部。
142.本公开示例中,在终端为手机、云终端为云手机的情况下,云手机内置的直播服务,拉流模块解析到对应的sei信息后,若sei发起的是分发命令,此时会触发直播服务中的录屏模块。录屏模块扮演着云手机系统直播流分发角色。由于云手机中直播服务拉流模块最终是渲染在虚拟屏上,并非终端物理屏,因此可以借助云手机实现多个虚拟屏渲染,从而云手机能够实现高效多路分发的技术效果。
143.本公开具体实施例中,根据虚拟屏的录屏数据执行物理屏幕渲染。物理屏幕渲染可基于android系统的surfacefliger(浮雕)和hardware composer hal(硬件编写器硬件抽象层)共同完成,通过执行接受缓冲区、确定合成缓冲区的最有效方法、合成缓冲区、将缓冲区发送给显示设备等步骤完成数据屏幕渲染。其中屏幕会向surfacefliger发送vsync(vertical sync,垂直同步)信号,实现周期性刷新。在一些终端系统中,虚拟屏幕的处理机制与物理屏幕渲染基本一致,提供数据并加入bufferqueue(缓冲队列),但差别在于hardware composer hal不是由显示设备硬件原始制造商完成,而是由android surface(安卓表面)消费类组件生成,如surfaceview(表面观看)、texureview(纹理观看)及glsurfaceview(graphics library surface view,开放图形库表面观看)等ui(user interface,用户界面)组件。相对物理屏幕,android系统的surface消费类组件可以根据实际场景创建多个实例。
144.虚拟屏的录屏数据产生,依赖于录屏模块,在一种实现方式中,录屏模块的框架如图8所示,包括:av core(audio&video core,影音核心)81、ar capture(augment reality capture,增强现实捕获)82、rtmp socket(rtmp协议端)83、srt socket(srt协议端)84、rtc(real time clock,实时时钟)85、audio record(视频录制)86、media codec(媒体编码器)87、opengl(开放图形库)88、virtual display(虚拟屏幕)89、media projection(媒体投影)模块810、surface(界面)811、network i/o(网络输入输出接口)812。其中,实时时钟85可以包含外部视频记录模块(external audio record)。
145.语音信号(mic)输入avcore81的audio record device(视频录制设备)813中,生成pcm(pulse code modulation,脉冲编码调制)流,经过audio filter(视频过滤)模块814、audio media encoder(视频媒体编码)模块815,到达flv muxer(flv多路调制端)816,结合video media encoder(音频媒体编码)模块817发送的信息,通过flv格式发送至rtmp端口。视频录制信号通过audio record模块,经过编码、开放图形库处理等操作,在创建的虚拟屏幕89以及媒体投影模块810播放,通过媒体投影模块810打开virtual display89,并传递video filter(音频过滤)内部界面模块到virtual display89,virtualdisplay89生成的画面通过界面模块进入video filter所持有的buffer queue(缓冲队列),由video filter进行消费,video filter监听到纹理更新后,对纹理进行裁剪变换,并最终绘制到音频媒体编码模块85的input surface(输入界面)进行视频编码,生成录屏数据。录屏数据经过音频媒体编码等操作后,可发送至各端口,从而能够被接收方获取。
146.本公开实施例利用云终端系统进行直播流数据的分发,终端(例如手机)系统云化后让直播流分发变得更加简单和高效;同时,云化后的终端性能得到释放,与终端分发多路
流带来的性能问题相比,云化后的终端得到更多的计算能力,性能会得到基础保障。云化后的终端有更多管控,云化后的终端本身还是终端,意味着对于终端开发者或使用方,可以使用现有终端技术驱动云化后的终端,进而可以实现更多的业务逻辑,相对依赖直播中控平台,这种方式实现与云端的解耦,直播流分发变的自主可控。
147.本公开实施例还提供一种直播数据处理装置,如图9所示,包括:
148.第一直播流数据获取模块91,用于获取第一直播流数据;
149.添加模块92,用于根据直播指令,在第一直播流数据中添加直播流分发命令;
150.第一发送模块93,用于将添加直播流分发命令后的第一直播流数据发送给云终端系统,使得云终端系统能够根据直播流分发命令将第一直播流分发到至少一个指定接收方。
151.在一种实施方式中,如图10所示,直播流数据处理装置还包括:
152.第二发送模块101,用于将第一直播流数据发送至云终端系统;
153.录屏数据接收模块102,用于接收云终端系统根据第一直播流数据返回的录屏数据;
154.录屏数据播放模块103,用于播放录屏数据,接收用户根据录屏数据的播放效果发送的直播指令。
155.在一种实施方式中,如图11所示,添加模块包括:
156.第一插入单元111,用于根据直播指令,在第一直播流数据的关键帧的相邻位置处插入直播流分发命令;
157.和/或,第二插入单元112,用于根据直播指令,在第一直播流数据的所有帧的相邻位置处插入直播流分发命令。
158.在一种实施方式中,如图12所示,直播流数据处理装置还包括:
159.配置接收模块121,用于接收用户配置命令;
160.配置模块122,用于根据配置命令,设置直播流分发命令中的鉴权信息和分发地址。
161.在一种实施方式中,直播流分发命令为补充增强信息格式的命令,如图13所示,直播数据处理装置还包括:
162.对象简谱模块131,用于根据用户配置命令设置的鉴权信息和分发地址,生成直播流分发命令的对象简谱格式信息;
163.转换模块132,用于将对象简谱格式信息转换为补充增强信息格式的命令,作为直播流分发命令。
164.在一种实施方式中,如图14所示,直播流数据处理装置还包括:
165.第二直播流接收模块141,用于接收云终端系统转发的至少一个指定接收方的第二直播流数据;
166.第二直播流播放模块142,用于在本地播放第二直播流数据。
167.本公开实施例还提供一种直播数据处理装置,如图15所示,包括:
168.第一直播流数据接收模块151,用于接收终端发送的第一直播流数据;
169.第三直播流数据生成模块152,用于在检测到第一直播流数据携带直播流分发命令的情况下,根据直播流分发命令和第一直播流数据,生成分发到至少一个指定接收方的
第三直播流数据;
170.第三直播流发送模块153,用于将第三直播流数据分发到至少一个指定接收方。
171.在一种实施方式中,如图16所示,第一直播流数据接收模块,包括:
172.收发单元161,用于通过云端的平台即服务系统的推流集群接收第一直播流数据,以及将第一直播流数据发送至云端的平台即服务系统的中控平台集群;中控平台集群用于在检测到获取的第一直播流数据携带直播流分发命令的情况下,根据第一直播流数据和直播流分发命令,生成分发到至少一个指定接收方的第三直播流数据。
173.在一种实施方式中,如图17所示,直播数据处理装置还包括:
174.虚拟屏生成模块171,用于在未检测到第一直播流数据携带直播流分发命令的情况下,根据第一直播流数据,生成虚拟屏;
175.渲染模块172,用于在虚拟屏中渲染第一直播流数据的播放画面;
176.录屏模块173,用于对第一直播流数据的播放画面进行录屏,获得录屏数据;
177.录屏发送模块174,用于将录屏数据发送至云端的平台即服务系统的推流集群,使得推流集群能够通过云终端系统将录屏数据发送至终端。
178.在一种实施方式中,如图18所示,第三直播流数据生成模块包括:
179.解析生成单元181,用于根据直播流分发命令中的鉴权信息和指定接收方地址,生成针对相应指定接收方的第三直播流数据。
180.在一种实施方式中,如图19所示,直播数据处理装置还包括:
181.云终端系统模块191,用于在云端运行终端的直播软件开发工具包,生成云终端系统。
182.在一种实施方式中,如图20所示,直播数据处理装置还包括:
183.第四直播流接收模块201,用于接收内容分发网络服务器转发的至少一个指定接收方的第四直播流数据;
184.第四直播流转发模块202,用于将第四直播流数据发送至云终端系统,使得云终端系统能够将第四直播流数据发送至终端。
185.本公开实施例各装置中的各单元、模块或子模块的功能可以参见上述方法实施例中的对应描述,在此不再赘述。
186.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
187.图21示出了可以用来实施本公开的实施例的示例电子设备210的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或要求的本公开的实现。
188.如图21所示,电子设备2100包括计算单元2111,其可以根据存储在只读存储器(rom)2112中的计算机程序或者从存储单元2118加载到随机访问存储器(ram)2113中的计算机程序来执行各种适当的动作和处理。在ram 2113中,还可存储电子设备2100操作所需的各种程序和数据。计算单元2111、rom 2112以及ram 2113通过总线2114彼此相连。输入输
出(i/o)接口2115也连接至总线2114。
189.电子设备2100中的多个部件连接至i/o接口2115,包括:输入单元2116,例如键盘、鼠标等;输出单元2117,例如各种类型的显示器、扬声器等;存储单元2118,例如磁盘、光盘等;以及通信单元2119,例如网卡、调制解调器、无线通信收发机等。通信单元2119允许电子设备2100通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
190.计算单元2111可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元2111的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元2111执行上文所描述的各个方法和处理,例如直播数据处理方法。例如,在一些实施例中,直播数据处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元2118。在一些实施例中,计算机程序的部分或者全部可以经由rom 2112和/或通信单元2119而被载入和/或安装到电子设备2100上。当计算机程序加载到ram 2113并由计算单元2111执行时,可以执行上文描述的直播数据处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元2111可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行直播数据处理方法。
191.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
192.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
193.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd

rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
194.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来
将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入来接收来自用户的输入。
195.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
196.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端

服务器关系的计算机程序来产生客户端和服务器的关系。
197.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
198.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1