CN115767146A - 数据流控制方法、***、装置、电子设备及存储介质 - Google Patents

数据流控制方法、***、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115767146A
CN115767146A CN202211413479.2A CN202211413479A CN115767146A CN 115767146 A CN115767146 A CN 115767146A CN 202211413479 A CN202211413479 A CN 202211413479A CN 115767146 A CN115767146 A CN 115767146A
Authority
CN
China
Prior art keywords
parameters
terminal
parameter
multimedia data
data stream
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
CN202211413479.2A
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.)
Baidu com Times Technology Beijing Co Ltd
Original Assignee
Baidu com Times Technology Beijing 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 Baidu com Times Technology Beijing Co Ltd filed Critical Baidu com Times Technology Beijing Co Ltd
Priority to CN202211413479.2A priority Critical patent/CN115767146A/zh
Publication of CN115767146A publication Critical patent/CN115767146A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开提供了数据流控制方法、***、装置、电子设备及存储介质,涉及计算机视觉、语音技术、智能媒体和视频流等技术领域。具体实现方案为:接收第一终端发送的参数信息;其中,所述参数信息包括直播参数和硬件参数;基于所述直播参数,确定初始编码参数;基于所述硬件参数以及所述初始编码参数,确定目标编码参数;向所述第一终端发送所述目标编码参数;其中,所述目标编码参数用于对原始多媒体数据流进行编码得到编码后的多媒体数据流。上述方法可以保证终端上传的多媒体数据流的质量。

Description

数据流控制方法、***、装置、电子设备及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及计算机视觉、语音技术、智能媒体和视频流技术领域等技术领域。
背景技术
随着技术的发展,用户对音视频(尤其是在直播场景下的音视频)的清晰度以及流畅程度的要求越来越高。然而,如何在直播的场景下,保证直播端上传的音频和/或视频数据流的质量,就成为需要解决的问题。
发明内容
本公开提供了一种数据流控制方法、***、装置、电子设备及存储介质。
根据本公开的第一方面,提供了一种数据流控制方法,包括:
接收第一终端发送的参数信息;其中,所述参数信息包括直播参数和硬件参数;
基于所述直播参数,确定初始编码参数;
基于所述硬件参数以及所述初始编码参数,确定目标编码参数;
向所述第一终端发送所述目标编码参数;其中,所述目标编码参数用于对原始多媒体数据流进行编码得到编码后的多媒体数据流。
根据本公开的第二方面,提供了一种数据流控制***,包括:
数据流控制装置,用于接收第一终端发送的参数信息;其中,所述参数信息包括直播参数和硬件参数;基于所述直播参数,确定初始编码参数;基于所述硬件参数以及所述初始编码参数,确定目标编码参数;向所述第一终端发送所述目标编码参数;其中,所述目标编码参数用于对原始多媒体数据流进行编码得到编码后的多媒体数据流;
第一终端,用于发送所述参数信息;以及接收所述目标编码参数。
根据本公开的第三方面,提供了一种数据流控制装置,包括:
接收模块,用于接收第一终端发送的参数信息;其中,所述参数信息包括直播参数和硬件参数;
处理模块,用于基于所述直播参数,确定初始编码参数;基于所述硬件参数以及所述初始编码参数,确定目标编码参数;
发送模块,用于向所述第一终端发送所述目标编码参数;其中,所述目标编码参数用于对原始多媒体数据流进行编码得到编码后的多媒体数据流。
根据本公开的第四方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行前述第一方面的数据流控制方法。
根据本公开的第五方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使该计算机执行前述方法。
根据本公开的第六方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现前述方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
本实施例提供的方案,可以结合第一终端的直播参数和硬件参数,确定该第一终端所对应的目标编码参数;如此,可以针对不同的终端确定更加符合终端要求的编码参数,使得各个终端在进行直播时基于符合自身要求的编码参数进行多媒体数据流的编码处理,保证终端上传的多媒体数据流的质量。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开一实施例的数据流控制方法的流程示意图;
图2是根据本公开一实施例的数据流控制***的一种组成结构示意图;
图3是根据本公开又一实施例的数据流控制***的一种组成结构示意图;
图4是根据本公开一实施例的数据流控制***的一种示例性组成架构示意图;
图5是根据本公开一实施例的数据流控制方法的一种示意性流程图;
图6是根据本公开另一实施例的数据流控制***的一种组成结构示意图;
图7是根据本公开一实施例的数据流控制方法的又一种示意性流程图;
图8是根据本公开一实施例的数据流控制装置的一种组成结构示意图;
图9是根据本公开另一实施例的数据流控制装置的一种组成结构示意图;
图10是用来实现本公开实施例的数据流控制方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本公开第一方面实施例提供一种数据流控制方法,如图1所示,包括:
S101:接收第一终端发送的参数信息;其中,所述参数信息包括直播参数和硬件参数;
S102:基于所述直播参数,确定初始编码参数;
S103:基于所述硬件参数以及所述初始编码参数,确定目标编码参数;
S104:向所述第一终端发送所述目标编码参数;其中,所述目标编码参数用于对原始多媒体数据流进行编码得到编码后的多媒体数据流。
上述第一方面实施例提供的数据流控制方法,可以应用于电子设备;该电子设备可以为服务器。
通过采用上述方案,可以结合第一终端的直播参数和硬件参数,确定该第一终端所对应的目标编码参数;如此,可以针对不同的终端确定更加符合终端要求的编码参数,使得各个终端在进行直播时基于符合自身要求的编码参数进行多媒体数据流的编码处理,保证终端上传的多媒体数据流的质量。
在一些可能的实施方式中,所述基于所述直播参数,确定初始编码参数,可以包括:将所述直播参数输入目标模型,得到所述目标模型输出的所述初始编码参数。
所述直播参数,可以包括以下至少之一:直播类型,设备类型。所述直播类型,可以包括以下至少之一:户外,秀场,游戏,教育,财经,体育等等。其中,所述设备类型,可以包括以下之一:智能终端、台式机、第三方服务器等等。
应理解,前述直播参数仅为示例性说明,在实际处理中只要与直播相关的参数均可以包含在内,比如还可以包括直播间标识、主播信息、开播时间等等至少一种。这里不再对直播参数可能包含的内容进行穷举。
前述初始编码参数可以包括以下至少之一:初始编码算法、初始编码方式、初始码率、初始分辨率、初始帧率。
其中,所述初始编码算法可以为以下之一:AVC(Advanced Video Coding,高级视频编码)、EVC(Essential Video Coding,基本视频编码)等等,这里不对全部可能的编码算法进行穷举。
所述初始编码方式可以为硬编码或软编码。其中,所述硬编码指的是使用非中央处理器(central processing unit,CPU)进行编码的方式,比如,硬编码可以为使用显卡、芯片等等进行编码的方式。所述软编码可以指的是使用CPU进行编码的方式。
其中,码率可以为每秒钟视频数据的比特位数(可以采用bps(比特每秒)为单位)。视频文件大小=码率*时长。分辨率为一帧视频的大小,表示长宽像素个数。帧率为每秒钟视频刷新数(比如25帧每秒)。
该目标模型的输入信息即前述直播参数;该目标模型的输出信息可以至少包括前述初始编码参数。其中,该目标模型可以为预先训练得到的。具体的,该目标模型的训练,可以为在执行本实施例的数据流控制方法的服务器中执行的;或者,该目标模型的训练,可以为在其他服务器执行的,这种情况下执行本实施例提供的数据流控制方法的服务器可以预先从该其他服务器获取并保存前述目标模型。
可见,通过采用上述方案,可以直接通过目标模型对第一终端发来的直播参数进行处理,以得到目标模型输出的初始编码参数。如此,能够更加准确并且高效的预测第一终端较为适用的初始编码参数。
在一些可能的实施方式中,该目标模型的训练,可以为在执行本实施例的数据流控制方法的服务器中执行的。该目标模型的训练方法可以包括:基于样本数据对初始模型进行训练,得到所述目标模型。
其中,所述样本数据可以包括:历史多媒体数据流对应的历史直播参数、所述历史多媒体数据流对应的历史编码参数、所述历史多媒体数据流对应的历史质量评分。进一步地,该样本数据还可以包括:所述历史多媒体数据流对应的历史转码参数。
该历史多媒体数据流对应的历史直播参数可以包括以下至少之一:历史直播类型,历史设备类型。所述历史直播类型与前述直播类型包括的内容类似,不做重复说明,并且历史设备类型与前述设备类型包括的内容也是类似的,也不做赘述。
该历史多媒体数据流对应的历史编码参数可以包括的内容有:历史编码算法、历史编码方式、历史码率、历史分辨率、历史帧率中至少一种。关于历史编码算法、历史编码方式的详细说明,与前述初始编码算法、初始编码方式是类似的,不做赘述。
该历史多媒体数据流对应的历史转码参数可以包括以下至少之一:历史转码算法、历史转码分辨率、历史转码码率。示例性的,所述历史转码算法可以为以下之一:CRF(Constant Rate Factor,恒定码率系数)、CBR(Constants Bit Rate,固定码率)。应理解,历史转码算法还可能有更多类型,只是本实施例不做穷举。
所述历史多媒体数据流对应的历史质量评分可以包括以下至少之一:历史主观质量评分、历史辅助质量评分。
本实施例提供的方案,还可以包括:对一个或多个历史多媒体数据流分别进行离线评测,得到前述一个或多个历史多媒体数据流中每一个历史多媒体数据流分别对应的历史主观质量评分和历史辅助质量评分;将每一个历史多媒体数据流对应的历史主观质量评分、历史辅助质量评分,以及该历史多媒体数据流对应的历史直播参数、该历史编码参数、该历史转码参数共同保存。相应的,获取任意一个样本数据的处理可以包括:在需要使用历史保存的数据生成样本数据的时候,可以获取任意一个历史多媒体数据流所对应的历史直播参数、历史编码参数、历史转码参数以及历史质量评分;将该历史直播参数、该历史编码参数、该历史转码参数以及该历史质量评分作为一个样本数据。
该历史主观质量评分主要是对历史多媒体数据流的主观画质评测。前述历史主观质量评分的获取方式,可以是:采用VMAF(Video Multi-method Assessment Fusion,视频多方法评估融合)的方式对历史多媒体数据流进行评估,得到该历史多媒体数据流的历史主观质量评分。这里,该VMAF是使用机器学习构建的工具,是准确的视频质量评估工具,能够预测人对视频质量的主观认知。该VMAF可以保证跨内容的一致性,并且保证复杂度不能过高以确保能够在云端进行大规模的部署。其中,保证跨内容的一致性,可以指的是用户在观看不同内容的多媒体数据流(比如不同内容的视频)时,预估用户观看的质量的评测标准应当保持一致。
具体的,VMAF能够预测在超文本传输协议(Hyper Text Transfer Protocol,HTTP)流媒体技术下的图像质量失真。相应的,前述采用VMAF的方式对历史多媒体数据流进行评估,得到该历史多媒体数据流的历史主观质量评分的处理,可以包括:采用VMAF的方式对某一个样本数据关联的历史多媒体数据流进行评估,得到该历史多媒体数据流的图像质量失真指标;基于该图像质量失真指标,确定历史多媒体数据流的历史主观质量评分。其中,该图像质量失真指标可以包括压缩失真指标和缩放失真指标。
前述历史辅助质量评分的确定方式,可以是:基于前述历史多媒体数据流的PSNR(Peak Signal Noise Rate,峰值信噪比)和/或SSIM(Structural SIMilarity,结构相似性),确定该历史多媒体数据流的历史辅助质量评分。
本实施例提供的方法还可以包括:在任意一个历史多媒体数据流关联的历史辅助质量评分在预设分值范围之外的情况下,删除该历史多媒体数据流及其关联的历史直播参数、历史编码参数、历史转码参数以及历史质量评分;在任意一个历史多媒体数据流关联的历史辅助质量评分在预设分值内的情况下,保留历史多媒体数据流及其关联的历史直播参数、历史编码参数、历史转码参数以及历史质量评分。也就是说,在任意一个历史多媒体数据流中包含的历史辅助质量评分与预设分值范围之间存在差异,就可以将该历史多媒体数据流归档为异常评测数据,然后直接删除该历史多媒体数据流及其关联的历史直播参数、历史编码参数、历史转码参数以及历史质量评分。
前述基于样本数据对初始模型进行训练可以包括:选取一个或多个样本数据,从选取的一个或多个样本数据中获取历史质量评分最高的目标样本数据;将目标样本数据中的历史直播参数输入所述初始模型,得到所述初始模型输出的预测信息;基于所述预测信息以及目标样本数据中的历史编码参数和/或历史转码参数,得到损失函数;基于所述损失函数反向传导更新所述初始模型。
其中,所述选取一个或多个样本数据,可以包括:选取包含相同历史直播参数的一个或多个样本数据;或者,选取包含相同历史编码参数的一个或多个样本数据。
前述从一个或多个样本数据中获取历史质量评分最高的目标样本数据,可以指的是:从一个或多个样本数据中获取历史质量评分高于指定门限值的一个或多个候选样本数据,依次将所述一个或多个候选样本数据中的每个候选样本数据作为目标样本数据。其中,指定门限值可以根据实际情况配置,不对其进行限定。
前述损失函数可以是采用最小均方误差(Minimize Square Error,MSE)、或者极大似然误差等方式构建的,具体处理本实施例不做限定。前述基于所述损失函数反向传导更新所述初始模型,可以是基于所述损失函数,采用梯度下降算法更新所述初始模型的模型参数。
前述初始模型收敛的确定方式可以包括以下至少之一:训练的循环次数达到预设次数门限值;损失函数不再变化或小于指定值等等。所述预设次数门限值可以根据实际情况设置,比如可以为100次、50次等等。本实施例不对初始模型可能的全部收敛条件进行穷举。
通过前述处理,可以基于历史多媒体数据流构建样本数据,该样本数据中可以包括历史直播参数、历史编码参数以及历史主观质量评分、历史辅助质量评分;基于最小均方误差(Minimize Square Error,MSE)、或者极大似然误差等方式构建损失函数;再使用梯度下降算法对初始模型的模型参数调优。最终可以得到目标模型,使得该目标模型至少可以对每一种直播参数处理以得到最优的初始编码参数。
在一些可能的实施方式中,所述基于所述硬件参数以及所述初始编码参数,确定目标编码参数,包括:基于所述硬件参数,确定候选编码相关参数;在所述候选编码相关参数与所述初始编码参数不同的情况下,基于所述候选编码相关参数对所述初始编码参数进行调整,得到所述目标编码参数。
所述硬件参数,可以包括以下至少之一:终端型号、采集部件的型号、编码部件的型号、编码部件的设置方式、通信部件的型号。应理解,以上仅为硬件参数的示例性说明,在实际处理中还可以有更多硬件参数,只是这里不做穷举。
所述基于所述硬件参数,确定所述候选编码相关参数,具体可以包括:基于所述硬件参数,确定所述第一终端的硬件评分;基于预设的第一对应关系,确定所述硬件评分对应的所述候选编码相关参数。
其中,所述第一对应关系可以包括:一个或多个候选硬件评分范围中,每个候选硬件评分范围对应的候选编码相关参数。所述每个候选硬件评分范围可以根据实际情况设置,比如可以是0-10分(含10分)为一个候选硬件评分范围,10(不包含10分)-15分(含15分)为一个候选硬件评分范围,15(不包含15分)-20分(包含20分)为一个候选硬件评分范围,这里不做进行穷举。
在确定所述候选编码相关参数之后,还可以包括:判断所述候选编码相关参数与初始编码参数中相同参数类型的参数内容是否相同。
具体的,该候选编码相关参数可能包含的参数类型,少于或等于初始编码参数中包含的参数类型。示例性的,该候选编码相关参数可能包括以下至少之一:候选编码算法、候选编码方式。相应的,判断所述候选编码相关参数与初始编码参数中相同参数类型的参数内容是否相同,可以为:判断所述候选编码算法与初始编码参数中的初始编码算法是否相同;和/或,判断所述候选编码方式与初始编码参数中的初始编码方式是否相同。应理解,这里仅为对候选编码相关参数可能包含的内容的示例性说明,在实际处理中,该候选编码相关参数可能还会包括候选码率、候选分辨率等等至少之一,只是不进行穷举。
示例性的,某些类型的终端性能较好,可以支持HEVC(High Efficiency VideoCoding,高效率视频编码)的编码算法;其中HEVC也称H.265,是一种高度压缩率和算法复杂度的编码方式,能够在保持清晰度的同时码率更低,节省带宽。某些类型的终端则性能较差,仅能使用HAVC(H.264/AVC(Advanced Video Coding),H.264/高级视频编码)。比如,第一终端为性能较好的终端,前述初始编码参数中的初始编码算法为HAVC,而候选编码相关参数为候选编码算法为HEVC;该候选编码算法与初始编码参数中的初始编码算法不同,则将初始编码参数中的初始编码算法替换为HEVC,该初始编码参数的其他参数的内容不变,得到更新后的初始编码参数,将更新后的初始编码参数作为所述目标编码参数。
通过采用以上方案,可以在基于第一终端的直播参数预先得到了初始编码参数的基础上,进一步结合第一终端的硬件参数对初始编码参数进行调整,从而可以得到更加适用于该第一终端的目标编码参数,保证了第一终端的直播质量。
在一些可能的实施方式中,所述基于所述硬件参数以及所述初始编码参数,确定目标编码参数,包括:基于所述硬件参数,确定候选编码相关参数;在所述候选编码相关参数与所述初始编码参数相同的情况下,将所述初始编码参数作为所述目标编码参数。
关于基于所述硬件参数,确定候选编码相关参数的具体说明,与前述实施方式相同,不做重复说明。关于判断所述候选编码相关参数与初始编码参数中相同参数类型的参数内容是否相同的处理,也与前述实施方式相同,同样不做重复说明。
与前述实施方式不同之处在于,本实施方式中,在所述候选编码相关参数与所述初始编码参数相同的情况下,将所述初始编码参数作为所述目标编码参数。举例来说,候选编码相关参数为候选编码算法A1;该候选编码算法A1、与初始编码参数中的初始编码算法A1相同,则保持该初始编码参数不变,将初始编码参数直接作为所述目标编码参数。
结合前述实施方式,对基于所述硬件参数以及所述初始编码参数,确定目标编码参数的处理进行说明,可以包括:
基于所述硬件参数,确定候选编码相关参数;
判断所述候选编码相关参数与初始编码参数中相同参数类型的参数内容是否相同;
在所述候选编码相关参数与所述初始编码参数相同的情况下,将所述初始编码参数作为所述目标编码参数;在所述候选编码相关参数与所述初始编码参数不同的情况下,基于所述候选编码相关参数对所述初始编码参数进行调整,得到所述目标编码参数。
前述实施例中,所述目标编码参数包含的参数类型与初始编码参数相同。示例性的,若初始编码参数可以包括以下至少之一:初始编码算法、初始编码方式、初始码率、初始分辨率。相应的,目标编码参数也包括以下至少之一:目标编码算法、目标编码方式、目标码率、目标分辨率。
如此,在基于直播参数以及目标模型,得到初始编码参数的基础上,结合本次直播所使用的第一终端的硬件参数确定该初始编码参数无需调整的情况下,可以直接将该初始编码参数作为目标编码参数,通过二次校验的方式可以保证目标编码参数为最适合第一终端的参数,保证了第一终端的直播质量。
在一些可能的实施方式中,所述方法还可以包括:实时获取所述第一终端的当前网络参数;基于所述第一终端的当前网络参数与所述第一终端的历史网络参数,确定所述第一终端的网络变化状态;在基于所述第一终端的网络变化状态确定需要调整所述目标编码参数的情况下,确定调整后的目标编码参数;向所述第一终端发送所述调整后的目标编码参数。
另外,还可以包括:在基于所述第一终端的网络变化状态确定不需要调整所述目标编码参数的情况下,保持所述目标编码参数不变;继续实时获取所述第一终端的当前网络参数。
进一步地,在向所述第一终端发送所述调整后的目标编码参数之后,可以将原目标编码参数删除,将该调整后的目标编码参数作为当前的目标编码参数;然后继续实时获取所述第一终端的当前网络参数。
其中,所述当前网络参数,可以指的是当前网速。相应的,所述历史网络参数可以指的是历史网速。该历史网速可以是当前时刻之前指定时长的历史时刻下的历史网速。其中,指定时长可以根据实际情况设置,比如可以为10分钟、15分钟、1分钟、或更长或更短,这里不做穷举。
需要指出,所述当前网络参数以及历史网络参数还可以包括其他类型的网络参数。比如,该当前网络参数可以包括当前网络带宽等等,这里不对其全部可能类型的网络参数进行穷举,只要当前网络参数和历史网络参数的类型是相同的,就在本实施例保护范围内。其中,所述当前网络带宽可以是当前网络的上行带宽。
以前述当前网络参数为当前网速,前述历史网络参数为历史网速为例进行示例性说明。所述基于所述第一终端的当前网络参数与所述第一终端的历史网络参数,确定所述第一终端的网络变化状态,可以包括:确定所述第一终端的当前网速与所述第一终端的历史网速之间的网速差值,基于所述网速差值确定所述第一终端的网络变化状态。
其中,所述基于所述网速差值确定所述第一终端的网络变化状态,可以包括:在所述网速差值高于第一门限值的情况下,确定第一终端的网络变化状态为网络变好;在所述网速差值低于第二门限值的情况下,确定第一终端的网络变化状态为网络变差;在所述网速差值不高于第一门限值、且不低于第二门限值的情况下,确定第一终端的网络变化状态为保持不变。其中,所述第一门限值高于所述第二门限值。所述第二门限值可以为负数。
以上仅以当前网络参数为当前网速,历史网络参数为历史网速为例进行了示例性说明,在实际处理中,当前网络参数可以包括当前网速和/或当前带宽,历史网络参数包括历史网速和/或历史带宽,具体的比对方式以及处理方式与前述示例类似,因此不做穷举。其中,所述历史带宽可以是历史网络上行带宽。
在确定所述第一终端的网络变化状态之后,还可以基于所述第一终端的网络变化状态判断是否需要对所述目标编码参数进行调整。具体可以包括:在第一终端的网络变化状态为网络变好、且持续时长达到预设时长的情况下,确定需要对目标编码参数进行调整;在第一终端的网络变化状态为网络变差、且持续时长达到预设时长的情况下,确定需要对目标编码参数进行调整。另外,除上述两种情况之外的其他情况下,可以确定不需要对目标编码参数进行调整。
其中,所述预设时长可以根据实际情况设置,比如可以是5分钟、10分钟、或更长或更短。
所述确定调整后的目标编码参数,可以包括:基于第一终端的网络变化状态、所述目标编码参数,确定调整后的目标编码参数。
具体的,所述基于第一终端的网络变化状态、所述目标编码参数,确定调整后的目标编码参数,可以包括以下至少之一:
若第一终端的网络变化状态为网络变差,则将所述目标编码参数中的目标码率降低一个码率档位,得到调整后的目标码率,基于调整后的目标码率替换目标码率,得到调整后的目标编码参数;
若第一终端的网络变化状态为网络变差,则将所述目标编码参数中的目标分辨率降低一个分辨率档位,得到调整后的目标分辨率,基于调整后的目标分辨率替换目标分辨率,得到调整后的目标编码参数;
若第一终端的网络变化状态为网络变好,则将所述目标编码参数中的目标码率提升一个码率档位,得到调整后的目标码率,基于调整后的目标码率替换目标码率,得到调整后的目标编码参数;
若第一终端的网络变化状态为网络变好,则将所述目标编码参数中的目标分辨率提升一个分辨率档位,得到调整后的目标分辨率,基于调整后的目标分辨率替换目标分辨率,得到调整后的目标编码参数。
应理解的是,前述将所述目标编码参数中的目标码率降低一个码率档位,得到调整后的目标码率之后,还可以包括:判断调整后的目标码率是否低于最低码率门限值,若低于,则不调整目标编码参数,否则,可以基于调整后的目标码率替换目标码率,得到调整后的目标编码参数。
前述将所述目标编码参数中的目标分辨率降低一个分辨率档位,得到调整后的目标分辨率之后,还可以包括:判断调整后的目标分辨率是否低于最低分辨率门限值,若低于,则不调整目标编码参数,否则,可以基于调整后的目标分辨率替换目标分辨率,得到调整后的目标编码参数。
前述将所述目标编码参数中的目标码率提升一个码率档位,得到调整后的目标码率之后,还可以包括:判断调整后的目标码率是否高于最高码率门限值,若高于,则不调整目标编码参数,否则,可以基于调整后的目标码率替换目标码率,得到调整后的目标编码参数。
前述将所述目标编码参数中的目标分辨率提升一个分辨率档位,得到调整后的目标分辨率之后,还可以包括:判断调整后的目标分辨率是否高于最高分辨率门限值,若高于,则不调整目标编码参数,否则,可以基于调整后的目标分辨率替换目标分辨率,得到调整后的目标编码参数。
前述最低码率门限值低于最高码率门限值,并且前述最低分辨率门限值低于最高分辨率门限值。
前述分辨率档位和码率档位可以根据实际情况预设,不对其进行限定。举例来说,如果确定第一终端的网速持续走低,可以确定网络变化状态为网络变差,则可以下调一个分辨率档位,比如,目标分辨率为1080p,降低一个分辨率档位则调整后的目标分辨率为720p;比如目标分辨率为720p,降低一个分辨率档位,则调整后的目标分辨率为540p。
可见,通过采用以上方案,可以在确定了目标编码参数之后,实时基于当前第一终端的网络变化状态对目标编码参数进行调整,以使得第一终端采用与当前的网络状态更加匹配的调整后的目标编码参数,最终保证第一终端的直播质量。
在一些可能的实施方式中,还可以包括:基于所述直播参数以及所述硬件参数,确定所述第一终端对应的当前转码参数。
具体的,基于所述直播参数以及所述硬件参数,确定所述第一终端对应的当前转码参数,可以包括:将所述直播参数输入所述目标模型,得到所述目标模型输出的初始转码参数;基于所述硬件参数,确定候选转码相关参数;基于所述候选转码相关参数以及所述初始转码参数,确定目标转码参数;将所述目标转码参数作为所述第一终端对应的当前转码参数。
其中,所述基于所述候选转码相关参数以及所述初始转码参数,确定目标转码参数,可以包括:判断所述候选转码相关参数与所述初始转码参数是否相同;在所述候选转码相关参数与所述初始转码参数相同的情况下,将所述初始转码参数作为所述目标转码参数;在所述候选转码相关参数与所述初始转码参数不同的情况下,基于所述候选转码相关参数对所述初始转码参数进行调整,得到所述目标转码参数。
也就是说,前述目标模型在输入直播参数的情况下,输出信息可以包括前述初始编码参数,还可以包括初始转码参数。其中,所述初始转码参数可以包括以下至少之一:初始转码算法、初始转码码率、初始转码分辨率。
所述目标模型在前述实施例已做详细说明,并且硬件参数在前述实施例已经详细说明,因此这里均不再赘述。
所述基于所述硬件参数,确定候选转码相关参数,具体可以包括:基于所述硬件参数,确定所述第一终端的硬件评分;基于预设的第二对应关系,确定所述硬件评分对应的所述候选转码相关参数。
其中,所述第二对应关系可以包括:一个或多个候选硬件评分范围中,每个候选硬件评分范围对应的候选转码相关参数。所述每个候选硬件评分范围与前述实施方式的说明相同,不做赘述
该候选转码相关参数可能包含的参数类型,少于或等于初始转码参数中包含的参数类型。示例性的,该候选转码相关参数可能包括候选转码算法。举例来说,候选转码相关参数为候选转码算法C1,初始转码算法为C2;该候选转码算法C1、与初始转码参数中的初始转码算法C2不同,则将初始转码参数中的初始转码算法替换为C1,得到所述目标转码参数。
所述目标转码参数可以包括的参数类型与初始转码参数相同。比如,该目标转码参数可以包括:目标转码码率、目标转码分辨率、目标转码算法中至少之一。应理解,前述目标转码码率可以是一个最高转码码率或称为一个最优转码码率档位;或者,前述目标转码码率可以为一个或多个转码子码率,该一个或多个转码子码率中不同转码子码率用于得到不同码率的多媒体数据流。前述目标转码分辨率也可以为一个最高转码分辨率或最优转码分辨率;或者,前述目标转码分辨率可以为一个或多个转码子分辨率,该一个或多个转码子分辨率中不同转码子分辨率用于得到不同分辨率的多媒体数据流。
还需要指出的是,本实施例提供的方法还可以包括:在确定所述调整后的目标编码参数的情况下,基于所述调整后的目标编码参数,对所述目标转码参数进行调整,得到调整后的目标转码参数;将所述调整后的目标转码参数作为所述第一终端对应的所述当前转码参数。
具体的,所述基于所述调整后的目标编码参数,对所述目标转码参数进行调整,得到调整后的目标转码参数可以是:在所述调整后的目标编码参数中所述目标码率发生变化的情况下,基于所述目标码率调整所述目标转码参数中的目标转码码率,将包含调整后的目标转码码率的目标转码参数作为调整后的目标转码参数。和/或,在所述调整后的目标编码参数中所述目标分辨率发生变化的情况下,基于所述目标分辨率调整所述目标转码参数中的目标转码分辨率,将包含调整后的目标转码分辨率的目标转码参数作为调整后的目标转码参数。
前述基于所述目标码率调整所述目标转码参数中的目标转码码率,可以指的是,直接将所述目标码率作为所述目标转码码率。和/或,基于所述目标分辨率调整所述目标转码参数中的目标转码分辨率,可以指的是,直接将所述目标分辨率作为所述目标转码分辨率。
通过采用以上方案,可以在基于第一终端的直播参数预先得到了初始转码参数的基础上,进一步结合第一终端的硬件参数对初始转码参数进行调整,从而可以得到更加适用于该第一终端的目标转码参数,保证了对第一终端上传的编码后的多媒体数据流的转码质量,最终保证在播放端的播放多媒体数据流的质量。
在一些可能的实施方式中,所述方法还可以包括:向转码服务器发送所述第一终端对应的所述当前转码参数;其中,所述第一终端对应的所述当前转码参数用于所述转码服务器对所述第一终端上传的编码后的多媒体数据流进行转码,得到N个码率中每个码率的多媒体数据流;N为大于或等于1的整数。在一种优选的示例中,N可以大于或等于2。
也就是在基于前述实施方式的处理,得到了所述第一终端对应的所述当前转码参数之后,可以直接将所述第一终端对应的所述当前转码参数发送至转码服务器,以使得转码服务器能够对第一终端的编码后的多媒体数据流进行处理。
通过采用以上方案,可以将更适用于该第一终端的当前转码参数发送至转码服务器,以保证该转码服务器对第一终端上传的编码后的多媒体数据流的转码质量,最终保证在播放端的播放多媒体数据流的质量。
在又一些可能的实施方式中,所述方法还可以包括:在接收到所述第一终端上传的编码后的多媒体数据流的情况下,基于所述第一终端对应的所述当前转码参数,对所述编码后的多媒体数据流进行转码,得到N个码率中每个码率的多媒体数据流;N为大于或等于1的整数;将所述N个码率中每个码率的多媒体数据流发送至边缘服务器。在一种优选的示例中,N可以大于或等于2。
与前述实施方式不同在于,执行本实施例的数据流控制方法的服务器还具备转码功能,因此,在得到了第一终端对应的当前转码参数后,不需要发出该第一终端对应的当前转码参数,只需要在接收到该第一终端上传的编码后的多媒体数据流的情况下,基于所述第一终端对应的所述当前转码参数,对所述编码后的多媒体数据流进行转码,得到N个码率中每个码率的多媒体数据流。
示例性的,第一终端发来的编码后的多媒体数据流为1080视频流,该第一终端对应的当前转码参数中包含了一个最优转码码率档位,该最优转码码率档位假设为1080,则可以将接收到的1080视频流分别转码得到超清(1080)、高清(720)、标清(540)三路不同码率的多媒体数据流,以此满足不同需要的播放端观看。
前述边缘服务器可以指的是CDN(Content Delivery Network,内容分发网络)中的边缘节点。相应的,播放端可以根据实际网络情况,从边缘节点获取与自身网络情况匹配的自身匹配的码率的多媒体数据流并播放。
本实施例中所述多媒体数据流,可以包括:视频流和/或音频流。
通过采用以上方案,可以采用更适用于该第一终端的当前转码参数,对第一终端上传的编码后的多媒体数据流进行转码,并得到一个或多个码率下的不同码率的多媒体数据流,可以保证在播放端的选取匹配的码率下的多媒体数据流进行播放,从而保证了播放端的播放质量。
本公开第二方面实施例提供一种数据流控制***,如图2所示,包括:
数据流控制装置201,用于接收第一终端发送的参数信息;其中,所述参数信息包括直播参数和硬件参数;基于所述直播参数,确定初始编码参数;基于所述硬件参数以及所述初始编码参数,确定目标编码参数;向所述第一终端发送所述目标编码参数;其中,所述目标编码参数用于对原始多媒体数据流进行编码得到编码后的多媒体数据流。
第一终端202,用于发送所述参数信息;以及接收所述目标编码参数。
在一些可能的实施方式中,所述数据流控制装置,用于将所述直播参数输入目标模型,得到所述目标模型输出的所述初始编码参数。
在一些可能的实施方式中,该目标模型的训练,可以为所述数据流控制装置执行的。该目标模型的训练方法与前述第一方面实施例相同,不做赘述。
在一些可能的实施方式中,所述数据流控制装置,用于基于样本数据对初始模型进行训练,得到所述目标模型;所述样本数据包括:历史多媒体数据流对应的历史直播参数、所述历史多媒体数据流对应的历史编码参数、所述历史多媒体数据流对应的历史质量评分。
在一些可能的实施方式中,所述数据流控制装置,用于基于所述硬件参数,确定候选编码相关参数;在所述候选编码相关参数与所述初始编码参数不同的情况下,基于所述候选编码相关参数对所述初始编码参数进行调整,得到所述目标编码参数。
在一些可能的实施方式中,所述数据流控制装置,用于基于所述硬件参数,确定候选编码相关参数;在所述候选编码相关参数与所述初始编码参数相同的情况下,将所述初始编码参数作为所述目标编码参数。
在一些可能的实施方式中,所述数据流控制装置,用于实时获取所述第一终端的当前网络参数;基于所述第一终端的当前网络参数与所述第一终端的历史网络参数,确定所述第一终端的网络变化状态;在基于所述第一终端的网络变化状态确定需要调整所述目标编码参数的情况下,确定调整后的目标编码参数;向所述第一终端发送所述调整后的目标编码参数;所述第一终端,用于接收所述调整后的目标编码参数。
在一些可能的实施方式中,所述数据流控制装置,用于基于所述直播参数以及所述硬件参数,确定所述第一终端对应的当前转码参数。
在一些可能的实施方式中,如图3所示,所述***还包括:
转码服务器301,用于接收所述第一终端对应的所述当前转码参数;所述当前转码参数用于对所述第一终端上传的编码后的多媒体数据流进行转码,得到N个码率中每个码率对应的多媒体数据流,N为大于或等于1的整数;
所述数据流控制装置201,用于发送所述第一终端对应的所述当前转码参数。
所述***还包括:边缘服务器302,用于接收N个码率中每个码率对应的多媒体数据流;
第二终端303,用于从所述N个码率中每个码率对应的多媒体数据流中,获取自身匹配的码率的多媒体数据流;
所述第一终端202,用于在采集到原始多媒体数据流的情况下,基于当前编码参数对所述原始多媒体数据流进行编码,得到编码后的多媒体数据流;将所述编码后的多媒体数据流发送至所述转码服务器;其中,所述当前编码参数为所述目标编码参数或所述调整后的目标编码参数;
所述转码服务器301,用于在接收到所述编码后的多媒体数据流的情况下,基于所述第一终端对应的所述当前转码参数对所述编码后的多媒体数据流进行转码,得到所述N个码率中每个码率对应的多媒体数据流;发送所述N个码率中每个码率对应的多媒体数据流。
应理解的是,前述第一终端可以是通过边缘服务器302,将编码后的多媒体数据流上传至转码服务器301。或者,前述第一终端可以是直接将编码后的多媒体数据流上传至转码服务器301。
结合图4对前述数据流控制***的架构进行一种示例性说明:
前述数据流控制装置可以为设置在一个服务器中的装置。示例性的,该设置有数据流控制装置的服务器,可以为图4中所示的中控服务器410。中控服务器410中可以设置目标模型。关于该目标模型的功能在前述实施例中已经详细说明,不做赘述。
第一终端420,可以是设置有摄像头、虚拟摄像头、麦克风等等的终端。所述第一终端的当前编码参数,可以是目标编码参数或调整后的目标编码参数。比如,在第一终端仅接收到所述目标编码参数的情况下,该第一终端可以将目标编码参数作为所述当前编码参数。在第一终端接收到调整后的目标编码参数的情况下,该第一终端可以将调整后的目标编码参数作为所述当前编码参数。应理解,该第一终端可以配置为在同一时刻仅保存一套或一组当前编码参数,比如在接收到调整后的目标编码参数后,将之前保存的目标编码参数删除,然后将调整后的目标编码参数作为当前编码参数。进一步地,在第一终端接收到下一个调整后的目标编码参数的情况下,将原来保存的调整后的目标编码参数删除,将当前接收到的调整后的目标编码参数作为当前编码参数进行保存。
第一终端420中可以设置图4中所示的编码模块,该编码模块可以用于对第一终端采集的原始多媒体数据流实时编码,并将编码后的多媒体数据流传输到直播源站。这里,所述原始多媒体数据流包含原始视频流和/或原始音频流;其中,采集原始多媒体数据流可以使用第一终端安装的摄像头采集,也可以对网络视频源进行转发。该第一终端中的编码模块可以实时和中控服务器410通信,将直播参数(开播事件、开播数据、直播类型、开播类型)、硬件参数传输到中控服务器410,从中控服务器410接收目标编码参数,并还可以根据中控服务器410下发的调整后的目标编码参数,实时动态调整当前编码参数。
需要指出的是,第一终端420的编码模块可以是通过CDN430中的边缘服务器,将编码后的多媒体数据流传输至直播源站。
如图4所示,播放端440的数量可以一个或多个,前述第二终端可以为一个或多个播放端440中的任意之一。由于针对每个播放端的处理均与第二终端相同,只是不同的播放端基于自身的当前网络状态确定匹配的码率可能不同,这里不做一一赘述。
第二终端用于基于当前网络状态获取自身匹配的码率,从CDN430中的边缘服务器获取自身匹配的码率的多媒体数据流。该第二终端,具体用于根据实际发生的卡顿事件来确定当前网络状态;若当前发生卡顿事件,则将分辨率档位自动下切一个档位,根据下切后的档位确定自身匹配的码率的多媒体数据流;若保持未发生卡顿事件,则可以上调一个档位,根据上调后的档位确定自身匹配的码率的多媒体数据流。
所述边缘服务器可以为CDN430中的一个节点。在CDN430中可以包括一个或多个边缘服务器,任意一个边缘服务器还可以称为边缘节点。
前述转码服务器还可以称为图4中所示的直播源站450,或者还可以称为其他名称,这里不对其进行穷举;在下文中如果没有特殊说明,直播源站与转码服务器含义是相同的。以转码服务器具体称为直播源站450为例来说,直播源站450中可以设置图4中所示的转码模块,直播源站450通过该转码模块可以接收编码后的多媒体数据流并实时转码,最终得到多码率的多媒体数据流,并发送至CDN430中的边缘服务器,以使得边缘服务器能够响应一个或多个播放端的播放需求。
该直播源站450通过该转码模块与中控服务器410实时通信,以接收中控服务器410发来的第一终端对应的当前转码参数。然后该直播源站450的转码模块基于该当前转码参数,对第一终端上传的编码后的多媒体数据流进行转码。
前述第一终端420、直播源站450,均可以通过websocket(网络套接字)长连接与中控服务器410建立连接。如此,中控服务器410可以通过消息的方式及时下发当前转码参数以及目标编码参数等信息至第一终端420、直播源站450,另外,由于websocket可以保持长连接心跳机制,因此可以保证第一终端420、直播源站450分别与中控服务器410之间的连通性。
以图4所示的架构为例,结合图5对数据流控制方法进行一种示例性说明:
S5011,第一终端420向中控服务器410发送参数信息;该参数信息可以包括直播参数和硬件参数。
S5012,中控服务器410基于所述直播参数,确定初始编码参数,基于所述硬件参数以及所述初始编码参数,确定目标编码参数;基于所述直播参数以及所述硬件参数,确定所述第一终端对应的当前转码参数。
S5013,中控服务器410向所述第一终端410发送所述目标编码参数。其中,所述目标编码参数用于对原始多媒体数据流进行编码得到编码后的多媒体数据流。
S5014,中控服务器410向直播源站450发送所述第一终端对应的所述当前转码参数。
上述S5013和S5014的处理可以不分先后顺序。
举例来说,当主播在第一终端上操作创建直播间时,可以将直播参数(比如开播事件、直播类型、设备类型等)上传到中控服务器410;中控服务器410将直播参数输入目标模型,以得到初始编码参数,该初始编码参数还可以称为最佳编码预测参数。同时,中控服务器410还可以得到目标模型输出的初始转码参数。
然后中控服务器410使用第一终端上报的硬件参数,得出所述第一终端的硬件评分,进而给出第一终端适合的候选编码相关参数。例如一些终端性能较好,支持HEVC,还有一些终端则支持HAVC;则可以基于终端的硬件参数来调整初始编码参数,最终确定目标编码参数。
完成上述处理后,第一终端可以获得目标编码参数;同时直播源站450可以得到当前转码参数。
S5021,第一终端410在采集到原始多媒体数据流的情况下,基于当前编码参数对所述原始多媒体数据流进行编码,得到编码后的多媒体数据流。
比如,需要主播使用有摄像头或者虚拟摄像头的第一终端410采集源音视频,对源音视频编码后,将编码后的音视频推流到直播源站450;其中,该音视频源即前述原始多媒体数据流;编码后的音视频即前述编码后的多媒体数据流。
S5022,第一终端410发送所述编码后的多媒体数据流至直播源站450。这里,虽然图5中未示意出,但是第一终端410可以是通过CDN中的边缘服务器向直播源站450发送该编码后的多媒体数据流。或者,也可以如图5中所示,该第一终端410直接向直播源站450发送该编码后的多媒体数据流。
S5023,直播源站450在接收到所述编码后的多媒体数据流的情况下,基于所述第一终端对应的所述当前转码参数对所述编码后的多媒体数据流进行转码,得到所述N个码率中每个码率对应的多媒体数据流。
S5024,直播源站450发送所述N个码率中每个码率对应的多媒体数据流至CDN430中的边缘服务器。
S5025,第二终端从CDN430中的边缘服务器获取自身匹配的码率的多媒体数据流。
在执行前述S5021~S5025的过程中,还可以执行以下处理:
S5031,中控服务器410实时获取所述第一终端的当前网络参数;
S5032,中控服务器410基于所述第一终端的当前网络参数与所述第一终端的历史网络参数,确定所述第一终端的网络变化状态;
S5033,中控服务器410在基于所述第一终端的网络变化状态确定需要调整所述目标编码参数的情况下,确定调整后的目标编码参数;
S5034,中控服务器410向所述第一终端420发送所述调整后的目标编码参数;
S5035,第一终端420接收所述调整后的目标编码参数,将该调整后的目标编码参数作为当前编码参数,然后继续执行前述S5021。
这是由于第一终端可能是在户外或者移动中的场景中,因此网络状态可能并不稳定,这时如果想保证播放流畅,就需要实时根据第一终端的网络状态,对目标编码参数(比如其中的目标编码码率和/或目标分辨率)进行动态的调优,中控服务器410实时获取所述第一终端的当前网络参数,以确定网络变化状态,根据网络变化状态对目标编码参数进行调整。
在又一些可能的实施方式中,在图2的基础上,如图6所示,所述***还包括:
边缘服务器601,用于接收N个码率中每个码率对应的多媒体数据流;
第二终端602,用于从所述N个码率中每个码率对应的多媒体数据流中,获取自身匹配的码率的多媒体数据流;
所述第一终端202,用于在采集到原始多媒体数据流的情况下,基于当前编码参数对所述原始多媒体数据流进行编码,得到编码后的多媒体数据流;将所述编码后的多媒体数据流发送至所述数据流控制装置;其中,所述当前编码参数为所述目标编码参数或所述调整后的目标编码参数;
所述数据流控制装置201,用于在接收到所述编码后的多媒体数据流的情况下,基于所述第一终端对应的所述当前转码参数对所述编码后的多媒体数据流进行转码,得到N个码率中每个码率对应的多媒体数据流;发送所述N个码率中每个码率对应的多媒体数据流。
应理解的是,前述第一终端可以是通过边缘服务器,将编码后的多媒体数据流上传至数据流控制装置201;或者可以直接将编码后的多媒体数据流上传至数据流控制装置201。
对本实施方式中图6所示的***架构的基础上,结合图7对数据流控制方法进行一种示例性说明:
S7011,第一终端向数据流控制装置发送参数信息;该参数信息可以包括直播参数和硬件参数。
S7012,数据流控制装置基于所述直播参数,确定初始编码参数,基于所述硬件参数以及所述初始编码参数,确定目标编码参数;基于所述直播参数以及所述硬件参数,确定所述第一终端对应的当前转码参数。
S7013,数据流控制装置向所述第一终端发送所述目标编码参数。其中,所述目标编码参数用于对原始多媒体数据流进行编码得到编码后的多媒体数据流。
S7021,第一终端在采集到原始多媒体数据流的情况下,基于当前编码参数对所述原始多媒体数据流进行编码,得到编码后的多媒体数据流。
S7022,第一终端发送所述编码后的多媒体数据流至数据流控制装置。
S7023,数据流控制装置在接收到所述编码后的多媒体数据流的情况下,基于所述第一终端对应的所述当前转码参数对所述编码后的多媒体数据流进行转码,得到所述N个码率中每个码率对应的多媒体数据流。
S7024,数据流控制装置发送所述N个码率中每个码率对应的多媒体数据流至边缘服务器。
S7025,第二终端从所述边缘服务器获取自身匹配的码率的多媒体数据流。
图7所示的场景中,数据流控制装置得到调整后的目标编码参数的方式以及第一终端将调整后的目标编码参数作为当前编码参数的处理,可以包括:
S7031,数据流控制装置实时获取所述第一终端的当前网络参数;
S7032,数据流控制装置基于所述第一终端的当前网络参数与所述第一终端的历史网络参数,确定所述第一终端的网络变化状态;
S7033,数据流控制装置在基于所述第一终端的网络变化状态确定需要调整所述目标编码参数的情况下,确定调整后的目标编码参数;
S7034,数据流控制装置向所述第一终端发送所述调整后的目标编码参数;
S7035,第一终端接收所述调整后的目标编码参数,将该调整后的目标编码参数作为当前编码参数,然后继续执行前述S7021。
结合相关技术对本实施例提供的方案的有益效果进行说明:在相关技术中,通常采用区间式的设置码率对编码参数和/或转码参数统一调优,比如720p的分辨率则码率为2.5M,1080p为5M。但是实际直播场景中,每一个终端都不同,比如每一个终端的网络环境、直播参数以及硬件参数都有不同,因此,采用统一调整的方式可能会造成带宽成本浪费,同时还可能无法保证质量。本实施例提供的方案则可以结合第一终端的直播参数和硬件参数,确定该第一终端所对应的目标编码参数;如此,可以针对不同的终端确定更加符合终端要求的编码参数,使得各个终端在进行直播时基于符合自身要求的编码参数进行多媒体数据流的编码处理,在使用合理的带宽同时保证终端上传的多媒体数据流的质量。
本公开第三方面提供一种数据流控制装置,如图8所示,包括:
接收模块801,用于接收第一终端发送的参数信息;其中,所述参数信息包括直播参数和硬件参数;
处理模块802,用于基于所述直播参数,确定初始编码参数;基于所述硬件参数以及所述初始编码参数,确定目标编码参数;
发送模块803,用于向所述第一终端发送所述目标编码参数;其中,所述目标编码参数用于对原始多媒体数据流进行编码得到编码后的多媒体数据流。
所述处理模块,用于将所述直播参数输入目标模型,得到所述目标模型输出的所述初始编码参数。
在图8的基础上,如图9所示,所述装置还包括:
训练模块901,用于基于样本数据对初始模型进行训练,得到所述目标模型;所述样本数据包括:历史多媒体数据流对应的历史直播参数、所述历史多媒体数据流对应的历史编码参数、所述历史多媒体数据流对应的历史质量评分。
所述处理模块,用于基于所述硬件参数,确定候选编码相关参数;在所述候选编码相关参数与所述初始编码参数不同的情况下,基于所述候选编码相关参数对所述初始编码参数进行调整,得到所述目标编码参数。
所述处理模块,用于基于所述硬件参数,确定候选编码相关参数;在所述候选编码相关参数与所述初始编码参数相同的情况下,将所述初始编码参数作为所述目标编码参数。
所述装置还包括:调整模块902,用于基于所述第一终端的当前网络参数与所述第一终端的历史网络参数,确定所述第一终端的网络变化状态;在基于所述第一终端的网络变化状态确定需要调整所述目标编码参数的情况下,确定调整后的目标编码参数;
所述接收模块801,用于实时获取所述第一终端的当前网络参数;
所述发送模块803,用于向所述第一终端发送所述调整后的目标编码参数。
所述处理模块802,用于基于所述直播参数以及所述硬件参数,确定所述第一终端对应的当前转码参数。
所述发送模块,用于向转码服务器发送所述第一终端对应的所述当前转码参数;其中,所述当前转码参数用于所述转码服务器对所述第一终端上传的编码后的多媒体数据流进行转码,得到N个码率中每个码率的多媒体数据流;N为大于或等于1的整数。
所述装置还包括:转码模块903,用于在接收到所述第一终端上传的编码后的多媒体数据流的情况下,基于所述第一终端对应的所述当前转码参数,对所述编码后的多媒体数据流进行转码,得到N个码率中每个码率的多媒体数据流;N为大于或等于1的整数;
所述发送模块803,用于将所述N个码率中每个码率的多媒体数据流发送至边缘服务器。
本实施例提供的所述数据流控制装置可以设置在服务器中。关于本实施例的装置中各个模块的具体处理与前述数据流控制方法中相同,这里不进行重复说明。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图10示出了可以用来实施本公开的实施例的示例电子设备1000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图10所示,电子设备1000包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM 1003中,还可存储电子设备1000操作所需的各种程序和数据。计算单元1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
电子设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许电子设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理。例如,在一些实施例中,上文所描述的各个方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1002和/或通信单元1009而被载入和/或安装到电子设备1000上。当计算机程序加载到RAM 1003并由计算单元1001执行时,可以执行上文所描述的各个方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行上文所描述的各个方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式***的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (31)

1.一种数据流控制方法,包括:
接收第一终端发送的参数信息;其中,所述参数信息包括直播参数和硬件参数;
基于所述直播参数,确定初始编码参数;
基于所述硬件参数以及所述初始编码参数,确定目标编码参数;
向所述第一终端发送所述目标编码参数;其中,所述目标编码参数用于对原始多媒体数据流进行编码得到编码后的多媒体数据流。
2.根据权利要求1所述的方法,其中,所述基于所述直播参数,确定初始编码参数,包括:
将所述直播参数输入目标模型,得到所述目标模型输出的所述初始编码参数。
3.根据权利要求2所述的方法,还包括:
基于样本数据对初始模型进行训练,得到所述目标模型;所述样本数据包括:历史多媒体数据流对应的历史直播参数、所述历史多媒体数据流对应的历史编码参数、所述历史多媒体数据流对应的历史质量评分。
4.根据权利要求1所述的方法,其中,所述基于所述硬件参数以及所述初始编码参数,确定目标编码参数,包括:
基于所述硬件参数,确定候选编码相关参数;
在所述候选编码相关参数与所述初始编码参数不同的情况下,基于所述候选编码相关参数对所述初始编码参数进行调整,得到所述目标编码参数。
5.根据权利要求1所述的方法,其中,所述基于所述硬件参数以及所述初始编码参数,确定目标编码参数,包括:
基于所述硬件参数,确定候选编码相关参数;
在所述候选编码相关参数与所述初始编码参数相同的情况下,将所述初始编码参数作为所述目标编码参数。
6.根据权利要求1-5任一项所述的方法,其中,所述向所述第一终端发送所述目标编码参数之后,所述方法还包括:
实时获取所述第一终端的当前网络参数;
基于所述第一终端的当前网络参数与所述第一终端的历史网络参数,确定所述第一终端的网络变化状态;
在基于所述第一终端的网络变化状态确定需要调整所述目标编码参数的情况下,确定调整后的目标编码参数;
向所述第一终端发送所述调整后的目标编码参数。
7.根据权利要求6所述的方法,还包括:
基于所述直播参数以及所述硬件参数,确定所述第一终端对应的当前转码参数。
8.根据权利要求7所述的方法,还包括:
向转码服务器发送所述第一终端对应的所述当前转码参数;其中,所述第一终端对应的所述当前转码参数用于所述转码服务器对所述第一终端上传的编码后的多媒体数据流进行转码,得到N个码率中每个码率的多媒体数据流;N为大于或等于1的整数。
9.根据权利要求7所述的方法,还包括:
在接收到所述第一终端上传的编码后的多媒体数据流的情况下,基于所述第一终端对应的所述当前转码参数,对所述编码后的多媒体数据流进行转码,得到N个码率中每个码率的多媒体数据流;N为大于或等于1的整数;
将所述N个码率中每个码率的多媒体数据流发送至边缘服务器。
10.一种数据流控制***,包括:
数据流控制装置,用于接收第一终端发送的参数信息;其中,所述参数信息包括直播参数和硬件参数;基于所述直播参数,确定初始编码参数;基于所述硬件参数以及所述初始编码参数,确定目标编码参数;向所述第一终端发送所述目标编码参数;其中,所述目标编码参数用于对原始多媒体数据流进行编码得到编码后的多媒体数据流;
第一终端,用于发送所述参数信息;以及接收所述目标编码参数。
11.根据权利要求10所述的***,其中,所述数据流控制装置,用于将所述直播参数输入目标模型,得到所述目标模型输出的所述初始编码参数。
12.根据权利要求11所述的***,其中,所述数据流控制装置,用于基于样本数据对初始模型进行训练,得到所述目标模型;所述样本数据包括:历史多媒体数据流对应的历史直播参数、所述历史多媒体数据流对应的历史编码参数、所述历史多媒体数据流对应的历史质量评分。
13.根据权利要求10所述的***,其中,所述数据流控制装置,用于基于所述硬件参数,确定候选编码相关参数;在所述候选编码相关参数与所述初始编码参数不同的情况下,基于所述候选编码相关参数对所述初始编码参数进行调整,得到所述目标编码参数。
14.根据权利要求10所述的***,其中,所述数据流控制装置,用于基于所述硬件参数,确定候选编码相关参数;在所述候选编码相关参数与所述初始编码参数相同的情况下,将所述初始编码参数作为所述目标编码参数。
15.根据权利要求10-14任一项所述的***,其中,所述数据流控制装置,用于实时获取所述第一终端的当前网络参数;基于所述第一终端的当前网络参数与所述第一终端的历史网络参数,确定所述第一终端的网络变化状态;在基于所述第一终端的网络变化状态确定需要调整所述目标编码参数的情况下,确定调整后的目标编码参数;向所述第一终端发送所述调整后的目标编码参数;
所述第一终端,用于接收所述调整后的目标编码参数。
16.根据权利要求15所述的***,其中,所述数据流控制装置,用于基于所述直播参数以及所述硬件参数,确定所述第一终端对应的当前转码参数。
17.根据权利要求16所述的***,其中,所述***还包括:
转码服务器,用于接收所述第一终端对应的所述当前转码参数;所述第一终端对应的当前转码参数用于对所述第一终端上传的编码后的多媒体数据流进行转码,得到N个码率中每个码率对应的多媒体数据流,N为大于或等于1的整数;
所述数据流控制装置,用于发送所述第一终端对应的所述当前转码参数。
18.根据权利要求17所述的***,其中,所述***还包括:
边缘服务器,用于接收N个码率中每个码率对应的多媒体数据流;
第二终端,用于从所述N个码率中每个码率对应的多媒体数据流中,获取自身匹配的码率的多媒体数据流;
所述第一终端,用于在采集到原始多媒体数据流的情况下,基于当前编码参数对所述原始多媒体数据流进行编码,得到编码后的多媒体数据流;将所述编码后的多媒体数据流发送至所述转码服务器;其中,所述当前编码参数为所述目标编码参数或所述调整后的目标编码参数;
所述转码服务器,用于在接收到所述编码后的多媒体数据流的情况下,基于所述第一终端对应的所述当前转码参数对所述编码后的多媒体数据流进行转码,得到所述N个码率中每个码率对应的多媒体数据流;发送所述N个码率中每个码率对应的多媒体数据流。
19.根据权利要求16所述的***,其中,所述***还包括:
边缘服务器,用于接收N个码率中每个码率对应的多媒体数据流;
第二终端,用于从所述N个码率中每个码率对应的多媒体数据流中,获取自身匹配的码率的多媒体数据流;
所述第一终端,用于在采集到原始多媒体数据流的情况下,基于当前编码参数对所述原始多媒体数据流进行编码,得到编码后的多媒体数据流;将所述编码后的多媒体数据流发送至所述数据流控制装置;其中,所述当前编码参数为所述目标编码参数或所述调整后的目标编码参数;
所述数据流控制装置,用于在接收到所述编码后的多媒体数据流的情况下,基于所述第一终端对应的所述当前转码参数对所述编码后的多媒体数据流进行转码,得到N个码率中每个码率对应的多媒体数据流;发送所述N个码率中每个码率对应的多媒体数据流。
20.一种数据流控制装置,包括:
接收模块,用于接收第一终端发送的参数信息;其中,所述参数信息包括直播参数和硬件参数;
处理模块,用于基于所述直播参数,确定初始编码参数;基于所述硬件参数以及所述初始编码参数,确定目标编码参数;
发送模块,用于向所述第一终端发送所述目标编码参数;其中,所述目标编码参数用于对原始多媒体数据流进行编码得到编码后的多媒体数据流。
21.根据权利要求20所述的装置,其中,所述处理模块,用于将所述直播参数输入目标模型,得到所述目标模型输出的所述初始编码参数。
22.根据权利要求21所述的装置,还包括:
训练模块,用于基于样本数据对初始模型进行训练,得到所述目标模型;所述样本数据包括:历史多媒体数据流对应的历史直播参数、所述历史多媒体数据流对应的历史编码参数、所述历史多媒体数据流对应的历史质量评分。
23.根据权利要求20所述的装置,其中,所述处理模块,用于基于所述硬件参数,确定候选编码相关参数;在所述候选编码相关参数与所述初始编码参数不同的情况下,基于所述候选编码相关参数对所述初始编码参数进行调整,得到所述目标编码参数。
24.根据权利要求20所述的装置,其中,所述处理模块,用于基于所述硬件参数,确定候选编码相关参数;在所述候选编码相关参数与所述初始编码参数相同的情况下,将所述初始编码参数作为所述目标编码参数。
25.根据权利要求20-24任一项所述的装置,还包括:
调整模块,用于基于所述第一终端的当前网络参数与所述第一终端的历史网络参数,确定所述第一终端的网络变化状态;在基于所述第一终端的网络变化状态确定需要调整所述目标编码参数的情况下,确定调整后的目标编码参数;
所述接收模块,用于实时获取所述第一终端的当前网络参数;
所述发送模块,用于向所述第一终端发送所述调整后的目标编码参数。
26.根据权利要求25所述的装置,其中,所述处理模块,用于基于所述直播参数以及所述硬件参数,确定所述第一终端对应的当前转码参数。
27.根据权利要求26所述的装置,其中,所述发送模块,用于向转码服务器发送所述第一终端对应的所述当前转码参数;其中,所述第一终端对应的所述当前转码参数用于所述转码服务器对所述第一终端上传的编码后的多媒体数据流进行转码,得到N个码率中每个码率的多媒体数据流;N为大于或等于1的整数。
28.根据权利要求26所述的装置,还包括:
转码模块,用于在接收到所述第一终端上传的编码后的多媒体数据流的情况下,基于所述第一终端对应的所述当前转码参数,对所述编码后的多媒体数据流进行转码,得到N个码率中每个码率的多媒体数据流;N为大于或等于1的整数;
所述发送模块,用于将所述N个码率中每个码率的多媒体数据流发送至边缘服务器。
29.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的方法。
30.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-9中任一项所述的方法。
31.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-9中任一项所述的方法。
CN202211413479.2A 2022-11-11 2022-11-11 数据流控制方法、***、装置、电子设备及存储介质 Pending CN115767146A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211413479.2A CN115767146A (zh) 2022-11-11 2022-11-11 数据流控制方法、***、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211413479.2A CN115767146A (zh) 2022-11-11 2022-11-11 数据流控制方法、***、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115767146A true CN115767146A (zh) 2023-03-07

Family

ID=85369681

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211413479.2A Pending CN115767146A (zh) 2022-11-11 2022-11-11 数据流控制方法、***、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115767146A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116170379A (zh) * 2023-04-25 2023-05-26 腾讯科技(深圳)有限公司 一种传输控制方法、装置、设备及计算机可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116170379A (zh) * 2023-04-25 2023-05-26 腾讯科技(深圳)有限公司 一种传输控制方法、装置、设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN110620892B (zh) 视频通信中的视频标注技术
CN111277826B (zh) 一种视频数据处理方法、装置及存储介质
US11546596B2 (en) Dynamic codec adaptation
US11363298B2 (en) Video processing apparatus and processing method of video stream
CN107529069A (zh) 一种视频流传输方法及装置
CN113747194B (zh) 远程视频传输方法、传输装置、存储介质及电子设备
CN103999471A (zh) 由视频描述长度引导的视频编码的速率-失真-复杂性优化
CN113115067A (zh) 直播***、视频处理方法及相关装置
TW201021576A (en) System and method for dynamic video encoding in multimedia streaming
KR20170135069A (ko) QoE 분석 기반 비디오 프레임 관리 방법 및 그 장치
US9232244B2 (en) Efficient frame forwarding in large scale real-time screen content sharing meetings
US20230050250A1 (en) Method and apparatus for encoding video, and storage medium
CN113037697A (zh) 一种视频帧处理方法、装置和电子设备及可读存储介质
CN112929712A (zh) 视频码率调整方法和装置
WO2023010992A1 (zh) 视频编码方法、装置、计算机可读介质及电子设备
CN112866746A (zh) 一种多路串流云游戏控制方法、装置、设备及存储介质
CN114363649A (zh) 视频处理方法、装置、设备及存储介质
CN115767146A (zh) 数据流控制方法、***、装置、电子设备及存储介质
WO2020244328A1 (zh) 图像处理方法及装置
CN113784118A (zh) 视频质量评估方法及装置、电子设备和存储介质
WO2021092821A1 (en) Adaptively encoding video frames using content and network analysis
WO2024017106A1 (zh) 一种码表更新方法、装置、设备及存储介质
Yang et al. Sur-driven video coding rate control for jointly optimizing perceptual quality and buffer control
CN114827617B (zh) 一种基于感知模型的视频编解码方法及***
US11582462B1 (en) Constraint-modified selection of video encoding configurations

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