CN117834947A - 媒体流的分层编码方法、装置、设备及计算机可读介质 - Google Patents
媒体流的分层编码方法、装置、设备及计算机可读介质 Download PDFInfo
- Publication number
- CN117834947A CN117834947A CN202311713954.2A CN202311713954A CN117834947A CN 117834947 A CN117834947 A CN 117834947A CN 202311713954 A CN202311713954 A CN 202311713954A CN 117834947 A CN117834947 A CN 117834947A
- Authority
- CN
- China
- Prior art keywords
- media
- grade
- client
- media stream
- target
- 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
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000011664 signaling Effects 0.000 claims abstract description 49
- 238000004891 communication Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 6
- 230000002194 synthesizing effect Effects 0.000 claims description 6
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- KLDZYURQCUYZBL-UHFFFAOYSA-N 2-[3-[(2-hydroxyphenyl)methylideneamino]propyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCCN=CC1=CC=CC=C1O KLDZYURQCUYZBL-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 1
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请涉及一种媒体流的分层编码方法、装置、设备及计算机可读介质。该方法包括:接收第一客户端发送的信令消息,所述第一客户端为预先注册在所述媒体转发服务下的客户端;确定所述信令消息中携带的所述第一客户端请求的目标媒体档次;在向所述第一客户端推送的媒体流的实际媒体档次与所述目标媒体档次不一致时,将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流;将所述目标媒体流推送给所述第一客户端及同样注册在所述媒体转发服务下的第二客户端,使得所述第一客户端和所述第二客户端均接收到所述目标媒体档次的所述目标媒体流。本申请解决了接收端的主动调整无法对整个网络节点做出调整的技术问题。
Description
技术领域
本申请涉及云视频指挥技术领域,尤其涉及一种媒体流的分层编码方法、装置、设备及计算机可读介质。
背景技术
视频接收端在接收视频发送端的媒体流时,若出现网络波动,则现有的技术方案主要是依赖于视频服务器主动做网络侦测来动态调整视频发送端发给视频接收端的视频档次,或是视频接收端主动选取某个视频档次,告知视频服务器定向发送某个档次。视频服务器主动做动态调整存在的缺陷是视频接收端只能被动接收,无法主动控制所需要的视频档次,且视频服务器所做的动态调整,时效性不高,存在一个适应性的过程。而现有的视频接收端所做的主动性调整,也是基于端到端的,如因为在视频接收端所在网络环境在高码率视频流存在时会造成大量的带宽占用,影响视频接收端所在网络上其它应用的使用,因此视频接收端可以主动降低视频流的码率,但与该视频接收端处于同一局域网络下的其他视频接收端,则仍然会接收到高码率的视频流,带宽占用问题依然存在,无法一次性对整个网络节点做调节。
针对接收端的主动调整无法对整个网络节点做出调整的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供了一种媒体流的分层编码方法、装置、设备及计算机可读介质,以解决接收端的主动调整无法对整个网络节点做出调整的技术问题。
根据本申请实施例的一个方面,本申请提供了一种媒体流的分层编码方法,应用于媒体转发服务,所述方法包括:接收第一客户端发送的信令消息,其中,所述第一客户端为预先注册在所述媒体转发服务下的客户端;确定所述信令消息中携带的所述第一客户端请求的目标媒体档次;在向所述第一客户端推送的媒体流的实际媒体档次与所述目标媒体档次不一致时,将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流;将所述目标媒体流推送给所述第一客户端及同样注册在所述媒体转发服务下的第二客户端,使得所述第一客户端和所述第二客户端均接收到所述目标媒体档次的所述目标媒体流。
可选地,所述确定所述信令消息中携带的所述第一客户端请求的目标媒体档次包括:确定所述信令消息的消息头,其中,所述信令消息为基于SIP协议的消息;在所述消息头中查找用于请求媒体档次的SIP字段;读取所述SIP字段的字段值,以确定所述第一客户端请求的目标媒体档次。
可选地,所述将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流包括:获取所述媒体流的最高档媒体流;将所述最高档媒体流分为基本层和多个档次的增强层,其中,所述基本层用于表示所述最高档媒体流的基本媒体信息,所述增强层用于表示所述最高档媒体流的额外细节信息和精度信息,不同档次的增强层对应的额外细节信息和精度信息不同;按照所述目标媒体档次选择所述基本层和对应档次的目标增强层;分别对所述基本层和所述目标增强层按照对应的编码标准进行编码;合成编码后的所述基本层的媒体流和所述目标增强层的媒体流,得到所述目标媒体档次的所述目标媒体流。
可选地,所述获取所述媒体流的最高档媒体流包括:向所述媒体流对应的目标媒体源请求所述最高档媒体流,并接收由所述目标媒体源发出的所述最高档媒体流;或者,向当前媒体转发服务的上级媒体转发服务请求所述最高档媒体流,以通过所述上级媒体转发服务将所述最高档媒体流的请求逐级传递至所述目标媒体源,并接收由所述目标媒体源发出、由所述上级媒体转发服务逐级传递下来的所述最高档媒体流。
可选地,在所述媒体流为视频流的情况下,所述媒体档次包括视频的分辨率档、码率档、帧率档以及I帧间隔任意一个;或者,在所述媒体流为音频流的情况下,所述媒体档次包括音频的码率档。
根据本申请实施例的另一方面,本申请提供了一种媒体流的分层编码方法,应用于客户端,所述方法包括:在检测到网络拥塞的情况下,根据拥塞情况确定媒体流需要调整的目标媒体档次;向所述客户端已注册的媒体转发服务发送携带有所述目标媒体档次的信令消息,以使所述媒体转发服务将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流;接收所述目标媒体流。
根据本申请实施例的另一方面,本申请提供了一种媒体流的分层编码装置,应用于媒体转发服务,包括:信令消息接收模块,用于接收第一客户端发送的信令消息,其中,所述第一客户端为预先注册在所述媒体转发服务下的客户端;媒体档次确定模块,用于确定所述信令消息中携带的所述第一客户端请求的目标媒体档次;分层重编码模块,用于在向所述第一客户端推送的媒体流的实际媒体档次与所述目标媒体档次不一致时,将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流;推送模块,用于将所述目标媒体流推送给所述第一客户端及同样注册在所述媒体转发服务下的第二客户端,使得所述第一客户端和所述第二客户端均接收到所述目标媒体档次的所述目标媒体流。
根据本申请实施例的另一方面,本申请提供了一种媒体流的分层编码装置,应用于客户端,包括:媒体档次调整模块,用于在检测到网络拥塞的情况下,根据拥塞情况确定媒体流需要调整的目标媒体档次;信令消息发送模块,用于向所述客户端已注册的媒体转发服务发送携带有所述目标媒体档次的信令消息,以使所述媒体转发服务将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流;媒体流接收模块,用于接收所述目标媒体流。
根据本申请实施例的另一方面,本申请提供了一种电子设备,包括存储器、处理器、通信接口及通信总线,存储器中存储有可在处理器上运行的计算机程序,存储器、处理器通过通信总线和通信接口进行通信,处理器执行计算机程序时实现上述方法的步骤。
根据本申请实施例的另一方面,本申请还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述的方法。
本申请实施例提供的上述技术方案与相关技术相比具有如下优点:
本申请提供了一种媒体流的分层编码方法,应用于媒体转发服务,所述方法包括:接收第一客户端发送的信令消息,其中,所述第一客户端为预先注册在所述媒体转发服务下的客户端;确定所述信令消息中携带的所述第一客户端请求的目标媒体档次;在向所述第一客户端推送的媒体流的实际媒体档次与所述目标媒体档次不一致时,将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流;将所述目标媒体流推送给所述第一客户端及同样注册在所述媒体转发服务下的第二客户端,使得所述第一客户端和所述第二客户端均接收到所述目标媒体档次的所述目标媒体流。本申请基于云平台,即媒体转发服务,根据客户端主动调整的目标媒体档次,将媒体流进行分层重编码后再进行推流,使得所有注册在该媒体转发服务下的客户端均接收到调整后的目标媒体流,能够对整个网络节点做出调整,进而降低该媒体转发服务及客户端所在局域网的网络拥塞程度,而处于其他网络环境下的媒体转发服务和客户端则不受影响,解决了接收端的主动调整无法对整个网络节点做出调整的技术问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本申请实施例提供的一种可选的媒体流的分层编码方法硬件环境示意图;
图2为根据本申请实施例提供的一种可选的应用于媒体转发服务的媒体流的分层编码方法流程示意图;
图3为根据本申请实施例提供的一种可选的媒体流的切换信令图;
图4为根据本申请实施例提供的一种可选的应用于客户端的媒体流的分层编码方法流程示意图;
图5为根据本申请实施例提供的一种可选的应用于媒体转发服务的媒体流的分层编码装置框图;
图6为根据本申请实施例提供的一种可选的应用于客户端的媒体流的分层编码装置框图;
图7为本申请实施例提供的一种可选的电子设备结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
相关技术中,视频接收端在接收视频发送端的媒体流时,若出现网络波动,则现有的技术方案主要是依赖于视频服务器主动做网络侦测来动态调整视频发送端发给视频接收端的视频档次,或是视频接收端主动选取某个视频档次,告知视频服务器定向发送某个档次。视频服务器主动做动态调整存在的缺陷是视频接收端只能被动接收,无法主动控制所需要的视频档次,且视频服务器所做的动态调整,时效性不高,存在一个适应性的过程。而现有的视频接收端所做的主动性调整,也是基于端到端的,如因为在视频接收端所在网络环境在高码率视频流存在时会造成大量的带宽占用,影响视频接收端所在网络上其它应用的使用,因此视频接收端可以主动降低视频流的码率,但与该视频接收端处于同一局域网络下的其他视频接收端,则仍然会接收到高码率的视频流,带宽占用问题依然存在,无法一次性对整个网络节点做调节。
为了解决背景技术中提及的问题,根据本申请实施例的一方面,提供了一种媒体流的分层编码方法的实施例。当接收者所在网络环境在高码率视频流存在时,会造成大量的带宽占用,影响接收者所在网络上其它应用的使用,此时采用本申请技术方案,能够在接收端主动强行对发送端的码率进行控制之后,所有与该接收端处于同一局域网络下的接收端,都会统一接收到调整码率后的视频流;而处于其它网络环境下的接收端,则不会受到影响。
可选地,在本申请实施例中,上述媒体流的分层编码方法可以应用于如图1所示的由媒体源101、媒体转发服务103以及客户端105所构成的硬件环境中。如图1所示,媒体源101示例性地包括源1和源2,负责发送媒体流,媒体转发服务103示例性地包括媒体转发服务1和媒体转发服务2,负责接收媒体源的媒体流,并将媒体流转发给其他媒体转发服务或客户端,客户端105示例性地包括客户端1、客户端2以及客户端3,负责接收并展示媒体转发服务发送过来的媒体流。图1中,客户端1注册在媒体转发服务1下,客户端2和客户端3注册在媒体转发服务2下,注册在同一个媒体转发服务下的客户端及该媒体转发服务处于同一局域网内,该局域网内还可能存在其他服务和其他应用。客户端2或客户端3播放高码率视频流时,会造成大量的带宽占用,到达一定程度甚至会影响同一局域网内其它服务、其他应用的使用,此时采用本申请技术方案,能够在客户端主动强行对媒体源发送的媒体的码率进行控制之后,所有与该客户端处于同一局域网络下的接收端,都会统一接收到调整码率后的视频流,进而有效地调整整个网络的拥塞情况;而处于其它网络环境下的接收端,则不会受到影响,如图1中,当客户端1进行档次调整时,只会影响到媒体转发服务1下的所有客户端,而客户端2和客户端3属于媒体转发服务2下的客户端,因此客户端2和客户端3均不会受到影响。
该媒体转发服务可以搭载在云平台上,还可以搭载在局域网内的服务器、网关等设备上。
本申请实施例中的一种媒体流的分层编码方法可以分别由媒体转发服务103、客户端105来执行,还可以是由媒体转发服务103和客户端105配合共同执行,下面分别从不同侧说明本申请技术方案。
本申请实施例提供一种媒体流的分层编码方法,应用于媒体转发服务,如图2所示,该方法可以包括以下步骤:
步骤S202,接收第一客户端发送的信令消息,其中,所述第一客户端为预先注册在所述媒体转发服务下的客户端;
步骤S204,确定所述信令消息中携带的所述第一客户端请求的目标媒体档次;
步骤S206,在向所述第一客户端推送的媒体流的实际媒体档次与所述目标媒体档次不一致时,将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流;
步骤S208,将所述目标媒体流推送给所述第一客户端及同样注册在所述媒体转发服务下的第二客户端,使得所述第一客户端和所述第二客户端均接收到所述目标媒体档次的所述目标媒体流。
通过上述步骤S202至S208,本申请基于云平台,即媒体转发服务,根据客户端主动调整的目标媒体档次,将媒体流进行分层重编码后再进行推流,使得所有注册在该媒体转发服务下的客户端均接收到调整后的目标媒体流,能够对整个网络节点做出调整,进而降低该媒体转发服务及客户端所在局域网的网络拥塞程度,而处于其他网络环境下的媒体转发服务和客户端则不受影响,解决了接收端的主动调整无法对整个网络节点做出调整的技术问题。
在步骤S202中,客户端对媒体转发服务的媒体请求以及媒体转发服务的对外请求,均采用SIP协议。SIP(Session Initiation Protocol)是一种用于建立、修改和终止多媒体会话(如语音通话、视频通话)的通信协议。它是一种应用层协议,用于在IP网络上进行通信。SIP协议通常用于VoIP(Voice over Internet Protocol)和实时通信应用中。相关技术中,流媒体服务一般采用流媒体协议(如RTMP、HLS等),而本申请采用SIP协议建立实时通信,可以方便地建立和终止多媒体会话,这对于流媒体服务如直播来说是至关重要的。它允许快速建立视频和音频通信,并在需要时及时关闭。SIP协议是一个灵活的协议,可以与不同的传输协议和编解码器一起使用。这意味着在直播中,可以根据需要选择最适合的传输和编解码方式,以实现更好的音视频质量和性能。SIP协议支持会话管理和状态通知等功能,可以方便地扩展和定制。这对于直播平台来说是有益的,因为它们可能需要根据不同的需求和场景进行定制,以提供更好的用户体验。SIP协议得到了广泛的应用和支持,许多设备和系统都支持SIP协议。这意味着使用SIP协议进行直播可以更容易地与其他设备和系统进行互操作,并提供更广泛的可用性。
在步骤S204中,第一客户端请求的目标媒体档次嵌入到了与媒体转发服务进行通信的SIP字段中。因此确定第一客户端请求的目标媒体档次需解析信令消息中的SIP字段。
在一个可选的实施例中,所述确定所述信令消息中携带的所述第一客户端请求的目标媒体档次包括:
步骤1,确定所述信令消息的消息头,其中,所述信令消息为基于SIP协议的消息;
步骤2,在所述消息头中查找用于请求媒体档次的SIP字段;
步骤3,读取所述SIP字段的字段值,以确定所述第一客户端请求的目标媒体档次。
本申请实施例中,客户端需要请求不同的档次时,在sip字段的header中,额外添加新的字段Require,字段后面的值用来表示所请求的档次。以视频为例,表1展示了多种可选的视频档次及每个档次对应的视频参数,所述视频参数包括视频的帧率、码率、分辨率以及I帧间隔等。
表1
所述档次名称即为SIP字段Require的字段值,表示不同的视频档次。
在步骤S206中,媒体转发服务针对所请求的媒体源进行按第一客户端所请求的目标媒体档次进行分层重编码。
在一个可选的实施例中,所述将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流包括:
步骤1,获取所述媒体流的最高档媒体流;
步骤2,将所述最高档媒体流分为基本层和多个档次的增强层,其中,所述基本层用于表示所述最高档媒体流的基本媒体信息,所述增强层用于表示所述最高档媒体流的额外细节信息和精度信息,不同档次的增强层对应的额外细节信息和精度信息不同;
步骤3,按照所述目标媒体档次选择所述基本层和对应档次的目标增强层;
步骤4,分别对所述基本层和所述目标增强层按照对应的编码标准进行编码;
步骤5,合成编码后的所述基本层的媒体流和所述目标增强层的媒体流,得到所述目标媒体档次的所述目标媒体流。
本申请实施例中,媒体转发服务,可以按照图3所示信令流程获取所述媒体流的最高档媒体流。具体的,所述获取所述媒体流的最高档媒体流包括以下其中之一:向所述媒体流对应的目标媒体源请求所述最高档媒体流,并接收由所述目标媒体源发出的所述最高档媒体流;向当前媒体转发服务的上级媒体转发服务请求所述最高档媒体流,以通过所述上级媒体转发服务将所述最高档媒体流的请求逐级传递至所述目标媒体源,并接收由所述目标媒体源发出、由所述上级媒体转发服务逐级传递下来的所述最高档媒体流。
如图3所示,以客户端2为第一客户端、媒体转发服务2为当前执行媒体流分层编码方法的媒体转发服务为例,假设媒体源1共有三挡(A:1080p 2Mbps B:720p 1Mbps C:480p0.5Mbps),现客户端2点播媒体源1的B档媒体流的流程如下:
步骤1,客户端2向媒体转发服务2请求B档;
步骤2,媒体转发服务2需要先获取媒体源1的最高档媒体流,因此媒体转发服务2向上级媒体转发服务(即媒体转发服务1)请求A档,若媒体转发服务2不存在上级媒体转发服务,则直接向媒体源1请求A档;
步骤3,媒体转发服务1向媒体源1请求A档;
步骤4,媒体源1向媒体转发服务1发送A档流;
步骤5,媒体转发服务1向媒体转发服务2发送A档流;
步骤6,媒体转发服务2将A档流重编码为B档流;
步骤7,媒体转发服务2向客户端2发送B档流。
本申请实施例中,媒体转发服务2将A档流重编码为B档流的具体过程包括:
步骤1:获取最高档媒体流。首先,从原始媒体流中获取最高档的媒体流,这个最高档的媒体流包含了视频的所有细节和精度信息。
步骤2:分层。将最高档的媒体流进行分层,分为基本层和多个档次的增强层。基本层包含视频的基本信息,而增强层包含额外的细节信息和精度信息,不同档次的增强层对应的额外细节信息和精度信息不同。
步骤3:选择目标层。根据目标媒体档次的要求,选择基本层和对应的目标增强层,这些层将被用来编码生成目标媒体流。
步骤4:编码。对所选的基本层和目标增强层按照对应的编码标准进行编码处理,以生成符合目标媒体档次要求的编码后的视频数据,编码标准包括但不限于H.264/AVC、H.265/HEVC等。
步骤5:合成。将编码后的基本层和目标增强层合成为目标媒体档次的目标媒体流,这样就得到了适合目标媒体档次要求的视频流。
这个过程可以根据所需的目标媒体档次,对媒体流进行高效的编码和传输,以满足不同网络条件和设备能力下的视频播放需求。
本申请实施例中,客户端可以主动检测网络情况,当确定当前网络拥塞时,客户端可以主动降低视频码率和分辨率档,如主动选择一个视频码率和分辨率档告诉媒体转发服务,媒体转发服务再对媒体流进行分层重编码后按照客户端所选择的视频码率和分辨率档进行推流。
在一个可选的实施例中,在所述媒体流为视频流的情况下,所述媒体档次包括视频的分辨率档、码率档、帧率档以及I帧间隔至少之一,在所述媒体流为音频流的情况下,所述媒体档次包括音频的码率档。其中,I帧(Intra-coded frame)是视频编码中的一种关键帧,也被称为关键帧或者帧内编码帧。在视频压缩中,视频帧通常采用I帧、P帧和B帧来进行压缩编码。I帧是一种独立的帧,它不依赖于其他帧,包含的是完整的图像信息,而P帧(Predictive frame)和B帧(Bidirectional predicted frame)则是基于I帧或其他P帧进行预测和差异编码得到的。I帧间隔指的是在视频编码中,相邻两个I帧之间的间隔帧数。这个间隔数目越大,视频的压缩率越高,但是图像的质量会受到影响。一般情况下,I帧间隔越小,视频的图像质量越好,但是视频的压缩率会降低,文件大小也会增加。调整I帧间隔可以在视频编码过程中平衡视频质量和压缩率。
本申请提供了一种媒体流的分层编码方法,应用于媒体转发服务,所述方法包括:接收第一客户端发送的信令消息,其中,所述第一客户端为预先注册在所述媒体转发服务下的客户端;确定所述信令消息中携带的所述第一客户端请求的目标媒体档次;在向所述第一客户端推送的媒体流的实际媒体档次与所述目标媒体档次不一致时,将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流;将所述目标媒体流推送给所述第一客户端及同样注册在所述媒体转发服务下的第二客户端,使得所述第一客户端和所述第二客户端均接收到所述目标媒体档次的所述目标媒体流。本申请基于云平台,即媒体转发服务,根据客户端主动调整的目标媒体档次,将媒体流进行分层重编码后再进行推流,使得所有注册在该媒体转发服务下的客户端均接收到调整后的目标媒体流,能够对整个网络节点做出调整,进而降低该媒体转发服务及客户端所在局域网的网络拥塞程度,而处于其他网络环境下的媒体转发服务和客户端则不受影响,解决了接收端的主动调整无法对整个网络节点做出调整的技术问题。
基于相同的技术构思,本申请提供了一种媒体流的分层编码方法,应用于客户端,如图4所示,所述方法包括:
步骤S402,在检测到网络拥塞的情况下,根据拥塞情况确定媒体流需要调整的目标媒体档次;
步骤S404,向所述客户端已注册的媒体转发服务发送携带有所述目标媒体档次的信令消息,以使所述媒体转发服务将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流;
步骤S406,接收所述目标媒体流。
在步骤S402中,在检测到网络拥塞的情况下,根据拥塞情况确定媒体流需要调整的目标媒体档次具体包括以下几个步骤:
步骤1,检测网络拥塞:通过监测网络传输的实时数据,包括网络带宽、数据包丢失率、传输延迟等指标,判断网络是否出现拥塞情况。
步骤2,评估拥塞程度:一旦检测到网络拥塞,进一步评估拥塞的严重程度。这可以根据设定的阈值或者算法来进行,例如,根据网络带宽的占用率、传输延迟的大小等,将拥塞程度分为轻度、中度和重度。
步骤3,确定目标媒体档次:根据拥塞程度,动态确定需要调整的目标媒体档次。例如,如果拥塞程度较轻,可能只需要降低媒体流的增强层档次;如果拥塞程度较重,可能需要同时降低基本层和增强层的档次。
步骤4,实时调整:在确定目标媒体档次后,按照之前描述的步骤,选择对应的基本层和增强层,进行编码并合成新的目标媒体档次的媒体流。
通过这样的方式,可以实时根据网络状况动态调整媒体流的档次,以适应网络拥塞情况,确保媒体流的稳定传输和用户的观看体验。
在步骤S402中,媒体转发服务将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,具体是通过将视频数据分为多个层次,根据不同的重要性和优先级进行编码,以实现在不同的带宽和设备条件下提供最佳的视频质量。具体的实现过程如下:
视频分层:首先,原始视频数据被分成多个不同的层次。通常会分为基本层(baselayer)和增强层(enhancement layer)。基本层包含视频的基本信息,而增强层包含额外的细节和精度信息。
编码:对每个层次的视频数据进行独立的编码。通常使用的编码标准包括H.264/AVC、H.265/HEVC等。编码器会根据每个层次的特点和要求进行不同的编码处理,通常增强层使用更高的编码质量和码率。
传输:编码完成后,不同层次的视频数据可以根据网络带宽和接收端设备的情况进行传输。基本层可以被所有接收端接收和解码,而增强层可以根据需要进行选择性传输。
解码:接收端根据接收到的视频数据进行解码。如果带宽充足,可以解码并显示增强层的视频数据,提高视频质量。如果带宽有限,也可以只解码基本层,以保证视频的播放稳定性。
本申请基于云平台,即媒体转发服务,根据客户端主动调整的目标媒体档次,将媒体流进行分层重编码后再进行推流,使得所有注册在该媒体转发服务下的客户端均接收到调整后的目标媒体流,能够对整个网络节点做出调整,进而降低该媒体转发服务及客户端所在局域网的网络拥塞程度,而处于其他网络环境下的媒体转发服务和客户端则不受影响,解决了接收端的主动调整无法对整个网络节点做出调整的技术问题。
根据本申请实施例的又一方面,如图5所示,提供了一种媒体流的分层编码装置,应用于媒体转发服务,包括:
信令消息接收模块501,用于接收第一客户端发送的信令消息,其中,所述第一客户端为预先注册在所述媒体转发服务下的客户端;
媒体档次确定模块503,用于确定所述信令消息中携带的所述第一客户端请求的目标媒体档次;
分层重编码模块505,用于在向所述第一客户端推送的媒体流的实际媒体档次与所述目标媒体档次不一致时,将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流;
推送模块507,用于将所述目标媒体流推送给所述第一客户端及同样注册在所述媒体转发服务下的第二客户端,使得所述第一客户端和所述第二客户端均接收到所述目标媒体档次的所述目标媒体流。
需要说明的是,该实施例中的信令消息接收模块501可以用于执行本申请实施例中的步骤S202,该实施例中的媒体档次确定模块503可以用于执行本申请实施例中的步骤S204,该实施例中的分层重编码模块505可以用于执行本申请实施例中的步骤S206,该实施例中的推送模块507可以用于执行本申请实施例中的步骤S208。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
可选地,该媒体档次确定模块,具体用于:确定所述信令消息的消息头,其中,所述信令消息为基于SIP协议的消息;在所述消息头中查找用于请求媒体档次的SIP字段;读取所述SIP字段的字段值,以确定所述第一客户端请求的目标媒体档次。
可选地,该分层重编码模块,具体用于:获取所述媒体流的最高档媒体流;将所述最高档媒体流分为基本层和多个档次的增强层,其中,所述基本层用于表示所述最高档媒体流的基本媒体信息,所述增强层用于表示所述最高档媒体流的额外细节信息和精度信息,不同档次的增强层对应的额外细节信息和精度信息不同;按照所述目标媒体档次选择所述基本层和对应档次的目标增强层;分别对所述基本层和所述目标增强层按照对应的编码标准进行编码;合成编码后的所述基本层的媒体流和所述目标增强层的媒体流,得到所述目标媒体档次的所述目标媒体流。
可选地,该分层重编码模块,还用于:向所述媒体流对应的目标媒体源请求所述最高档媒体流,并接收由所述目标媒体源发出的所述最高档媒体流;向当前媒体转发服务的上级媒体转发服务请求所述最高档媒体流,以通过所述上级媒体转发服务将所述最高档媒体流的请求逐级传递至所述目标媒体源,并接收由所述目标媒体源发出、由所述上级媒体转发服务逐级传递下来的所述最高档媒体流。
可选地,在所述媒体流为视频流的情况下,所述媒体档次包括视频的分辨率档、码率档以及I帧间隔任意一个;或者,在所述媒体流为音频流的情况下,所述媒体档次包括音频的码率档。
根据本申请实施例的又一方面,如图6所示,提供了一种媒体流的分层编码装置,应用于客户端,包括:
媒体档次调整模块601,用于在检测到网络拥塞的情况下,根据拥塞情况确定媒体流需要调整的目标媒体档次;
信令消息发送模块603,用于向所述客户端已注册的媒体转发服务发送携带有所述目标媒体档次的信令消息,以使所述媒体转发服务将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流;
媒体流接收模块605,用于接收所述目标媒体流。
需要说明的是,该实施例中的媒体档次调整模块601可以用于执行本申请实施例中的步骤S402,该实施例中的信令消息发送模块603可以用于执行本申请实施例中的步骤S404,该实施例中的媒体流接收模块605可以用于执行本申请实施例中的步骤S406。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
根据本申请实施例的另一方面,本申请提供了一种电子设备,如图7所示,包括存储器701、处理器703、通信接口705及通信总线707,存储器701中存储有可在处理器703上运行的计算机程序,存储器701、处理器703通过通信接口705和通信总线707进行通信,处理器703执行计算机程序时实现上述方法的步骤。
上述电子设备中的存储器、处理器通过通信总线和通信接口进行通信。所述通信总线可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
根据本申请实施例的又一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一实施例的步骤。
可选地,在本申请实施例中,计算机可读介质被设置为存储用于所述处理器执行以下步骤的程序代码:
接收第一客户端发送的信令消息,其中,所述第一客户端为预先注册在所述媒体转发服务下的客户端;
确定所述信令消息中携带的所述第一客户端请求的目标媒体档次;
在向所述第一客户端推送的媒体流的实际媒体档次与所述目标媒体档次不一致时,将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流;
将所述目标媒体流推送给所述第一客户端及同样注册在所述媒体转发服务下的第二客户端,使得所述第一客户端和所述第二客户端均接收到所述目标媒体档次的所述目标媒体流。
可选地,在本申请实施例中,计算机可读介质还被设置为存储用于所述处理器执行以下步骤的程序代码:
在检测到网络拥塞的情况下,根据拥塞情况确定媒体流需要调整的目标媒体档次;
向所述客户端已注册的媒体转发服务发送携带有所述目标媒体档次的信令消息,以使所述媒体转发服务将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流;
接收所述目标媒体流。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本申请实施例在具体实现时,可以参阅上述各个实施例,具有相应的技术效果。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种媒体流的分层编码方法,应用于媒体转发服务,其特征在于,所述方法包括:
接收第一客户端发送的信令消息,其中,所述第一客户端为预先注册在所述媒体转发服务下的客户端;
确定所述信令消息中携带的所述第一客户端请求的目标媒体档次;
在向所述第一客户端推送的媒体流的实际媒体档次与所述目标媒体档次不一致时,将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流;
将所述目标媒体流推送给所述第一客户端及同样注册在所述媒体转发服务下的第二客户端,使得所述第一客户端和所述第二客户端均接收到所述目标媒体档次的所述目标媒体流。
2.根据权利要求1所述的方法,其特征在于,所述确定所述信令消息中携带的所述第一客户端请求的目标媒体档次包括:
确定所述信令消息的消息头,其中,所述信令消息为基于SIP协议的消息;
在所述消息头中查找用于请求媒体档次的SIP字段;
读取所述SIP字段的字段值,以确定所述第一客户端请求的目标媒体档次。
3.根据权利要求1所述的方法,其特征在于,所述将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流包括:
获取所述媒体流的最高档媒体流;
将所述最高档媒体流分为基本层和多个档次的增强层,其中,所述基本层用于表示所述最高档媒体流的基本媒体信息,所述增强层用于表示所述最高档媒体流的额外细节信息和精度信息,不同档次的增强层对应的额外细节信息和精度信息不同;
按照所述目标媒体档次选择所述基本层和对应档次的目标增强层;
分别对所述基本层和所述目标增强层按照对应的编码标准进行编码;
合成编码后的所述基本层的媒体流和所述目标增强层的媒体流,得到所述目标媒体档次的所述目标媒体流。
4.根据权利要求3所述的方法,其特征在于,所述获取所述媒体流的最高档媒体流包括:
向所述媒体流对应的目标媒体源请求所述最高档媒体流,并接收由所述目标媒体源发出的所述最高档媒体流;或者,
向当前媒体转发服务的上级媒体转发服务请求所述最高档媒体流,以通过所述上级媒体转发服务将所述最高档媒体流的请求逐级传递至所述目标媒体源,并接收由所述目标媒体源发出、由所述上级媒体转发服务逐级传递下来的所述最高档媒体流。
5.根据权利要求1至4任一所述的方法,其特征在于,在所述媒体流为视频流的情况下,所述媒体档次包括视频的分辨率档、码率档、帧率档以及I帧间隔中任意一个;或者,在所述媒体流为音频流的情况下,所述媒体档次包括音频的码率档。
6.一种媒体流的分层编码方法,应用于客户端,其特征在于,所述方法包括:
在检测到网络拥塞的情况下,根据拥塞情况确定媒体流需要调整的目标媒体档次;
向所述客户端已注册的媒体转发服务发送携带有所述目标媒体档次的信令消息,以使所述媒体转发服务将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流;
接收所述目标媒体流。
7.一种媒体流的分层编码装置,应用于媒体转发服务,其特征在于,包括:
信令消息接收模块,用于接收第一客户端发送的信令消息,其中,所述第一客户端为预先注册在所述媒体转发服务下的客户端;
媒体档次确定模块,用于确定所述信令消息中携带的所述第一客户端请求的目标媒体档次;
分层重编码模块,用于在向所述第一客户端推送的媒体流的实际媒体档次与所述目标媒体档次不一致时,将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流;
推送模块,用于将所述目标媒体流推送给所述第一客户端及同样注册在所述媒体转发服务下的第二客户端,使得所述第一客户端和所述第二客户端均接收到所述目标媒体档次的所述目标媒体流。
8.一种媒体流的分层编码装置,应用于客户端,其特征在于,包括:
媒体档次调整模块,用于在检测到网络拥塞的情况下,根据拥塞情况确定媒体流需要调整的目标媒体档次;
信令消息发送模块,用于向所述客户端已注册的媒体转发服务发送携带有所述目标媒体档次的信令消息,以使所述媒体转发服务将所述媒体流按照所述目标媒体档次的编码规格进行分层重编码,得到所述目标媒体档次的目标媒体流;
媒体流接收模块,用于接收所述目标媒体流。
9.一种电子设备,包括存储器、处理器、通信接口及通信总线,所述存储器中存储有可在所述处理器上运行的计算机程序,所述存储器、所述处理器通过所述通信总线和所述通信接口进行通信,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至6任一项所述的方法的步骤。
10.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求1至6任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311713954.2A CN117834947A (zh) | 2023-12-13 | 2023-12-13 | 媒体流的分层编码方法、装置、设备及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311713954.2A CN117834947A (zh) | 2023-12-13 | 2023-12-13 | 媒体流的分层编码方法、装置、设备及计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117834947A true CN117834947A (zh) | 2024-04-05 |
Family
ID=90506881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311713954.2A Pending CN117834947A (zh) | 2023-12-13 | 2023-12-13 | 媒体流的分层编码方法、装置、设备及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117834947A (zh) |
-
2023
- 2023-12-13 CN CN202311713954.2A patent/CN117834947A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106576182B (zh) | 支持超文本传输协议上的动态自适应流的设备和方法 | |
US8180915B2 (en) | Coding data streams | |
US8218439B2 (en) | Method and apparatus for adaptive buffering | |
CN1618226B (zh) | 基于客户带宽或性能的目标升级的视频多点广播 | |
US20210306405A1 (en) | Apparatus and method for constant quality optimization for adaptive streaming | |
US9609276B2 (en) | Resource-adaptive video encoder sharing in multipoint control unit | |
EP3127285B1 (en) | Method and systems for optimizing bandwidth utilization in a multi-participant full mesh peer-to-peer video session | |
US20040261113A1 (en) | Method of transmitting layered video-coded information | |
US10944973B2 (en) | Estimation of video quality of experience on media servers | |
US10834161B2 (en) | Dash representations adaptations in network | |
US9967768B2 (en) | Apparatus and method relating to the streaming of content to one or more user devices | |
US11283854B2 (en) | Method and system for providing variable quality streaming video services in mobile communication networks | |
US10063902B2 (en) | ABR network profile selection engine | |
RU2454830C1 (ru) | Способ и устройство для назначения битовой скорости передачи данных для мультимедийной связи "точка - много точек" | |
GB2540571A (en) | Digital home network multimedia share system and share method thereof | |
CN117834947A (zh) | 媒体流的分层编码方法、装置、设备及计算机可读介质 | |
CN110062003B (zh) | 视频数据发送方法、装置、电子设备及存储介质 | |
KR20090113505A (ko) | 스케일러블 비디오 제공 시스템 및 스케일러블 비디오 제공방법 | |
CN112398854B (zh) | 用于确定业务通信的编解码模式集的方法和装置 | |
CN112770077B (zh) | 视频会议i帧编码方法及装置 | |
CN117729333A (zh) | 一种编解码方法及网络侧设备、服务器、终端、存储介质 | |
KR100592876B1 (ko) | 고화질 인터넷 방송 서비스 시스템의 사용자 정보 관리 방법 | |
CN115484505A (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 |