CN117793071A - 媒体流处理方法及装置 - Google Patents
媒体流处理方法及装置 Download PDFInfo
- Publication number
- CN117793071A CN117793071A CN202211142950.9A CN202211142950A CN117793071A CN 117793071 A CN117793071 A CN 117793071A CN 202211142950 A CN202211142950 A CN 202211142950A CN 117793071 A CN117793071 A CN 117793071A
- Authority
- CN
- China
- Prior art keywords
- media stream
- media
- target terminal
- terminal
- auxiliary
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 37
- 238000000034 method Methods 0.000 claims description 20
- 238000009877 rendering Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 230000002452 interceptive effect Effects 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 10
- 230000002829 reductive effect Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000007547 defect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请实施例提供一种媒体流处理方法,所述方法包括:采集目标终端的若干种媒体数据,所述目标终端为同一频道的若干个第一终端中的任一终端;至少对一种所述媒体数据产生若干路第一媒体流,所述第一媒体流包括主媒体流和辅媒体流,所述辅媒体流的尺寸小于所述主媒体流;将所述若干路第一媒体流发送给服务端,以供所述服务端向除所述目标终端外的其它所述第一终端分别发送一路所述主媒体流和/或一路所述辅媒体流。本申请实施例提供的媒体流处理方法,可以较好地适用于多人实时互动直播场景。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种媒体流处理方法、装置、计算机设备及存储介质。
背景技术
目前,有两种媒体流的传输方案:一种是MCU(Multipoint Conferencing Unit,多端控制单元)方案:一个服务器连接多个终端,每个终端将自己的音视频数据发送给服务器,服务器会将在同一个频道中的所有终端的音视频进行混合,把混合后的视频发送给终端;另一种是SFU(Selective Forwarding Unit,选择性转发单元)方案:一个服务器连接多个终端,每个终端将自己的音视频数据发送给服务器,服务器不进行混流,直接将音视频数据转发给频道中其它终端。
在多人实时互动直播的场景中,假如有N个人在同一个频道中产生音视频,如果采用MCU方案,服务器根据每个用户指定的布局混流,则需要产生多路视频流再转发给用户,编解码过程会消耗大量计算资源,且通话的延迟会增加,成本较高;如果采用SFU方案,频道中每个人需要接收N-1路媒体流,终端的网络下行带宽和设备的性能会成为瓶颈。
综上,目前没有一种传输方案能较好地适用于多人实时互动直播的场景。
发明内容
本申请的目的在于提供一种媒体流处理方法、装置、计算机设备及存储介质,用于解决目前没有较好地适用于多人实时互动直播场景的传输方案的技术问题。
本申请实施例的一个方面提供了一种媒体流处理方法,包括:采集目标终端的若干种媒体数据,目标终端为同一频道的若干个第一终端中的任一终端;至少对一种媒体数据产生若干路第一媒体流,第一媒体流包括主媒体流和辅媒体流,辅媒体流的尺寸小于主媒体流;将若干路第一媒体流发送给服务端,以供服务端向除目标终端外的其它第一终端分别发送一路主媒体流和/或一路辅媒体流。
可选地,媒体数据包括视频数据,至少对一种媒体数据产生若干路第一媒体流,包括:对视频数据产生一路主媒体流和一路辅媒体流。
可选地,第一媒体流包括用户标识、流标识和类型标识中的至少一种标识,用户标识为第一媒体流对应用户的标识,流标识用于区分主媒体流和辅媒体流,类型标识用于区分第一媒体流对应的媒体数据的类型。
可选地,媒体数据包括音频数据和视频数据,第一媒体流通过RTP包或RTCP包传输,方法还包括:在接收到服务端发送的RTP包或RTCP包的情况下,根据标识区域RTP包或RTCP包,并对RTP包或RTCP包进行解码;将解码得到的音频数据进行混音播放,并将解码得到的视频数据根据预设规则渲染到指定的区域。
本申请实施例的一个方面又提供了一种媒体流处理装置,包括:采集模块,用于采集目标终端的若干种媒体数据,目标终端为同一频道的若干个第一终端中的任一终端;生成模块,用于至少对一种媒体数据产生若干路第一媒体流,第一媒体流包括主媒体流和辅媒体流,辅媒体流的尺寸小于主媒体流;发送模块,用于将若干路第一媒体流发送给服务端,以供服务端向除目标终端外的其它第一终端分别发送一路主媒体流和/或一路辅媒体流。
本申请实施例的一个方面又提供了一种媒体流处理方法,包括:接收目标终端发送的若干路第一媒体流,目标终端为同一频道的若干个第一终端的任一终端,第一媒体流包括主媒体流和辅媒体流,辅媒体流的尺寸小于主媒体流;在接收到目标终端发送的若干路第一媒体流的情况下,向除目标终端外的其它每一第一终端分别发送一路主媒体流和/或一路辅媒体流。
可选地,方法还包括:接收目标终端发送的切换请求,切换请求用于请求切换第二终端发送至目标终端的第一媒体流的类别,类别包括主媒体流和辅媒体流,第二终端为除目标终端外的其它第一终端中的任一终端;在接收到切换请求的情况下,切换第二终端发送至目标终端的第一媒体流的类别。
可选地,方法还包括:接收目标终端发送的关闭请求,关闭请求用于关闭第二终端发送至目标终端的第一媒体流;在接收到关闭请求的情况下,关闭第二终端发送至目标终端的第一媒体流。
可选地,方法还包括:获取第一终端的个数;在第一终端的个数大于预设阈值的情况下,将至少部分发送至第一终端的第一媒体流设置为辅媒体流。
本申请实施例的一个方面又提供了一种媒体流处理装置,包括:接收模块,用于接收目标终端发送的若干路第一媒体流,目标终端为同一频道的若干个第一终端的任一终端,第一媒体流包括主媒体流和辅媒体流,辅媒体流的尺寸小于主媒体流;发送模块,用于在接收到目标终端发送的若干路第一媒体流的情况下,向除目标终端外的其它每一第一终端分别发送一路主媒体流和/或一路辅媒体流。
本申请实施例的一个方面又提供了一种计算机设备,计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时用于实现上述的媒体处理方法的步骤。
本申请实施例的一个方面又提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序可被至少一个处理器所执行,以使至少一个处理器执行上述的媒体处理方法的步骤。
本申请实施例提供的媒体流处理方法、装置、计算机设备及存储介质,包括以下优点:
通过采集目标终端的媒体数据,对媒体数据产生若干路第一媒体流后发送至服务端,供服务端向其它第一终端分别发送一路主媒体流和/或一路辅媒体流,由于服务端不需要如MCU方案一样布局混流,产生多路视频流再转发,因此可以避免MCU方案编解码过程会消耗大量计算资源、通话延迟增加和成本较高的缺点;同时,由于可以根据需要只将尺寸较小的辅媒体流发送至同一频道的第一终端,因此可以减轻第一终端下行带宽的压力和设备性能的压力,解决SFU方案中的瓶颈问题,从而较好地适用于多人实时互动直播的场景。
附图说明
图1示意性示出了本申请实施例的环境架构图;
图2示意性示出了本申请实施例一的媒体流处理方法的流程图;
图3示意性示出了本申请实施例二的媒体流处理装置的框图;
图4示意性示出了本申请实施例三的媒体流处理方法的流程图;
图5为图4新增步骤的一流程图;
图6为图4新增步骤的另一流程图;
图7为图4新增步骤的又一流程图;
图8为媒体流处理方法的场景示例图;
图9示意性示出了本申请实施例四的媒体流处理装置的框图;
图10示意性示出了本申请实施例五的计算机设备的硬件架构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
下面为本申请涉及的术语解释:
直播:在互联网上公开播出准实时音视频的形式。
实时音视频:主播之间通过私有协议互相收发媒体流,延迟极低,能满足实时视频通话需求。
频道:只有加入了同一个频道的用户才能互相通话,频道是通话的基本单位。
旁路推流:拼接主播之间实时音视频流,通过CDN分发给观众。
信令服务器:向视频互动直播的参与者发送控制指令的服务器。
中转服务器:接收音视频包,并实时地转发到同一场视频通话其他参与者的服务器。
混流服务器:提供旁路推流功能的服务器。
RTP(实时传输协议,Real-time Transport Protocol),是一个网络传输协议。
RTCP(实时传输控制协议,Real-time Transport Control Protocol),是实时传输协议(RTP)的一个姐妹协议。
图1示意性示出了本申请实施例的媒体流处理方法的环境架构图,如图1所示:
若干个第一终端300通过网络200连接服务端100,第一终端300采集本终端的若干种媒体数据,至少对一种媒体数据产生若干路媒体流,其中媒体流包括主媒体流和辅媒体流,辅媒体流的尺寸小于主媒体流;第一终端300将产生的若干路媒体流通过网络200发送至服务端100,服务端100在接收到某一第一终端300的媒体流后,向同一频道的其它的第一终端300分别发送一路主媒体流和/或一路辅媒体流。
在示例性的实施例中,服务端100可以指数据中心,例如单个房屋,或者分布在不同的地理位置(例如,在几个房屋)。服务端100可以通过一个或多个网络200提供服务。
网络200包括各种网络设备,例如路由器、交换机、多路复用器、集线器、调制解调器、网桥、中继器、防火墙、代理设备和/或类似。网络200可以包括物理链路,例如同轴电缆链路、双绞线电缆链路、光纤链路、它们的组合和/或类似物。网络200可以包括无线链路,例如蜂窝链路、卫星链路、Wi-Fi链路和/或类似物。
第一终端300可以包括诸如移动设备、平板设备、膝上型计算机、智能设备(例如智能服装、智能手表、智能眼镜)、虚拟现实耳机、游戏设备、机顶盒、数字流设备、机器人、车载终端、智能电视、电视盒或电子书阅读器。
相关技术中,在多人实时互动直播场景中,采用MCU方案会在编解码过程中消耗大量计算资源、通话延迟增加、成本较高;而采用SFU方案则使会终端的网络下行带宽和设备的性能成为瓶颈。
本申请实施例提供的媒体流处理方案,是对SFU方案的改进,在避免MCU方案的缺点的同时,也能减轻终端的网络下行带宽压力和设备的性能压力。
以下将通过若干个实施例介绍媒体流处理方案。
实施例一
图2示意性示出了本申请实施例一的媒体流处理方法的流程图,包括步骤S410~步骤S430,以图1中的第一终端300作为执行主体为例,详细说明如下:
步骤S410,采集目标终端的若干种媒体数据,目标终端为同一频道的若干个第一终端中的任一终端。
媒体数据可以包括音频数据和视频数据,也可以包括其它的媒体数据。在多人实时互动直播的场景中,媒体数据为音频数据和视频数据。
采集目标终端的媒体数据是指第一终端300采集本终端的媒体数据,即第一终端300产生媒体数据,并对媒体数据进行采集。相应地,第一终端300是指同一频道产生媒体数据并对媒体数据进行采集的终端。例如,在多人实时互动直播的场景中,主播所在的终端产生音频数据和视频数据并对音频数据和视频数据进行采集,则第一终端300为各个主播对应的终端。相应地,观众用户对应的终端则为普通终端。
步骤S420,至少对一种媒体数据产生若干路第一媒体流,第一媒体流包括主媒体流和辅媒体流,辅媒体流的尺寸小于主媒体流。
辅媒体流可以通过一定方式的缩小来使尺寸小于主媒体流,从而使辅媒体流占用的带宽小于主媒体流。以媒体数据为视频数据为例,可以将辅媒体流对应的分辨率、帧率和/或码率进行一定比例的缩小来使辅媒体流的尺寸小于主媒体流。
在对媒体数据产生若干路第一媒体流时,可以是产生多路第一媒体流,例如产生一路主媒体流和两路尺寸不同的辅媒体流,但当第一媒体流的路数较多时会占用较多的上行带宽,增加延迟和方案实现的复杂度。特别地,可以只产生一路第一媒体流,即只产生一路主媒体流或一路辅媒体流,例如,在多人实时互动直播的场景中,当主播人数较少时,只产生一路主媒体流;当主播人数较多时,只产生一路辅媒体流。但是,由于上行带宽相对下行带宽而言是比较充足的,因此只产生一路第一媒体流对于减少带宽的占用的程度较为有限,且突出的问题在于下行带宽的占用,并不在于上行带宽的占用。
在示例性的实施例中,媒体数据包括视频数据,步骤S420中,至少对一种媒体数据产生若干路第一媒体流,可以包括:对视频数据产生一路主媒体流和一路辅媒体流。由于在多人实时互动直播场景中,上行带宽相对充足,而下行带宽相对紧张,因此在产生一路主媒体流的同时产生一路辅媒体流,可以使服务端100可以根据需要将尺寸较小的辅媒体流发送给其它第一终端300,在牺牲少量上行带宽的情况下节省第一终端300的下行带宽以及占用的设备性能,从而根据需要减轻第一终端300的网络下行带宽压力和设备的性能压力。优选地,辅媒体流的分辨率缩小为主媒体流的1/4,帧率缩小为主媒体流的1/3,码率缩小为主媒体流的1/5,这样可以在保证视频有较好的清晰度的同时占用较小的下行带宽。
在媒体数据包括音频数据和视频数据时,由于音频数据占用的带宽较小,且远小于视频数据占用的带宽,因此可以只对视频数据产生若干路第一媒体流,而不对音频数据产生第一媒体流,或者说,对音频数据只产生普通的媒体流(与第一媒体流的主媒体流相对应),从而降低方案实现的复杂度。
步骤S430,将若干路第一媒体流发送给服务端,以供服务端向除目标终端外的其它第一终端分别发送一路主媒体流和/或一路辅媒体流。
即第一终端300将产生的若干路第一媒体流发送给服务端100后,服务端100向除发送媒体流的第一终端300(即目标终端)外的其它第一终端300发送一路主媒体流或一路辅媒体流,或者,发送一路主媒体流和一路辅媒体流。可以理解的是,在第一终端300的下行带宽较为充足的情况下,发送一路主媒体流和一种辅媒体流,可以使第一终端300在主媒体流和辅媒体流之间自由切换。由于第一终端300的下行带宽通常有限,因此通常情况下,服务端100只发送一路主媒体流或一路辅媒体流可以减少对第一终端300下行带宽的占用。实际应用中,服务端100在向除目标终端外的其它第一终端300分别发送一路第一媒体流时,可以根据第一终端300的个数或第一终端300对应的用户的选择等因素来确定发送主媒体流或辅媒体流。
本申请实施例的媒体流处理方法,通过采集目标终端的媒体数据,对媒体数据产生若干路第一媒体流后发送至服务端,供服务端向其它第一终端分别发送一路主媒体流和/或一路辅媒体流,由于服务端不需要如MCU方案一样布局混流,产生多路视频流再转发,因此可以避免MCU方案编解码过程会消耗大量计算资源、通话延迟增加和成本较高的缺点;同时,由于可以根据需要只将尺寸较小的辅媒体流发送至同一频道的第一终端,因此可以减轻第一终端下行带宽的压力和设备性能的压力,解决SFU方案中的瓶颈问题,从而较好地适用于多人实时互动直播的场景。
在示例性的实施例中,第一媒体流包括用户标识、流标识和类型标识中的至少一种标识,其中,用户标识为第一媒体流对应用户的标识,流标识用于区分主媒体流和辅媒体流,类型标识用于区分第一媒体流对应的媒体数据的类型。
用户标识可以为用户ID,例如昵称、编号或手机号码等。流标识即对应的第一媒体流是主媒体流还是辅媒体流,具体标识例如是“主”对应主媒体流,“辅”对应辅媒体流。类型标识即第一媒体流对应的媒体数据是视频数据还是音频数据,具体标识例如是“视”对应视频数据,“音”对应音频数据。
本实施例中,由于第一媒体流包括用户标识、流标识和类型标识中的至少一种标识,因此可以使终端的用户对第一媒体流的用户、流和类型进行识别和区分,从而方便用户根据个人及终端下行带宽和设备性能的需要,对第一媒体流进行主媒体流与辅媒体流的切换、媒体流的屏蔽等处理操作,提高用户的体验。
在示例性的实施例中,媒体数据包括音频数据和视频数据,第一媒体流通过RTP包或RTCP包传输,媒体流处理方法还可以包括:在接收到服务端发送的RTP包或RTCP包的情况下,根据标识区分RTP包或RTCP包,并对RTP包或RTCP包进行解码;将解码得到的音频数据进行混音播放,并将解码得到的视频数据根据预设规则渲染到指定的区域。
可以理解的是,第一终端300会接收到其它第一终端300发送的RTP包或RTCP包,因此将解码得到的音频数据进行混音播放,是指将所有音频数据进行混音播放。
预设规则是指视频数据与对应渲染区域的规则,具体可以根据实际需要进行设置,此处不做具体限制。例如,将第一个接收到并解码得到的视频数据渲染至第一区域,将第二个接收到并解码得到的视频数据渲染至第二区域,等等。
例如,第一媒体流通过RTP包传输,服务端100在接收到RTP包时,根据用户标识确定RTP包所属的用户,根据流标识确定RTP包是主媒体流还是辅媒体流,通过类型标识确定RTP包传输的是音频数据还是视频数据;然后将所有音频数据进行混音播放,并根据预设规则将解码得到的各个视频数据渲染至指定的区域。其中,根据预设规则将解码得到的各个视频数据渲染至指定的区域例如是:若视频数据包括A视频数据和B视频数据两个,而预设规则是A视频数据渲染至甲区域,B视频数据渲染至乙区域,则是当解码得到A视频数据时,将A视频数据渲染至甲区域;当解码得到B视频数据时,将B视频数据渲染至乙区域。
本实施例中,通过在接收到服务端发送的RTP包或RTCP包的情况下,根据标识区分RTP包或RTCP包,可以使第一终端有效区分RTP包或RTCP包的用户、流和类型;而通过将解码得到的音频数据进行混音播放,将解码得到的视频数据渲染至指定的区域,可以在第一终端上实现音频的混合处理以及视频的有效渲染。
实施例二
图3示意性示出了根据本申请实施例二的媒体流处理装置500的框图,该媒体流处理装置500可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。
如图3所示,该媒体流处理装置500可以包括采集模块510、生成模块520和发送模块530。
采集模块510,用于采集目标终端的若干种媒体数据,目标终端为同一频道的若干个第一终端中的任一终端;
生成模块520,用于至少对一种媒体数据产生若干路第一媒体流,第一媒体流包括主媒体流和辅媒体流,辅媒体流的尺寸小于主媒体流;
发送模块530,用于将若干路第一媒体流发送给服务端,以供服务端向除目标终端外的其它第一终端分别发送一路主媒体流和/或一路辅媒体流。
在示例性的实施例中,媒体数据包括视频数据,生成模块还用于:对视频数据产生一路主媒体流和一路辅媒体流。
在示例性的实施例中,第一媒体流包括用户标识、流标识和类型标识中的至少一种标识,用户标识为第一媒体流对应用户的标识,流标识用于区分主媒体流和辅媒体流,类型标识用于区分媒体流对应的媒体数据的类型。
在示例性的实施例中,媒体流处理装置500还包括处理模块(图中未示出),其中,处理模块用于:在接收到服务端发送的RTP包或RTCP包的情况下,根据标识区域RTP包或RTCP包,并对RTP包或RTCP包进行解码;将解码得到的音频数据进行混音播放,并将解码得到的视频数据根据预设规则渲染至指定的区域。
实施例三
图4示意性示出了本申请实施例三的媒体流处理方法的流程图,包括步骤S610~步骤S620,以图1中的服务端100作为执行主体为例,具体说明如下:
步骤S610,接收目标终端发送的若干路第一媒体流,目标终端为同一频道的若干个第一终端的任一终端,第一媒体流包括主媒体流和辅媒体流,辅媒体流的尺寸小于主媒体流。
步骤S620,在接收到目标终端发送的若干路第一媒体流的情况下,向除目标终端外的其它每一第一终端发送一路主媒体流和/或一路辅媒体流。
即服务端100在接收到同一频道内任一第一终端300发送的若干路第一媒体流的情况下,向同一频道内的其它第一终端300分别发送一路主媒体流和/或一路辅媒体流。
本申请实施例的媒体流处理方法,通过接收同一频道内任一第一终端发送的第一媒体流,在接收到第一媒体流时,向除发送第一媒体流的第一终端外的其它每一第一终端分别发送一路主媒体流和/或一路辅媒体流,由于服务端不需要如MCU方案一样布局混流,产生多路视频流再转发,因此可以避免MCU方案编解码过程会消耗大量计算资源、通话延迟增加和成本较高的缺点;同时,由于可以根据需要只将尺寸较小的辅媒体流发送至同一频道的第一终端,因此可以减轻第一终端下行带宽的压力和设备性能的压力,解决SFU方案中的瓶颈问题,从而较好地适用于多人实时互动直播的场景。
在示例性的实施例中,如图5所示,媒体流处理方法还可以包括步骤S630~步骤S640,具体如下:
步骤S630,接收目标终端发送的切换请求,切换请求用于请求切换第二终端发送至目标终端的第一媒体流的类别,类别包括主媒体流和辅媒体流,第二终端为除目标终端外的其它第一终端中的任一终端。
步骤S640,在接收到切换请求的情况下,切换第二终端发送至目标终端的第一媒体流的类别。
例如,目标终端对应的用户希望将来自第二终端的第一媒体流的类别从主媒体流切换为辅媒体流,则向服务端100发送切换请求,服务端100在接收到切换请求后,将第二终端发送至目标终端的第一媒体流从主媒体流切换至辅媒体流。
本实施例中,通过接收目标终端发送的切换请求,在接收到切换请求的情况下,切换第二终端发送至目标终端的第一媒体流的类别,可以使第一终端的用户根据需要切换相应终端发送的第一媒体流的类别,从而主动减轻本终端的下行带宽压力和设备性能压力。
在示例性的实施例中,如图6所示,媒体流处理方法还可以包括步骤S650~步骤S660,具体如下:
步骤S650,接收目标终端发送的关闭请求,关闭请求用于关闭第二终端发送至目标终端的第一媒体流。
步骤S660,在接收到关闭请求的情况下,关闭第二终端发送至目标终端的第一媒体流。
例如,目标终端对应的用户希望将来自第二终端的第一媒体流关闭,则向服务端100发送关闭请求,服务端100在接收到关闭请求后,将第二终端发送至目标终端的第一媒体流关闭,即停止向目标终端发送来自第二终端的第一媒体流。
本实施例中,通过接收目标终端发送的关闭请求,在接收到关闭请求的情况下,关闭第二终端发送至目标终端的第一媒体流,可以使第一终端的用户根据需要关闭相应终端发送的第一媒体流,从而主动减轻本终端的下行带宽压力和设备性能压力。
在示例性的实施例中,如图7所示,媒体流处理方法还可以包括步骤S670~步骤S680,具体如下:
步骤S670,获取第一终端的个数。
步骤S680,在第一终端的个数大于预设阈值的情况下,将至少部分发送至第一终端的第一媒体流设置为辅媒体流。
预设阈值可以根据实际需要进行设置,此处不做具体限制。
例如,预设阈值为3,若第一终端300的个数为4,大于预设阈值3,则服务端100可以将其中两个(即部分)发送至第一终端300的第一媒体流设置为辅媒体流,将剩余发送至第一终端300的第一媒体流设置为主媒体流;或者,服务端100可以将全部发送至第一终端300的第一媒体流设置为辅媒体流。
示例性地,在第一终端300的个数小于或等于预设阈值的情况下,将发送至第一终端300的第一媒体流设置为主媒体流。
例如,若预设阈值为3,第一终端300的个数为2,小于预设阈值3,则服务端100将发送至第一终端300的第一媒体流设置为主媒体流。
本实施例中,通过获取第一终端的个数,在第一终端的个数大于预设阈值的情况下,将发送至第一终端的第一媒体流设置为辅媒体流,可以有第一终端的个数较多时(即大于预设阈值时),主动减少媒体流对终端下行带宽和设备性能的占用,从而减轻终端的下行带宽压力和设备性能压力。
应当理解的是,前一实施例中是根据第一终端的个数来使服务端100控制发送至第一终端的第一媒体流的类别,实际上还可以通过其它方式来控制,例如可以先对第一终端300的下行带宽进行测速,再根据测速结果确定第一媒体流的类别。可选地,还可以将几种方式结合来确定,从而使发送至第一媒体流的类别更加符合各个第一终端300的自身情况。
为了更清楚地说明本申请实施例的媒体流处理方法,以下通过一个具体示例来说明。
请参考图8,其为媒体流处理方法的场景示例图,如图所示,大致包括以下流程:
1、信令服务器发送控制信令给第一终端A、B、C,保证同一个频道内的第一终端连接同一台中转服务器;
2、第一终端A、B、C各自采集本终端对应的音频数据和视频数据,分别对音频数据和视频数据进行编码,得到RTP/RTCP包(其中对视频数据产生两路第一媒体流),RTP/RTCP包经过动态加速节点通过最优路径发送至中转服务器;
3、中转服务器在接收到某个第一终端的实时音视频时,将其发送至同一频道的其它第一终端(其中第一媒体流只发送一路),第一终端的用户可以根据第一媒体流的标识切换或关闭来自其它第一终端的第一媒体流,中转服务器也可以根据第一终端的个数切换第一媒体流的类别。
4、第一终端在接收到服务端发送的实时音视频时,根据RTP包里面的标识区分音视频包,区分主媒体流与辅媒体流,区分是哪个用户发的,然后分别进行解码,解码后音频数据做多路混音播放,视频数据根据用户指定的规则分别渲染到指定的预览区域;
5、在第一终端的设备性能和上行带宽充足的情况下,可以由第一终端直接推流至CDN;也可以由中转服务器将实时音视频分发至混流服务器,由混流服务器推流至CDN;
6、观众用户从CDN拉取音视频流,观看第一终端A、B、C互动直播的过程。
实施例四
图9示意性示出了根据本申请实施例四的媒体流处理装置700的框图,该媒体流处理装置700可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。
如图9所示,该媒体流处理装置700可以包括接收模块710和发送模块720。
接收模块710,用于接收目标终端发送的若干路第一媒体流,目标终端为同一频道的若干个第一终端的任一终端,第一媒体流包括主媒体流和辅媒体流,辅媒体流的尺寸小于主媒体流;
发送模块720,用于在接收到目标终端发送的若干路第一媒体流的情况下,向除目标终端外的其它每一第一终端分别发送一路主媒体流和/或一路辅媒体流。
在示例性的实施例中,媒体流处理装置700还包括切换模块,其中,切换模块用于:接收目标终端发送的切换请求,切换请求用于请求切换第二终端发送至目标终端的第一媒体流的类别,类别包括主媒体流和辅媒体流,第二终端为除目标终端外的其它第一终端中的任一终端;在接收到切换请求的情况下,切换第二终端发送至目标终端的第一媒体流的类别。
在示例性的实施例中,媒体流处理装置700还包括关闭模块,其中,关闭模块用于:接收目标终端发送的关闭请求,关闭请求用于关闭第二终端发送至目标终端的第一媒体流;在接收到关闭请求的情况下,关闭第二终端发送至目标终端的第一媒体流。
在示例性的实施例中,媒体流处理装置700还包括设置模块,其中,设置模块用于:获取第一终端的个数;在第一终端的个数大于预设阈值的情况下,将至少部分发送至第一终端的第一媒体流设置为辅媒体流。
实施例五
图10示意性示出了根据本申请实施例五的适于媒体流处理方法的计算机设备800的硬件架构图。计算机设备800可以是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或数据处理的设备。例如,可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)、网关等。如图10所示,计算机设备800至少包括但不限于:可通过系统总线相互通信链接存储器810、处理器820、网络接口830。其中:
存储器810至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器810可以是计算机设备800的内部存储模块,例如该计算机设备800的硬盘或内存。在另一些实施例中,存储器810也可以是计算机设备800的外部存储设备,例如该计算机设备800上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器810还可以既包括计算机设备800的内部存储模块也包括其外部存储设备。本实施例中,存储器810通常用于存储安装于计算机设备800的操作系统和各类应用软件,例如媒体流处理方法的程序代码等。此外,存储器810还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器820在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器820通常用于控制计算机设备800的总体操作,例如执行与计算机设备800进行数据交互或者通信相关的控制和处理等。本实施例中,处理器820用于运行存储器810中存储的程序代码或者处理数据。
网络接口830可包括无线网络接口或有线网络接口,该网络接口830通常用于在计算机设备800与其他计算机设备之间建立通信链接。例如,网络接口830用于通过网络将计算机设备800与外部终端相连,在计算机设备800与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通信系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图10仅示出了具有部件810-830的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器810中的媒体流处理方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器820)所执行,以完成本申请实施例。
实施例六
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的媒体流处理方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中媒体流处理方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (12)
1.一种媒体流处理方法,其特征在于,包括:
采集目标终端的若干种媒体数据,所述目标终端为同一频道的若干个第一终端中的任一终端;
至少对一种所述媒体数据产生若干路第一媒体流,所述第一媒体流包括主媒体流和辅媒体流,所述辅媒体流的尺寸小于所述主媒体流;
将所述若干路第一媒体流发送给服务端,以供所述服务端向除所述目标终端外的其它所述第一终端分别发送一路所述主媒体流和/或一路所述辅媒体流。
2.根据权利要求1所述的媒体流处理方法,其特征在于,所述媒体数据包括视频数据,所述至少对一种所述媒体数据产生若干路第一媒体流,包括:
对所述视频数据产生一路所述主媒体流和一路所述辅媒体流。
3.根据权利要求1所述的媒体流处理方法,其特征在于,所述第一媒体流包括用户标识、流标识和类型标识中的至少一种标识,所述用户标识为所述第一媒体流对应用户的标识,所述流标识用于区分所述主媒体流和所述辅媒体流,所述类型标识用于区分所述第一媒体流对应的媒体数据的类型。
4.根据权利要求3所述的媒体流处理方法,其特征在于,所述媒体数据包括音频数据和视频数据,所述第一媒体流通过RTP包或RTCP包传输,所述方法还包括:
在接收到所述服务端发送的所述RTP包或所述RTCP包的情况下,根据所述标识区分所述RTP包或所述RTCP包,并对所述RTP包或所述RTCP包进行解码;
将解码得到的音频数据进行混音播放,并将解码得到的视频数据根据预设规则渲染到指定的区域。
5.一种媒体流处理装置,其特征在于,包括:
采集模块,用于采集目标终端的若干种媒体数据,所述目标终端为同一频道的若干个第一终端中的任一终端;
生成模块,用于至少对一种所述媒体数据产生若干路第一媒体流,所述第一媒体流包括主媒体流和辅媒体流,所述辅媒体流的尺寸小于所述主媒体流;
发送模块,用于将所述若干路第一媒体流发送给服务端,以供所述服务端向除所述目标终端外的其它所述第一终端分别发送一路所述主媒体流和/或一路所述辅媒体流。
6.一种媒体流处理方法,其特征在于,包括:
接收目标终端发送的若干路第一媒体流,所述目标终端为同一频道的若干个第一终端的任一终端,所述第一媒体流包括主媒体流和辅媒体流,所述辅媒体流的尺寸小于所述主媒体流;
在接收到所述目标终端发送的若干路第一媒体流的情况下,向除所述目标终端外的其它每一所述第一终端分别发送一路所述主媒体流和/或一路所述辅媒体流。
7.根据权利要求6所述的媒体流处理方法,其特征在于,还包括:
接收所述目标终端发送的切换请求,所述切换请求用于请求切换所述第二终端发送至所述目标终端的第一媒体流的类别,所述类别包括所述主媒体流和所述辅媒体流,所述第二终端为除所述目标终端外的其它所述第一终端中的任一终端;
在接收到所述切换请求的情况下,切换所述第二终端发送至所述目标终端的第一媒体流的类别。
8.根据权利要求7所述的媒体流处理方法,其特征在于,还包括:
接收所述目标终端发送的关闭请求,所述关闭请求用于关闭所述第二终端发送至所述目标终端的第一媒体流;
在接收到所述关闭请求的情况下,关闭所述第二终端发送至所述目标终端的第一媒体流。
9.根据权利要求6-8任一项所述的媒体流处理方法,其特征在于,还包括:
获取所述第一终端的个数;
在所述第一终端的个数大于预设阈值的情况下,将至少部分发送至所述第一终端的所述第一媒体流设置为所述辅媒体流。
10.一种媒体流处理装置,其特征在于,包括:
接收模块,用于接收目标终端发送的若干路第一媒体流,所述目标终端为同一频道的若干个第一终端的任一终端,所述第一媒体流包括主媒体流和辅媒体流,所述辅媒体流的尺寸小于所述主媒体流;
发送模块,用于在接收到所述目标终端发送的若干路第一媒体流的情况下,向除所述目标终端外的其它每一所述第一终端分别发送一路所述主媒体流和/或一路所述辅媒体流。
11.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1-4或6-9中任一项所述的媒体处理方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行权利要求1-4或6-9中任一项所述的媒体处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211142950.9A CN117793071A (zh) | 2022-09-20 | 2022-09-20 | 媒体流处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211142950.9A CN117793071A (zh) | 2022-09-20 | 2022-09-20 | 媒体流处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117793071A true CN117793071A (zh) | 2024-03-29 |
Family
ID=90387670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211142950.9A Pending CN117793071A (zh) | 2022-09-20 | 2022-09-20 | 媒体流处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117793071A (zh) |
-
2022
- 2022-09-20 CN CN202211142950.9A patent/CN117793071A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112437122B (zh) | 通信方法、装置、计算机可读介质及电子设备 | |
CN110502259B (zh) | 服务器版本升级方法、视联网系统、电子设备及存储介质 | |
CN111147362B (zh) | 多人即时通讯方法、系统、装置及电子设备 | |
CN110417877B (zh) | 一种音视频业务的处理方法及装置 | |
US9374232B2 (en) | Method and a device for optimizing large scaled video conferences | |
CN112188144B (zh) | 音频的发送方法及装置、存储介质和电子装置 | |
CN109618170A (zh) | 基于网络编码的d2d实时视频流传输方法 | |
CN111224889A (zh) | 一种数据传输的方法和装置 | |
US20210227005A1 (en) | Multi-user instant messaging method, system, apparatus, and electronic device | |
CN112019488B (zh) | 一种语音处理的方法、装置、设备和存储介质 | |
CN117793071A (zh) | 媒体流处理方法及装置 | |
CN115208864A (zh) | 数据传输方法、装置、设备、车辆及存储介质 | |
CN113132300B (zh) | 音频数据传输方法及装置 | |
CN114979793A (zh) | 一种直播数据传输方法、装置、系统、设备和介质 | |
CN111586339B (zh) | 一种会议调度方法、服务器、电子设备及存储介质 | |
CN111147795B (zh) | 资源调度方法、服务器、终端、电子设备及存储介质 | |
CN114363676A (zh) | 视频流传输方法、装置、设备及介质 | |
CN110087020B (zh) | 一种iOS设备进行视联网会议的实现方法及系统 | |
CN115499417A (zh) | 一种数据分发方法、服务端和电子设备 | |
CN111787261A (zh) | 一种音视频数据发送方法、装置、电子设备及存储介质 | |
CN110446069B (zh) | 一种基于视联网终端的视频通信方法、装置及存储介质 | |
CN111556274B (zh) | 一种基于视联网的数据传输方法、装置及存储介质 | |
KR101239276B1 (ko) | 단계적 udp 패킷 처리 클라이언트, 시스템 및 처리방법 | |
CN117008855A (zh) | 一种多屏互动方法、装置、设备及存储介质 | |
US20140013373A1 (en) | Interactive service system, interactive system and interactive method thereof |
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 |