一种视频数据处理方法、装置及存储介质与流程

专利2022-06-29  149


本申请涉及互联网技术领域,尤其涉及一种视频数据处理方法、装置及存储介质。



背景技术:

目前,对于一些由帧序列构成的视频数据中,可以通过同一编码器对这些视频数据进行编码处理。比如,对于具有不同视频内容的视频数据a和视频数据b而言,通常会采用默认的编码码率对这两个视频数据进行视频编码,以至于视频编码后所得到的视频数据的视频质量之间会存在较大的波动,进而难以确保视频编码的准确性。

另外,通过对具有不同数据内容的视频数据采用同一编码码率进行无差别的视频编码,将会造成不同程度的编码资源的浪费现象。比如,对一些视频内容比较单一的视频数据(例如,视频数据a)而言,可能会因为编码后的视频数据a的视频质量过高导致编码资源的浪费。

申请内容

本申请实施例提供一种视频数据处理方法、装置及存储介质,可以提高视频编码的准确性,并可以减少编码资源的浪费现象。

本申请实施例一方面提供了一种视频数据处理方法,方法包括:

获取与视频源相关联的待编码视频序列,获取与待编码视频序列相关联的视频质量标准参数;

根据视频质量标准参数对待编码视频序列进行预编码处理,得到预编码视频序列,根据预编码视频序列确定待编码视频序列对应的视频特征;

根据视频质量标准参数以及视频特征,预测与待编码视频序列相关联的编码码率;

根据编码码率对待编码视频序列进行编码处理,得到与视频源相关联的编码视频序列。

其中,获取与视频源相关联的待编码视频序列,获取与待编码视频序列相关联的视频质量标准参数,包括:

接收业务服务器分发的视频源中的第一视频序列;第一视频序列为业务服务器对视频源进行切片处理后所确定的;

根据视频源的缩放参数信息以及第一视频序列,确定与视频源相关联的待编码视频序列;

将业务服务器为第一视频序列所配置的视频质量参数,作为与待编码视频序列相关联的视频质量标准参数。

其中,根据视频源的缩放参数信息以及第一视频序列,确定与视频源相关联的待编码视频序列,包括:

获取与视频源的分辨率相关联的缩放参数信息;

根据缩放参数信息对第一视频序列的分辨率进行缩放处理,将缩放处理后的第一视频序列确定为第二视频序列;第一视频序列的分辨率是由视频源的分辨率所确定的;

根据第二视频序列以及第二视频序列的分辨率,确定待编码视频序列。

其中,根据视频质量标准参数对待编码视频序列进行预编码处理,得到预编码视频序列,根据预编码视频序列确定待编码视频序列对应的视频特征,包括:

根据视频质量标准参数,获取用于对待编码视频序列进行预编码的初始编码器;

根据初始编码器对待编码视频序列进行预编码处理,得到预编码视序列;预编码视频序列中包含关键视频帧和预测视频帧;

根据关键视频帧、预测视频帧、预编码视频序列的分辨率以及预编码视频序列的码率,确定预编码视频序列的编码信息;

将编码信息确定为待编码视频序列对应的视频特征。

其中,预测视频帧中包含前向预测帧;

根据关键视频帧、预测视频帧、预编码视频序列的分辨率以及预编码视频序列的码率,确定预编码视频序列的编码信息,包括:

获取对前向预测帧进行帧间压缩时所选取的关键视频帧,将选取到的关键视频帧确定为前向预测帧对应的参考视频帧;

将参考视频帧的总选取数量确定为第一数量,将关键视频帧的总数量确定为第二数量,将前向预测帧的总数量确定为第三数量;

根据关键视频帧对应的数据容量、第二数量,确定关键视频帧的第一平均数据容量,根据前向预测帧对应的数据容量、第三数量,确定前向预测帧的第二平均数据容量;

从关键视频帧对应的数据容量中获取最大数据容量,将第一平均数据容量与最大数据容量之间的比值,作为预编码视频序列的空域复杂度,将第二平均数据容量与第一平均数据容量之间的比值,确定为预编码视频序列的时域复杂度;

将第一数量、第二数量、第三数量、空域复杂度、时域复杂度以及预编码码视频序列的分辨率和预编码码视频序列的码率,确定为预编码视频序列的编码信息。

其中,根据视频质量标准参数以及视频特征,预测与待编码视频序列相关联的编码码率,包括:

获取视频质量标准参数对应的目标质量类型,在与多个质量类型相关联的预测模型库中,将与目标质量类型相匹配的预测模型作为目标预测模型;

将视频特征输入目标预测模型,输出视频特征分别与目标预测模型中的多个参考视频特征之间的匹配度;

在匹配度中将与视频特征具有最高匹配度的参考视频特征作为目标参考视频特征,将与目标参考视频特征相关联的质量标签信息所对应的样本码率信息,作为与待编码视频序列相关联的编码码率。

其中,方法还包括:

获取与多个业务场景相关联的n个样本视频序列,将n个样本视频序列的样本视频特征作为参考视频特征,获取与n个样本视频序列相关联的多个质量类型;n为正整数;一个样本视频特征为对一个样本视频序列进行预编码处理后所确定的;

从多个质量类型中获取目标质量类型,获取与目标质量类型相关联的样本码率参数;样本码率参数包含k个样本码率信息;k为正整数;

根据k个样本码率参数对n个样本视频序列中的每个样本视频序列进行遍历编码,得到每个样本视频序列在k个样本码率参数下的质量评估值;一个质量评估值为一个样本视频序列在一个样本码率参数下所确定的;

将得到的所有质量评估值作为与目标质量类型相关联的初始模型的质量标签信息,根据质量标签信息和n个参考视频特征,对初始模型进行训练,根据训练结果确定与目标质量类型相匹配的预测模型。

其中,方法由分布式服务器集群中的第一服务器执行;业务服务器为分布式服务器集群中的第二服务器;

方法还包括:

将编码视频序列作为与缩放参数信息相关联的编码码流返回给第二服务器,以使第二服务器在接收到分布式服务器集群中的所有第一服务器针对同一缩放参数信息所返回的编码码流时,根据与切片处理后的视频源相关联的切片标识信息对接收到的所有编码码流进行合并处理。

其中,获取与视频源相关联的待编码视频序列,获取与待编码视频序列相关联的视频质量标准参数,包括:

接收用户终端采集并上传的初始视频数据,将接收到的初始视频数据确定为视频源;

从视频源中获取关键视频帧,根据关键视频帧和与关键视频帧相关联的缓存序列长度,在视频源中确定用于进行场景检测的缓存视频序列,根据缓存视频序列和视频源的缩放参数信息,确定用于进行预编码的待编码视频序列;

基于用户终端的配置信息,为待编码视频序列配置视频质量标准参数。

其中,视频源包含与采集周期相关联的m个视频帧;m为正整数;

从视频源中获取关键视频帧,根据关键视频帧和与关键视频帧相关联的缓存序列长度,在视频源中确定用于进行场景检测的缓存视频序列,根据缓存视频序列和视频源的缩放参数信息,确定用于进行预编码的待编码视频序列,包括:

在视频源的m个视频帧中,将首个视频帧确定为第一关键视频帧;

根据第一关键视频帧和与第一关键视频帧相关联的缓存序列长度,从m个视频帧中确定用于进行场景检测的缓存视频序列;

在缓存视频序列中将除第一关键视频帧之外的视频帧确定为待检测视频帧bi,根据第一关键视频帧对缓存视频序列中的待检测视频帧bi进行场景切变检测;i为大于1且小于m的正整数;

在检测到第一关键视频帧与待检测视频帧bi之间的视频内容变化度大于场景切变阈值时,将待检测视频帧bi确定为第二关键视频帧;

将第一关键视频帧与第二关键视频帧之间的视频序列作为初始视频序列,根据视频源的缩放参数信息对初始视频序列进行缩放处理,将缩放处理后的初始视频序列确定为用于进行预编码的待编码视频序列。

其中,方法还包括:

在缓存视频序列中删除初始视频序列,得到过渡视频序列;过渡视频序列的首个视频帧为第二关键视频帧;

根据过渡视频序列、缓存序列长度,从视频源中获取待补齐视频序列,根据待补齐视频序列对过渡视频序列进行补齐处理;补齐处理后的过渡视频序列的序列长度与缓存序列长度相同;

在补齐处理后的过渡视频序列中将除第二关键视频帧之外的视频帧确定为待检测视频帧dj,根据第二关键视频帧对补齐处理后的过渡视频序列中的待检测视频帧dj进行场景切变检测;j为大于1且小于m的正整数。

其中,用户终端为虚拟直播间中的主播终端,初始视频数据为主播终端所采集到的直播视频数据;

方法还包括:

在获取到虚拟直播间中的观众终端的拉流请求时,获取拉流请求中的播放分辨率;

在编码视频序列中查找与播放分别率相匹配的缩放参数信息所对应的目标编码视频序列,将目标编码视频序列作为编码码流推送给观众终端,以使观众终端对编码码流进行解码处理后得到目标编码视频序列。

本申请实施例一方面提供了一种视频数据处理装置,装置包括:

质量参数获取模块,用于获取与视频源相关联的待编码视频序列,获取与待编码视频序列相关联的视频质量标准参数;

预编码模块,用于根据视频质量标准参数对待编码视频序列进行预编码处理,得到预编码视频序列,根据预编码视频序列确定待编码视频序列对应的视频特征;

码率预测模块,用于根据视频质量标准参数以及视频特征,预测与待编码视频序列相关联的编码码率;

视频编码模块,用于根据编码码率对待编码视频序列进行编码处理,得到与视频源相关联的编码视频序列。

其中,质量参数获取模块包括:

第一序列接收单元,用于接收业务服务器分发的视频源中的第一视频序列;第一视频序列为业务服务器对视频源进行切片处理后所确定的;

待编码序列确定单元,用于根据视频源的缩放参数信息以及第一视频序列,确定与视频源相关联的待编码视频序列;

质量参数确定单元,用于将业务服务器为第一视频序列所配置的视频质量参数,作为与待编码视频序列相关联的视频质量标准参数。

其中,待编码序列确定单元包括:

缩放参数获取子单元,用于获取与视频源的分辨率相关联的缩放参数信息;

缩放处理子单元,用于根据缩放参数信息对第一视频序列的分辨率进行缩放处理,将缩放处理后的第一视频序列确定为第二视频序列;第一视频序列的分辨率是由视频源的分辨率所确定的;

序列确定子单元,用于根据第二视频序列以及第二视频序列的分辨率,确定待编码视频序列。

其中,预编码模块包括:

编码器确定单元,用于根据视频质量标准参数,获取用于对待编码视频序列进行预编码的初始编码器;

预编码序列确定单元,用于根据初始编码器对待编码视频序列进行预编码处理,得到预编码视序列;预编码视频序列中包含关键视频帧和预测视频帧;

编码信息确定单元,用于根据关键视频帧、预测视频帧、预编码视频序列的分辨率以及预编码视频序列的码率,确定预编码视频序列的编码信息;

视频特征确定单元,用于将编码信息确定为待编码视频序列对应的视频特征。

其中,预测视频帧中包含前向预测帧;

编码信息确定单元包括:

参考帧确定子单元,用于获取对前向预测帧进行帧间压缩时所选取的关键视频帧,将选取到的关键视频帧确定为前向预测帧对应的参考视频帧;

数量确定子单元,用于将参考视频帧的总选取数量确定为第一数量,将关键视频帧的总数量确定为第二数量,将前向预测帧的总数量确定为第三数量;

容量确定子单元,用于根据关键视频帧对应的数据容量、第二数量,确定关键视频帧的第一平均数据容量,根据前向预测帧对应的数据容量、第三数量,确定前向预测帧的第二平均数据容量;

复杂度确定子单元,用于从关键视频帧对应的数据容量中获取最大数据容量,将第一平均数据容量与最大数据容量之间的比值,作为预编码视频序列的空域复杂度,将第二平均数据容量与第一平均数据容量之间的比值,确定为预编码视频序列的时域复杂度;

信息确定子单元,用于将第一数量、第二数量、第三数量、空域复杂度、时域复杂度以及预编码码视频序列的分辨率和预编码码视频序列的码率,确定为预编码视频序列的编码信息。

其中,码率预测模块包括:

目标模型确定单元,用于获取视频质量标准参数对应的目标质量类型,在与多个质量类型相关联的预测模型库中,将与目标质量类型相匹配的预测模型作为目标预测模型;

匹配度确定单元,用于将视频特征输入目标预测模型,输出视频特征分别与目标预测模型中的多个参考视频特征之间的匹配度;

编码码率确定单元,用于在匹配度中将与视频特征具有最高匹配度的参考视频特征作为目标参考视频特征,将与目标参考视频特征相关联的质量标签信息所对应的样本码率信息,作为与待编码视频序列相关联的编码码率。

其中,码率预测模块还包括:

样本获取单元,用于获取与多个业务场景相关联的n个样本视频序列,将n个样本视频序列的样本视频特征作为参考视频特征,获取与n个样本视频序列相关联的多个质量类型;n为正整数;一个样本视频特征为对一个样本视频序列进行预编码处理后所确定的;

码率参数获取单元,用于从多个质量类型中获取目标质量类型,获取与目标质量类型相关联的样本码率参数;样本码率参数包含k个样本码率信息;k为正整数;

遍历编码单元,用于根据k个样本码率参数对n个样本视频序列中的每个样本视频序列进行遍历编码,得到每个样本视频序列在k个样本码率参数下的质量评估值;一个质量评估值为一个样本视频序列在一个样本码率参数下所确定的;

模型训练单元,用于将得到的所有质量评估值作为与目标质量类型相关联的初始模型的质量标签信息,根据质量标签信息和n个参考视频特征,对初始模型进行训练,根据训练结果确定与目标质量类型相匹配的预测模型。

其中,装置运行于分布式服务器集群中的第一服务器;业务服务器为分布式服务器集群中的第二服务器;

装置还包括:

编码码流返回模块,用于将编码视频序列作为与缩放参数信息相关联的编码码流返回给第二服务器,以使第二服务器在接收到分布式服务器集群中的所有第一服务器针对同一缩放参数信息所返回的编码码流时,根据与切片处理后的视频源相关联的切片标识信息对接收到的所有编码码流进行合并处理。

其中,质量参数获取模块包括:

视频源确定单元,用于接收用户终端采集并上传的初始视频数据,将接收到的初始视频数据确定为视频源;

缓存序列确定单元,用于从视频源中获取关键视频帧,根据关键视频帧和与关键视频帧相关联的缓存序列长度,在视频源中确定用于进行场景检测的缓存视频序列,根据缓存视频序列和视频源的缩放参数信息,确定用于进行预编码的待编码视频序列;

质量参数配置单元,用于基于用户终端的配置信息,为待编码视频序列配置视频质量标准参数。

其中,视频源包含与采集周期相关联的m个视频帧;m为正整数;

缓存序列确定单元包括:

第一确定子单元,用于在视频源的m个视频帧中,将首个视频帧确定为第一关键视频帧;

缓存序列确定子单元,用于根据第一关键视频帧和与第一关键视频帧相关联的缓存序列长度,从m个视频帧中确定用于进行场景检测的缓存视频序列;

场景检测确定子单元,用于在缓存视频序列中将除第一关键视频帧之外的视频帧确定为待检测视频帧bi,根据第一关键视频帧对缓存视频序列中的待检测视频帧bi进行场景切变检测;i为大于1且小于m的正整数;

第二确定子单元,用于在检测到第一关键视频帧与待检测视频帧bi之间的视频内容变化度大于场景切变阈值时,将待检测视频帧bi确定为第二关键视频帧;

序列确定子单元,用于将第一关键视频帧与第二关键视频帧之间的视频序列作为初始视频序列,根据视频源的缩放参数信息对初始视频序列进行缩放处理,将缩放处理后的初始视频序列确定为用于进行预编码的待编码视频序列。

其中,缓存序列确定单元还包括:

序列删除子单元,用于在缓存视频序列中删除初始视频序列,得到过渡视频序列;过渡视频序列的首个视频帧为第二关键视频帧;

序列补齐子单元,用于根据过渡视频序列、缓存序列长度,从视频源中获取待补齐视频序列,根据待补齐视频序列对过渡视频序列进行补齐处理;补齐处理后的过渡视频序列的序列长度与缓存序列长度相同;

切变检测子单元,还用于在补齐处理后的过渡视频序列中将除第二关键视频帧之外的视频帧确定为待检测视频帧dj,根据第二关键视频帧对补齐处理后的过渡视频序列中的待检测视频帧dj进行场景切变检测;j为大于1且小于m的正整数。

其中,用户终端为虚拟直播间中的主播终端,初始视频数据为主播终端所采集到的直播视频数据;

装置还包括:

拉流请求获取模块,用于在获取到虚拟直播间中的观众终端的拉流请求时,获取拉流请求中的播放分辨率;

码流推送模块,用于在编码视频序列中查找与播放分别率相匹配的缩放参数信息所对应的目标编码视频序列,将目标编码视频序列作为编码码流推送给观众终端,以使观众终端对编码码流进行解码处理后得到目标编码视频序列。

本申请实施例一方面提供了一种计算机设备,计算机设备包括:处理器、存储器以及网络接口;

处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,存储器用于存储程序代码,处理器用于调用程序代码,以执行如本申请实施例一方面中的方法。

本申请实施例一方面提供了一种计算机存储介质,计算机存储介质存储有计算机程序,计算机程序包括程序指令,当处理器执行程序指令时执行如本申请实施例一方面中的方法。

本申请实施例在获取到与视频源相关联的待编码视频序列时,可以获取与待编码视频序列相关联的视频质量标准参数;其中,本申请实施例可以将视频源的每个视频片段在相应缩放参数信息下的视频序列统称为待编码视频序列。进一步的,根据视频质量标准参数对待编码视频序列进行预编码处理,得到预编码视频序列,根据预编码视频序列确定待编码视频序列对应的视频特征;进一步的,根据视频质量标准参数以及视频特征,预测与待编码视频序列相关联的编码码率;进一步的,根据编码码率对待编码视频序列进行编码处理,得到与视频源相关联的编码视频序列。由此可见,对视频源的每个视频片段中的视频内容进行一次分析,可以快速提取出与每个视频片段(即待编码视频序列)相关的视频特征,从而可以在设定好目标质量的情况下,通过预测模型准确预测出用于对每个视频片段分别进行编码的编码码率,进而可以在设定质量指标(即设定好的视频质量标准参数)的情况下,通过预测得到的不同视频片段的编码码率,可以在特定的视频质量下提高视频编码的准确性,并可以减少编码资源的浪费。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种网络架构的结构示意图;

图2是本申请实施例提供的一种进行分布式转码的场景示意图;

图3是本申请实施例提供的一种视频数据处理方法的流程示意图;

图4是本申请实施例提供的一种在视频点播场景下获取待编码视频序列的场景示意图;

图5是本申请实施例提供的一种用于对不同视频片段进行编码的编码码率的场景示意图;

图6是本申请实施例提供的对不同视频片段进行编码所得到的视频质量的场景示意图;

图7是本申请实施例提供的一种视频数据处理方法的示意图;

图8是本申请实施例提供的一种在视频直播场景下获取待编码视频序列的场景示意图;

图9是本申请实施例提供的一种获取编码码流的整体流程示意图;

图10是本申请实施例提供的一种视频数据处理装置的结构示意图;

图11是本申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参见图1,是本申请实施例提供的一种网络架构的结构示意图。如图1所示,网络架构可以包括服务器集群和用户终端集群,用户终端集群可以包括多个用户终端,如图1所示,具体可以包括用户终端3000a、用户终端3000b、用户终端3000c、…、用户终端3000n;如图1所示,用户终端3000a、用户终端3000b、用户终端3000c、…、用户终端3000n可以分别与服务器集群中的任意一服务器进行网络连接,以便于每个用户终端可以通过该网络连接与相应服务器之间进行数据交互。

为便于理解,本申请实施例可以在图1所示的多个用户终端中选择一个用户终端作为目标用户终端,该目标用户终端可以包括:智能手机、平板电脑、笔记本电脑、智能电视、智能手表、桌上型电脑等携带视频数据采集功能(例如,视频数据录制功能等)的智能终端。例如,本申请实施例可以将图1所示的用户终端3000a称之为目标用户终端,该目标用户终端中可以集成有具备视频数据录制功能的目标客户端。其中,应当理解,集成在该目标用户终端中的目标客户端可以包括即时通讯客户端(例如,微信客户端、qq客户端)、多媒体客户端(例如,视频播放客户端)、娱乐客户端(例如,游戏客户端)、虚拟房间客户端(例如,直播客户端)等具有帧序列(例如,视频数据)加载和录制功能的客户端。

其中,可以理解的是,本申请实施例可以将该目标用户终端通过浏览器页面或者目标客户端所采集到的视频数据统称为初始视频数据(例如,上述初始视频数据a),并可以进一步通过上述网络连接将这个初始视频数据a上传给上述服务器集群中的任意一个服务器。其中,本申请实施例可以将该服务器集群中的任意一个服务器统称为业务服务器。为便于理解,本申请实施例以与该目标用户终端相关联的业务服务器为图1所示的服务器20d为例,以阐述在该服务器20d中对不同业务场景下的视频源进行多路转码的具体过程。

其中,可以理解的是,在上述视频点播场景下,由该目标用户终端上传至业务服务器的初始视频数据可以为点播视频数据(即初始视频数据可以为一段完整的视频数据)。可选的,在上述视频直播场景下,由该目标用户终端上传至业务服务器的初始视频数据可以为持续性录制到的直播视频数据,这里将不对获取初始视频数据的业务场景进行限制。

其中,可以理解的是,在上述视频点播场景下,服务器20d在接收到上述初始视频数据a时,可以将该初始视频数据a存储至业务数据库。可以理解的是,本申请实施例中的服务器20d还可以在获取到上述用户终端集群中的其他用户终端所上传的完整的视频数据(例如,初始视频数据b)时,一并将初始视频数据b添加至初始视频a所在的第一转码数据库中进行存储,以便于后续可以对这些初始视频数据中的每个初始视频数据进行切片处理,以得到每个初始视频数据的视频片段。应当理解,本申请实施例可以将存储在第一转码数据库中的每个初始视频数据称之为视频源。另外,在视频点播场景下,本申请实施例可以将对任意一个视频源进行切片处理后所得到的若干个视频片段(例如,视频片段1、视频片段2、...、视频片段n)统称为第一视频序列。

进一步的,在视频点播场景下,为了提高对切片处理后的每个视频片段(即每个第一视频序列)在不同分辨率上进行多路转码的转码效率,本申请实施例可以将在上述服务器20d中进行切片处理后所得到的每个第一视频序列,同步分发给处于同一分布式网络中的其他服务器,以使其他服务器中的每个服务器均可以通过具备视频数据处理功能的视频数据处理装置2000(未在上述图1示出),进一步对接收到的相应的视频片段(即第一视频序列)进行多路转码,以快速得到与第一视频序列相关联的多路转码码流。

其中,为便于理解,本申请实施例可以将用于获取初始视频数据(即视频源)的业务服务器统称为第二服务器,在分布式转码系统中,该第二服务器可以为分布式集群中的分布式服务器(例如,上述图1的服务器集群中的服务器20d)。另外,本申请实施例可以将与该第二服务器处于同一分布式网络中的其他服务器(即其他业务服务器)统称为第一服务器,在视频点播场景下,该第一服务器可以接收由第二服务器对视频源进行切分处理后所得到的第一视频序列。

应当理解,第二服务器在获取到视频源时,可以快速辨别出视频源所属的业务场景是直播业务对应的视频直播场景,还是点播业务对应的视频点播场景。可以理解的是,对于不同业务场景下的视频源而言,业务服务器会选用不同的转码方式。

比如,若第二服务器识别到获取到初始视频数据为点播视频数据,则可以确定该点播视频数据所属的业务场景为视频点播场景,此时,该第二服务器可以根据切片分割规则(比如,第一切分规则)直接对获取到的视频源执行切片处理操作。比如,该第二服务器可以根据时间长度或者镜头内容等第一切片分割规则,将视频源切分成多个视频片段,以将这些视频片段进一步分发给分布式集群中的第一服务器。本申请实施例可以将每个第一服务器所接收到的由第二服务器所分发的视频片段统称为第一视频序列。

应当理解,第一服务器在接收到第一视频序列之后,可以根据与视频源相关联的缩放参数信息,对该第一视频序列的分辨率进行缩放处理,以将缩放处理后的第一视频序列称之为第二视频序列。本申请实施例中的缩放参数信息可以包含一个分辨率或者多个分辨率,这里将不对缩放参数信息的具体数量进行限制。其中,多个分辨率可以具体包含1080p、720p、540p、270p等分辨率。

其中,应当理解,本申请实施例可以将第一视频序列在一个分辨率上的转码操作称之为一路转码,从而可以将这个第一视频序列在上述多个分辨率上的转码操作称之为多路转码。可以理解的是,在分布式转码系统中,该分布式集群中的每个第一服务器均可以根据与视频源相关联的多个缩放参数信息对获取到的第一视频序列进行多路转码,以得到与每个缩放参数信息相关联的转码码流。其中,可以理解的是,一个缩放参数信息即为一个分辨率。进一步的,本申请实施例可以将与每个分辨率相关联的转码码流统称为编码码流(即编码视频序列)。其中,一个编码码流是由与一个分辨率(即缩放参数信息)相关联的预测模型所预测得到的编码码率对待编码视频序列进行编码处理后所得到的。其中,一个待编码视频序列为第一服务器根据一个缩放参数信息对第一视频序列的分辨率进行缩放处理后所得到的。

其中,可以理解的是,与该服务器20d处于同一分布式网络中的其他服务器具体可以包含上述服务器20a、服务器20b、...、服务器20c。此时,本申请实施例可以将与该服务器20d(即第二服务器)处于同一分布式网络中的其他服务器(服务器20a、服务器20b、...、服务器20c)统称为第一服务器。可以理解的是,这些第一服务器中可以运行有上述视频数据处理装置2000,这样,这些接收到第一视频序列的第一服务器,则可以通过该视频数据处理装置2000分别对接收到的第一视频序列进行多路转码,以快速得到与该第一视频序列相关联的多路转码码流。

应当理解,在视频点播场景下,本申请实施例通过提供与不同分辨率相关联的多路转码码流,可以在获取到与第二服务器相关联的其他用户终端(例如,上述图1所示的用户终端3000n)的点播请求时,可以根据该用户终端3000n所支持的分辨率,快速查找到与该用户终端3000n的分辨率相匹配的编码码流(例如,编码码流1),并可以将查找到的编码码流1下发给用户终端3000n,进而可以在用户终端3000n中对解码处理后的编码码流1进行视频播放时,可以有效地确保播放的视频数据的质量,从而可以提高视频播放的效果。

可选的,若上述业务服务器(例如,上述服务器20d)识别到获取到的初始视频数据为直播视频数据,则服务器20d可以确定初始视频数据所属的业务场景为视频直播场景,此时,上述服务器20d将难以直接对持续性接收到的初始视频数据(即视频源)直接进行切片处理。因此,为了提高多路转码的效率,本申请实施例可以在视频直播场景下,通过缓存器对接收到的初始视频数据(即视频源)中的部分直播视频数据进行缓存处理,从而可以将缓存得到的特定序列长度的视频序列统称为缓存视频序列,进而可以在一边获取视频源的同时,一边对特定序列长度的缓存视频序列进行场景切变检测,以从缓存视频序列中准确定位到需要进行视频编码的待编码视频序列,进而可以确保视频直播场景下的视频编码的准确度。

其中,本申请实施例可以将在缓存器中所动态更新的缓存视频序列的首个视频帧统称为关键视频帧。可以理解的是,本申请实施例可以将在该缓存器中所动态更新的缓存视频序列的特定序列长度统称为缓存序列长度(例如,50帧)。进一步的,该服务器20d(即业务服务器)可以对具有该缓存序列长度的缓存视频序列进行场景切变检测,以在该缓存视频序列中找到存在场景切变的另一关键视频帧,进而可以将这两个关键视频帧之间的视频序列称之为待编码视频序列,以通过运行在该服务器20d中的视频数据处理装置2000对该视频直播场景下的待编码视频序列执行上述视频数据处理功能,以在该服务器20d中持续性的输出多路转码码流。

为便于理解,本申请实施例以获取到的初始视频数据为点播视频数据为例,以在分布式转码系统中对该点播视频数据(例如,视频a)的多个视频片段进行分布式转码的具体过程进行阐述。可以理解的是,在视频点播场景下,第二服务器所获取到的初始视频数据可以为用户终端所直播上传的完整的视频数据之外,还可以为从业务数据库(例如,第一转码数据库)中所获取到的点播视频数据,这里将不对获取点播视频数据的具体来源进行限定。应当理解,在该分布式转码系统中,业务服务器(即第二服务器)可以将切片处理后的多个视频片段中的一个视频片段分发给一个转码服务器(即第一服务器),以在一个转码服务器中进行多路转码。

进一步的,请参见图2,是本申请实施例提供的一种进行分布式转码的场景示意图。如图2所示的服务器10a可以为上述业务服务器,在分布式转码系统中,该业务服务器可以为上述视频点播场景下的第二服务器。如图2所示,该第二服务器(即图2所示的服务器10a)在从图2所示的业务数据库中获取到视频a时,可以将该视频a作为视频源。由于该视频源为视频点播场景下的点播视频数据,则该服务器10a可以直接根据上述第一切片分割规则对该视频源进行切片处理,以得到图2所示的多个视频片段(即多个第一视频序列),如图2所示,多个第一视频序列具体可以包含视频片段100a、视频片段200a、视频片段300a。

可以理解的是,在对这些第一视频序列(即视频片段)进行多路转码之前,该服务器10a还可以为每个视频片段配置相应的质量类型以及质量类型对应的视频质量参数。其中,本申请实施例中的质量类型可以包含以下至少一个质量类型:第一质量类型、第二质量类型、第三质量类型和第四质量类型。其中,可以理解的是,这四种质量类型均可以用于对相应视频片段中的视频图像的视频质量进行评估,且本申请实施例可以将评估所得到的分数统称为相应质量类型下的视频质量参数。

其中,第一质量类型可以为vmaf(videomulti-methodassessmentfusion,视频质量多方法融合)类型。其中,第二服务器(即上述业务服务器)为第一视频序列所配置的vmaf类型下的视频质量标准参数(这里指在vmaf类型下所设定的质量评估值)可以为0~100的取值范围中的任意一个,例如,vmaf90。可以理解的是,vmaf类型下所设定的质量评估值的取值越大,则表征最终所输出的编码码流的视频质量越好。

其中,第二质量类型可以为ssim(structuralsimilarity,结构相似性指标)类型;其中,第二服务器(即上述业务服务器)为第一视频序列所配置的ssim类型下的视频质量标准参数(这里指在ssim类型下所设定的质量评估值)可以为0~1的取值范围中的任意一个,例如,ssim0.987。可以理解的是,ssim类型下所设定的质量评估值的取值越大,则表征最终所输出的编码码流的视频质量越好。

其中,第三质量类型可以为pnsr(peaksignaltonoiseratio,峰值信噪比)类型;其中,第二服务器(即上述业务服务器)为第一视频序列所配置的pnsr类型下的视频质量标准参数(这里指在pnsr类型下所设定的质量评估值)可以为0~100的取值范围中的任意一个,例如,pnsr40。

其中,第四质量类型可以为mos(meanopinionscore,平均意见分)类型;其中,第二服务器(即上述业务服务器)为第一视频序列所配置的mos类型下的视频质量标准参数(这里指在mos类型下所设定的质量评估值)可以为1~5的取值范围中的任意一个,例如,mos4。

可以理解的是,本申请实施例中的服务器10a(即第二服务器)在将图2所示的每个视频片段分发给相应的第一服务器时,可以为每个视频片段分别配置一个质量类型,本申请实施例可以将为每个视频片段所配置的质量类型统称为目标质量类型。例如,服务器10a为视频片段100a所配置的目标质量类型可以为vmaf类型,该服务器10a为视频片段200a所配置的目标质量类型可以为ssim类型,该服务器10a为视频片段300a所配置的目标质量类型可以为psnr类型。可选的,该服务器10a也可以为切片处理后所得到的每个视频片段配置同一质量类型,例如,可以为图2所示的视频片段100a、视频片段200a、视频片段300a配置上述多个质量类型中的任意一个质量类型。

其中,本申请实施例可以将服务器10a为某个视频片段所配置的某个质量类型下的某个视频质量参数,作为与这个视频片段相关联的待编码视频序列的的视频质量标准参数,进而可以在目标质量类型的视频质量标准参数下,通过该目标质量类型所对应的预测模型预测用于对该待编码视频序列进行编码处理的编码码率。

为便于理解,本申请实施例以该服务器10a为图2所示的多个视频片段(即视频片段100a、视频片段200a、视频片段300a)所配置的目标质量类型下的视频质量参数为vmaf90为例。如图2所示,当第二服务器(例如,图2所示的服务器10a)将视频源切分成图2所示的三个视频片段时,该服务器10a可以从该服务器10a所在的分布式集群中选取3个服务器(例如,图2所示的服务器10b、服务器10c、服务器10d)作为第一服务器,以将图2所示的3个视频片段分别分发给这3个第一服务器进行多路转码,以在分布式转码系统中提高对视频源中的每个视频片段进行多路转码的效率。

为便于理解,本申请实施例以该服务器10a将切片处理后的视频片段100a分发给图2所示的服务器10b为例,以阐述在该服务器10a中进行多路转码的具体过程。可以理解的是,在服务器10b(即第一服务器)获取到服务器10a(即第二服务器)所分发的第一视频序列(例如,视频片段100a)时,可以同步获取到该服务器10a为该第一视频序列所配置的vmaf类型的视频质量参数(即上述vmaf90),并可以将该vmaf90作为待编码视频序列的视频质量标准参数。

其中,该服务器10b可以在获取到第一视频序列(即视频片段100a)时,根据视频源相关联的缩放参数信息(例如1080p、720p、540p、270p)对该视频片段100a的分辨率(例如,540p)进行缩放处理,并可以进一步将缩放处理后的第一视频序列称之为第二视频序列。其中,可以理解的是,第二视频序列的个数与缩放参数信息的个数相同,即第二视频序列的分辨率可以具体包含1080p、720p、540p、270p。为便于理解,本申请实施例可以以第二视频序列的分辨率为720p为例,以将具有目标分辨率(即720p)的第二视频序列作为待编码视频序列,进而可以在该服务器10b中对与目标分辨率(即720p)相关联的待编码视频序列进行一路转码的具体过程进行阐述。

换言之,本申请实施例可以将与目标分辨率相关联的第二视频序列统称为待编码视频序列,以对该待编码视频序列进行一次完整的预编码处理,以将预编码过程中所保存的编码信息称之为待编码视频序列对应的视频特征。进一步的,该服务器10b还可以在预测模型库中找到与该vmaf类型相匹配的预测模型(例如,预测模型1),以通过该预测模型1对待编码视频序列在特定视频质量下的编码码率进行预测,进而可以根据预测得到的编码码率对该待编码视频序列进行编码处理,以得到图2所示的编码码流100b。

其中,可以理解的是,对于该视频片段100a在其他分辨率(例如,1080p等分辨率)上进行转码的具体过程,可以一并参见该视频片段在目标分辨率(即720p)上进行一路转码的具体过程的描述,这里将不再继续进行赘述。另外,可以理解的是,对于图2所示的其他视频片段(例如,视频片段100b、视频片段300a)进行多路转码的具体过程,可以一并参见对上述视频片段100a进行多路转码的具体过程的描述,这里将不再继续进行赘述。

可以理解的是,本申请实施例中的每个质量类型均可以对应一个已经训练好的预测模型,通过该预测模型可以预测得到待编码视频序列在特定分辨率以及特定视频质量下的编码码率,进而可以基于预测得到的编码码率对待编码视频序列进行编码处理,以得到与相应分辨率相关联的编码码流。

其中,第一服务器获取待编码视频序列、通过预编码得到待编码视频序列的视频特征、以及基于视频特征预测编码码率的具体实现方式可以参见如下图3至图9所对应的实施例。

进一步地,请参见图3,是本申请实施例提供的一种视频数据处理方法的流程示意图。如图3所示,方法可以由具备视频数据处理功能的视频数据处理装置执行,该方法至少可以包括步骤s101-步骤s104:

步骤s101,获取与视频源相关联的待编码视频序列,获取与待编码视频序列相关联的视频质量标准参数;

具体的,在视频点播场景下,视频数据处理装置可以接收该视频点播场景下的业务服务器所分发的视频源中的第一视频序列;其中,第一视频序列可以为该业务服务器对获取到的视频源进行切片处理后所确定的;进一步的,视频数据处理装置可以根据视频源的缩放参数信息以及第一视频序列,确定与视频源相关联的待编码视频序列;进一步的,视频数据处理装置可以将业务服务器为第一视频序列所配置的视频质量参数,作为与待编码视频序列相关联的视频质量标准参数。

其中,本申请实施例中的视频数据处理装置可以运行在上述第一服务器中,该第一服务器可以为上述图2所对应实施例中的服务器10b。可以理解的是,第一服务器可以为分布式转码系统中的分布式服务器。在该分布式转码系统中,业务服务器可以为与该第一服务器处于同一分布式网络中的其他分布式服务器(即第二服务器)。本申请实施例中的第二服务器可以用于根据切片分割规则准确地对获取到的视频源进行切片处理,以将获取到的视频源切分为多个视频片段。本申请实施例可以将每个视频片段统称为第一视频序列,为了提高对切片处理后的这些视频片段(即这些第一视频序列)进行多路转码的效率,本申请实施例还可以进一步将这些第一视频序列分发给与该第二服务器相关联的第一服务器,以使运行在第一服务器中的视频数据处理装置(例如,上述视频数据处理装置2000)对获取到的第一视频序列进行多路转码,以确保对每个视频片段进行视频编码的准确度。另外,通过在这些第一服务器中同步对每个视频视频片段的待编码视频序列进行多路转码,还可以间接提高对视频源进行多路转码的效率。其中,第二服务器将视频源切分为多个视频片段的具体过程可以参见上述图2所对应实施例中对视频点播场景下的第一切片切分规则的描述,这里将不再继续进行赘述。

其中,可以理解的是,在分布式转码系统中,业务服务器(即第二服务器)每天可以接收到用户终端通过浏览器网页或者目标客户端所上传的大量的视频,这些视频中可以包含视频点播场景下的视频数据1(即上述点播视频数据),还可以包含视频直播场景下的视频数据2(即上述直播视频数据)。本申请实施例可以将该业务服务器所接收到的这些视频数据1和视频数据2一并统称为上述初始视频数据,即一个初始视频数据可以为一个视频源。

其中,可以理解的是,业务服务器(即分布式服务器中的第二服务器)在确定获取到的初始视频数据为点播视频数据时,可以直接将获取到的点播视频数据作为视频源进行切片处理,以将切片处理后的视频片段分发给与该业务服务器处于同一分布式网络中的其他业务服务器(即第一服务器),以使每个第一业务服务器在获取到由第二服务器所分发的第一视频序列时,可以根据上述视频源(即点播视频数据)的缩放参数信息对第一视频序列进行缩放处理,以将缩放处理后的第一视频序列确定为第二视频序列。可以理解的是,第二视频序列的个数与视频源的缩放参数信息的个数相同。所以,在视频点播场景下,第一服务器所获取到的待编码视频序列的个数决定了后续需要进行视频转码的路数。

其中,为便于理解,本申请实施例以在分布式转码系统中一个业务服务器为例,以阐述在运行有上述视频数据处理装置的第一服务器中对获取到的视频片段进行多路转码的具体过程。其中,该运行有视频数据处理装置的第一服务器可以为上述图2所对应实施例中的服务器10c。其中,该第一服务器(即服务器10c)所获取到的视频片段可以为上述图2所对应实施例中的服务器10a(即第二服务器)所分发的视频片段300a。为便于理解,进一步的,请参见图4,是本申请实施例提供的一种在视频点播场景下获取待编码视频序列的场景示意图。其中,第一服务器(即服务器10d)在获取到视频片段可以为前述视频片段300a,在视频点播场景下,本申请实施例可以将由上述第二服务器所分发的视频源中的视频片段300a统称为第一视频序列。可以理解的是,该第一服务器在获取到该视频片段300a(即第一视频序列)之后,可以根据与视频源的分辨率相关联的缩放参数信息,对该视频片段300a(即第一视频序列)的分辨率进行缩放处理。如图4所示,该第一服务器可以将该第一视频序列的分辨率(例如,540p)缩放至图4所示的多个分辨率上。这里的多个分辨率具体可以为分辨率1、分辨率2、分辨率3、分辨率4。其中,分辨率1可以为上述1080p;分辨率2可以为上述720p;分辨率3可以为上述540p;分辨率4可以为上述270p。可以理解的是,与视频源的分辨率相关联的缩放参数信息可以为上述多个分辨率,即一个缩放参数信息可以对应一个分辨率。可以理解的是,多个分辨率中的任意两个分辨率所对应的编码码流之间可以相互进行切换。比如,在视频点播场景下的用户终端中,上述第二服务器可以根据使用该用户终端的点播用户的码流切换请求,快速找到并下发具有相同视频内容的同一视频片段在不同分辨率上的编码码流,进而可以在确保视频播放质量的情况下,快速实现相应编码码流之间的切换,以提供友好的用户体验,进而可以增加用户的黏度。

其中,可以理解的是,在视频点播场景下,本申请实施例可以将根据一个缩放参数信息(即一个分辨率)所得到的一个第二视频序列,作为一路与视频源相关联的待编码视频序列,从而可以在特定质量类型的视频质量标准参数下,对每个待编码视频序列执行下述步骤s102-步骤s104。

其中,可以理解的是,本申请实施例可以将同一视频片段在不同分辨率下的视频序列称之为第二视频序列。第二视频序列可以包含将视频片段300a缩放到分辨率1时所得到的视频序列1a、将视频片段300a缩放到分辨率2时所得到的视频序列2a、将视频片段300a缩放到分辨率3时所得到的视频序列3a,将视频片段300a缩放到分辨率4时所得到的视频序列4a。应当理解,本申请实施例可以将第二视频序列中的视频序列1a、视频序列2a、视频序列2a、视频序列4a统称为待编码视频序列,以在该第一服务器(即上述服务器10d)中对这些待编码视频序列进行多路转码,这里的多路转码具体是指与上述4个分辨率相关联的4路转码,以便于后续可以通过下述步骤s102-步骤s104得到同一视频片段在不同分辨率下的转码码流。这些转码码流具体可以包含图4所示的与分辨率1相关联的编码序列1d、与分辨率2相关联的编码序列2d、与分辨率3相关联的编码序列3d、与分辨率4相关联的编码序列4d。

其中,可以理解的是,业务服务器可以对获取到的初始视频数据(即视频源)所属的业务场景进行判断,进而可以根据判断出的初始视频数据所属的业务场景,判断是否能够直接对获取到视频源进行切片处理。这里的业务场景可以包含上述视频点播场景,还可以包含视频直播场景。

其中,应当理解,在视频直播场景下,业务服务器(即上述第二服务器)可以得到由用户终端(这里指可以进行图像采集的终端设备,比如,主播终端)所周期性采集并发送的初始视频数据,此时,该业务服务器所获取到的初始视频数据可以为直播视频数据。

可以理解的是,业务服务器在确定获取到的初始视频数据为直播视频数据时,可以持续性地将接收到的初始视频数据(即直播视频数据)确定为视频源,进而可以采用第二切片分割规则(例如,场景检测规则)对缓存器中所持续性更新的缓存视频序列进行场景切变检测,以从当前缓存器中所缓存的缓存视频序列中找到从一个场景(例如,场景1)切变至另一个场景(例如,场景2)的场景切变帧。其中,本申请实施例可以将该场景切变帧在当前缓存视频序列中的序列号称之为场景切变点,进而可以根据找到的场景切变点将当前缓存视频换分为多个场景。可以理解的是,在本申请实施例中的每个场景均可以对应一个关键视频帧,本申请实施例可以将任意两个场景之间的视频序列称之为待传输给编码器的待编码视频序列。需要注意的是,业务服务器(即上述第二服务器)通过第二切片分割规则所确定出的与视频源相关联的待编码视频序列中可以包含一个关键视频帧。此时,该业务服务器(即第二服务器)可以通过上述视频数据处理装置对待编码视频序列执行下述步骤s102-步骤s104。由此可见,在视频直播场景下,运行有视频数据处理装置的第二服务器可以根据上述第二切片分割规则直接对这些持续性获取到的待编码视频序列进行转码处理,从而可以得到与待编码视频序列相关联的编码视频序列(即编码码流),该视频直播场景下的编码码流可以被该业务服务器(即第二服务器)持续性地分发给与该主播终端处于同一虚拟直播间中的其他用户终端(例如,观众终端),以确保其他用户终端可以通过相应的解码器对持续性获取到的编码码流进行解码处理,以在其他用户终端中同步播放由主播终端所采集到的直播视频数据。

其中,可以理解的是,用于对该视频直播场景下的视频源进行多路转码的业务服务器可以为上述分布式转码系统中的任意一个分布式服务器,这里将不对用于获取直播视频数据的分布式服务器进行限制。

为便于理解,本申请实施例以上述业务服务器所获取到的视频源为视频点播场景下的点播视频数据为例,以在运行有上述视频数据处理装置中的第一服务器中,对与视频源相关联的待编码视频序列进行多路转码的具体过程进行阐述。

步骤s102,根据视频质量标准参数对待编码视频序列进行预编码处理,得到预编码视频序列,根据预编码视频序列确定待编码视频序列对应的视频特征;

具体的,视频数据处理装置根据视频质量标准参数,获取用于对待编码视频序列进行预编码的初始编码器;进一步的,视频数据处理装置可以根据初始编码器对待编码视频序列进行预编码处理,得到预编码视序列;其中,预编码视频序列中可以包含关键视频帧和预测视频帧;进一步的,视频数据处理装置可以根据关键视频帧、预测视频帧、预编码视频序列的分辨率以及预编码视频序列的码率,确定预编码视频序列的编码信息;进一步的,视频数据处理装置可以将编码信息确定为待编码视频序列对应的视频特征。

为便于理解,本申请实施例以将图4所示的视频片段(例如,上述视频片段300a)的分辨率缩放至分辨率1为例,以阐述通过图4所示的视频序列1a(即待编码视频序列)进行一路转码的具体过程。如图4所示,运行有该视频数据处理装置的第一服务器可以在获取到待编码视频序列(即图4所示的视频序列1a)时,可以同步获取上述第二服务器为该视频片段300a所配置的视频质量参数,并可以将第二服务器为该视频片段300a所配置的视频质量参数,作为该待编码视频序列的视频质量标准参数(例如,上述vmaf90)。

可以理解的是,该第一服务器可以根据该视频质量标准参数(例如,上述vmaf90),获取用户对视频序列1a进行预编码的初始编码器,并可以根据初始编码器对待编码视频序列进行预编码处理,得到预编码视序列;其中,预编码视频序列中可以包含关键视频帧和预测视频帧;可以理解的是,一个预编码视频序列中可以包含一个关键视频帧和至少一个预测视频帧。进一步的,第一服务器可以根据关键视频帧、预测视频帧、预编码视频序列的分辨率以及预编码视频序列的码率,快速确定预编码视频序列的编码信息,并可以将编码信息确定为待编码视频序列对应的视频特征。如上述图4所示,该第一服务器保存对视频序列1a(即待编码视频序列)进行预编码处理过程中所得到的编码信息,并可以将保存得到的预编码视频序列的编码信息作为该视频序列1a的视频特征。其中,该视频序列1a的视频特征可以为上述图4所示的视频特征1b。

其中,在预编码视频序列中包含前向预测帧(即p帧)时,该第一服务器获取编码视频序列的编码信息的具体过程可以描述为:第一服务器可以获取对前向预测帧进行帧间压缩时所选取的关键视频帧,并可以将选取到的关键视频帧确定为前向预测帧对应的参考视频帧;进一步的,第一服务器可以将参考视频帧的总选取数量确定为第一数量,并可以将关键视频帧的总数量确定为第二数量,并可以将前向预测帧的总数量确定为第三数量;进一步的,第一服务器可以根据关键视频帧对应的数据容量、第二数量,确定关键视频帧的第一平均数据容量,根据前向预测帧对应的数据容量、第三数量,确定前向预测帧的第二平均数据容量;进一步的,第一服务器可以从关键视频帧对应的数据容量中获取最大数据容量,将第一平均数据容量与最大数据容量之间的比值,作为预编码视频序列的空域复杂度,将第二平均数据容量与第一平均数据容量之间的比值,确定为预编码视频序列的时域复杂度;进一步的,第一服务器可以将第一数量、第二数量、第三数量、空域复杂度、时域复杂度以及预编码码视频序列的分辨率和预编码码视频序列的码率,确定为预编码视频序列的编码信息。

其中,可以理解的是,在视频点播场景下,运行有上述视频数据处理装置的第一服务器可以对上述图4所示的视频序列1a(即待编码视频序列)进行一次完整的预编码,以在对该视频序列1a进行预编码处理的过程中,保存与该视频序列1a相关联的预编码视频序列的编码信息。其中,可以理解的是,在对视频序列1a进行预编码处理过程中所采用的压缩方式不同,就可以得到不同类别的编码视频帧,比如,可以通过帧内编码得到i帧(即intracodedframes,帧内编码帧),还可以通过帧间编码得到p帧(predictedframes,前向预测帧)和b帧(bi-directionalpredictedframes,双向预测帧)。其中,本申请实施例可以将帧内编码所得到的i帧统称为上述关键视频帧,并可以将p帧或者b帧统称为上述预测视频帧。

其中,本申请实施例可以利用视频序列1a的单个视频帧内的空间相关性编码输出i帧。即在进行帧内压缩的过程中,可以无需考虑时间上的相关性,也不用考虑运动补偿。此外,应当理解,编码所得到i帧还可以作为后续进行视频解码时的基准帧。应当理解。i帧图像可以周期性地出现在该视频序列1a中,且出现频率可以由初始编码器的插入周期所确定。可以理解的是,根据插入周期可以确定与该待编码视频序列(即视频序列1a)相关联的帧组,一个帧组即可以视为一个场景。

其中,p帧(即p帧图像)和b帧(即b帧图像)可以采用帧间编码方式进行帧间压缩,即可以同时利用空间和时间上的相关性。比如,p帧图像可以采用前向时间预测,以提高压缩效率和图像质量。p帧图像中的每一个宏块可以为根据p帧最接近的i帧(这里的i帧可以视为参考视频帧)进行前向预测后所得到的。其中,b帧图像是通过双向时间预测所得到的,即b帧图像可以将与b帧最接近的i帧图像或最接近的p帧图像作为进行双向预测的另一种参考视频帧。比如,b帧图像可以采用未来帧(即在b帧图像之后的且与b帧相邻最近的已编码的p帧或者i帧)作为参考。因此,在通过初始编码器对待编码视频序列中的视频帧进行预编码处理的过程中,显示在每个帧组中的编码视频帧的传输顺序和显示顺序是不同的。比如,在视频序列1a对应的预编码视频序列中,编码视频帧的显示顺序(即编码顺序)可以是:ibbp。但是考虑到前述预测帧p帧在进行解码的过程中,需要依赖于i帧,且双向预测帧(即b帧)在解码的过程中,需要在解码b帧时知道p帧和i帧中信息,所以,这几帧在预编码视频序列中的解码顺序可能是:ipbb。所以,通过对该视频序列1a进行预编码,可以快速统计得到与编码视频序列的编码信息。其中,可以理解的是,与该视频序列1a(待编码视频序列)相关联的预编码视频序列的编码信息可以包含预编码视频序列的关键编码信息、预编码视频序列的空域复杂度、预编码视频序列的时域复杂度等。其中,预编码视频序列的关键编码信息具体可以包含预编码视频序列的分辨率、码率、关键视频帧的个数、预测视频帧的个数、参考帧的个数等。

其中,该预编码视频序列的分辨率可以为上述分辨率1。其中,该预编码视频序列的码率可以为预编码过程中所直接统计到的码率。其中,该视频序列1a中可以包含多个场景、每个场景可以对应一个关键视频帧和至少一个预测视频帧。这里的至少一个预测视频帧可以为p帧(即前向预测帧)。其中,本申请实施例可以将在对前向预测帧(即p帧)进行帧间编码时所采用的关键视频帧统称为参考视频帧,即本申请实施例在进行预编码的过程中,每使用一次关键视频帧则可以将参考视频帧的个数进行加一处理,进而可以将预编码完成时所最终统计到的参考视频帧的总选取数量确定为第一数量。此外,本申请实施例也可以将在预编码过程中所统计到的关键视频帧的个数(即关键视频帧的总数量)统称为第二数量,并可以将在预编码过程中所统计到的前向预测帧的个数(即前向预测帧的总数量)统称为第三数量。

进一步的,该第一服务器还可以通过下述公式(1)计算得到该预编码视频序列的空域复杂度:

空域复杂度=i帧平均大小/最大i帧大小公式(1);

其中,i帧平均大小是由该第一服务器所获取到的每个关键视频帧对应的数据容量(例如,100kb、90kb等)以及统计到的i帧的总数量所确定的。其中,本申请实施例可以通过每个关键视频帧对应的数据容量、和该第一服务器所统计到的关键视频帧的总数量(即上述第二数量),确定这些关键视频帧的第一平均数据容量,并可以将该第一平均数据容量统称为上述i帧平均大小。另外,本申请实施例还可以从这些关键视频帧对应的数量量中找到具有最大数据容量的关键视频帧,并可以将找到的具有最大数据容量的关键视频帧称之为最大i帧,该最大i帧大小即为从这些关键视频帧对应的数据容量中的最大数据容量。所以,本申请实施例可以根据上述公式(1)将第一平均数据容量与最大数据容量之间的比值,作为预编码视频序列的空域复杂度。

进一步的,该第一服务器还可以通过下述公式(2)计算得到该预编码视频序列的时域复杂度:

时域复杂度=p帧平均大小/i帧平均大小公式(2);

其中,p帧平均大小是指该第一服务器所获取到的每个前向预测帧对应的数据容量(例如,20kb、15kb等)。其中,本申请实施例可以通过每个前向预测帧对应的数据容量和该第一服务器所统计到的前向预测帧的总数量(即上述第三数量),确定这些前向预测帧的第二平均数据容量,本申请实施例可以将该第二平均数据容量统称为上述p帧平均大小。如上述公式(2)所示,本申请实施例可以将第二平均数据容量与第一平均数据容量之间的比值,作为预编码视频序列的时域复杂度。

可以理解的是,该第一服务器对上述图4所示的视频序列2a、视频序列3a以及视频序列4a进行预编码处理的具体过程,可以一并参见对上述对视频序列1a进行预编码处理的具体过程的描述,这里将不再继续进行赘述。

步骤s103,根据视频质量标准参数以及视频特征,预测与待编码视频序列相关联的编码码率;

具体的,视频数据处理装置可以获取视频质量标准参数(例如,上述vmaf90)对应的目标质量类型(即vmaf类型),并可以在与多个质量类型相关联的预测模型库中,将与目标质量类型相匹配的预测模型作为目标预测模型;进一步的,视频数据处理装置可以将视频特征输入目标预测模型,输出视频特征分别与目标预测模型中的多个参考视频特征之间的匹配度;进一步的,视频数据处理装置可以在匹配度中将与视频特征具有最高匹配度的参考视频特征作为目标参考视频特征,进而可以将与目标参考视频特征相关联的质量标签信息所对应的样本码率信息,作为与待编码视频序列相关联的编码码率。

其中,可以理解的是,在分布式转码系统中,运行有上述视频数据处理装置的第一服务器可以在获取到待编码视频序列(例如,上述视频序列1a)的视频特征1b之后,可以将视频特征1b输入与上述vmaf类型相匹配的目标预测模型,此时,该目标预测模型可以根据设定的具体的质量指标(即上述视频质量标准参数),预测出用于对待编码视频序列进行编码处理的编码码率,以进一步执行下述步骤s104。

可以理解的是,对于上述图4所示的具有相同视频内容的同一视频片段在不同分辨率下的待编码视频序列而言,可以通过同一目标预测模型预测得到与每个待编码视频序列相关联的编码码率。比如,视频序列1a的编码码率可以为上述图4所示的编码码率1c、视频序列2a的编码码率可以为上述图4所示的编码码率2c、视频序列3a的编码码率可以为上述图4所示的编码码率3c、视频序列4a的编码码率可以为上述图4所示的编码码率4c。

步骤s104,根据编码码率对待编码视频序列进行编码处理,得到与视频源相关联的编码视频序列。

如上述图4所示,本申请实施例在对不同分辨率下的待编码视频序列进行转码处理的过程中,可以通过同一目标预测模型,对具有相同视频内容的同一视频片段在不同分辨率下的编码码率进行预测,进而可以根据预测得到的多个编码码率分别上述图4所示的多个待编码视频序列进行编码处理,以输出与相应分辨率相关联的编码视频序列。编码视频序列具体可以包含图4所示的编码序列1d、编码序列2d、编码序列3d、编码序列4d。可以理解的是,本申请实施例可以将与每个分辨率相关联的编码视频序列统称为一路编码码流。

可以理解的是,本申请实施例中的目标质量类型可以为上述多种质量类型中的任意一种质量类型,每个质量类型可以对应一个预测模型,这些预测模型均可以存储在该分布式转码系统的预测模型库中。所以,运行有上述视频数据处理装置的第一服务器在获取到上述特定质量指标下的目标评估值时,可以将该特定质量指标下的目标评估值统称为上述视频质量标准参数,以便于该第一服务器后续可以直接根据设定的目标质量类型的视频质量标准参数来直接调整所需输出的编码序列的输出质量。换言之,对于分布式转码系统中的每个第一服务器而言,当这些第一服务器中的每个第一服务器所获取到的视频片段为不相同时,可以在确保视频质量比较一致的情况下,尽可能合理地为每个第一服务器找到用于对相应视频片段进行编码处理的编码码率,进而可以解决对这些视频片段采用同一编码码率进行无差别编码所造成的带宽浪费的现象,进而可以降低编码码率的浪费现象,进而可以达到节省带宽的目的。

为便于理解,进一步的,请参见图5,是本申请实施例提供的一种用于对不同视频片段进行编码的编码码率的场景示意图。其中,本申请实施例中的视频源可以包含图5所示的多个视频片段,这里的多个视频片段具体可以包含图5所示的视频片段1、视频片段2、视频片段3、...、视频片段25。如图5所示的曲线11可以用于表征在固定编码码率(例如,4m)对这25个视频片段进行无差别视频编码的示意图。另外,曲线21可以用于表征在将这25个视频片段的视频质量标准参数配置为vmaf90时,通过上述目标预测模型所预测得到的用于对不同视频片段分别进行编码的编码码率的示意图。可以理解的是,本申请实施例通过训练好的目标预测模型可以准确预测得到不同视频片段在同一视频质量指标下的编码码率。这些视频片段可以在同一业务服务器(比如,一个第一服务器)中进行多路转码处理,也可以在不同业务服务器(比如,多个第一服务器)分别进行多路转码处理,这里将不对进行多路转码处理的第一服务器的数量进行具体限制。

应当理解,在上述视频点播场景下,第二服务器可以按照上述第一切片分割规则将视频源划分为多个视频片段,即第二服务器可以在对图5所示的这25个视频片段所对应的视频源进行切片处理的过程中,可以根据这个视频源的视频内容特征(例如,场景信息、图像信息和编码信息等),将视频源划分成图5所示的多个视频片段。其中,场景信息具体可以包含这个视频源所包含的场景类别信息、近/远景信息、相机运行信息、显著区域信息等。其中,图像信息可以包含这个视频源的纹理细节特征、噪声类型特征、色彩特征、颜色对比度特征等。其中,编码信息可以包含上述预编码视频序列的关键编码信息(比如,分辨率信息以及参考帧的个数信息等)、上述空域复杂度以及上述时域复杂度信息等。应当理解,当采用上述第一切片分割规则对视频点播场景下的视频源的视频内容进行一次分析处理之后,可以准确得到具有不同的视频内容的的视频片段。

其中,为便于理解,本申请实施例以将切片处理后的一个视频片段(即上述第一视频序列)分发给一个第一服务器为例。其中,上述第二服务器在为图5所示的这25个视频片段配置视频质量参数时可以配置同一质量类型下的同一视频质量标准参数,并可以将这25个视频片段分发给与该第二服务器处于同一分布式网络中的25个第一服务器,以在这些第一服务器中实现分布式转码,进而可以提高在不同第一服务器中进行多路转码的效率。可以理解的是,当一个视频片段对应一个转码服务器(即一个第一服务器)时,图5所示的每个视频片段的编码码率可以是由分布式服务器集群中的这些第一服务器通过上述目标预测模型进行预测后所得到的,所以,对于具有不同视频内容的视频片段而言,由于这些视频片段的视频内容特征通常是不相同的,以至于由这些第一服务器中的目标预测模型所预测得到的编码码率可以是不相同的,具体可以参见图5所示的多个视频片段与相应编码码率之间的拟合曲线图。

进一步的,请参见图6,是本申请实施例提供的对不同视频片段进行编码所得到的视频质量的场景示意图。如图6所示的视频片段可以为上述图5所对应实施例中的25个视频片段的编码序列。如图6所示的曲线22为采用预测到的不同编码码率分别对这25个视频片段进行编码处理之后所得到的编码序列的视频质量情况,即通过不同编码码率分别对这25个视频片段进行编码处理之后可以确保这25个视频片段的视频质量的波动幅度比较稳定。即通过对比图6所示的曲线12和曲线22可知,通过预测出的不同编码码率相应视频片段进行编码所得到视频质量(即曲线22所表征的视频质量),相对于之前采用固定编码码率无差别地对这25个视频片段进行编码的所得到的视频质量(即曲线12所表征的视频质量),可以有效地确保视频质量的稳定变化,进而可以改善后续输出至上述点播终端中这些视频片段的播放效果,即不会存在视频质量的剧烈波动。

可以理解的是,运行有上述数据处理装置的第一服务器可以在获取到与上述视频片段300a(即第一视频序列)相关联的多个编码码流之后,可以将这些编码码流统称为编码视频序列,进而可以将编码视频序列作为与缩放参数信息相关联的编码码流返回给第二服务器,以使第二服务器在接收到分布式服务器集群中的所有第一服务器针对同一缩放参数信息所返回的编码码流时,根据与切片处理后的视频源相关联的切片标识信息对接收到的所有编码码流进行合并处理。比如,第二服务器在获取到上述由上述图2所对应实施例中的多个第一服务器所返回的多路转码码流之后,可以根据上述图4所示的多个分辨率中的某个目标分辨率(例如,上述分辨率2),分别对上述服务器10b所返回的编码码流100b、上述服务器10c所返回的编码码流200b、上述服务器10d所返回的编码码流300b进行合并处理,以得到与上述分辨率2相关联的合并码流,进而可以在点播终端请求播放该分辨率2对应的合并码流的情况下,将该合并码流下发给点播终端进行播放处理。

其中,可以理解的是,在视频点播场景下,业务服务器所对应的业务数据库中可以存放已完成多路转码的视频文件(每个视频文件均为与视频源相关联的编码码流),点播终端可通过目标客户端或者浏览器网页接入上述第二服务器,以从与该第二服务器相关联的业务数据库获取到将与该点播终端所请求的视频数据相匹配的编码码流,以使该点播终端后续在获取到编码码流时,可以通过该点播终端所支持的解码器对编码码流进行解码处理,以在该点播终端中对解码处理后的视频数据进行播放处理。可以理解的是,本申请实施例通过设定上述视频质量标准参数,可以确保在点播终端中所输出的视频数据的质量,进而可以提高视频数据的播放效果。

本申请实施例在获取到与视频源相关联的待编码视频序列时,可以获取与待编码视频序列相关联的视频质量标准参数;其中,本申请实施例可以将视频源的每个视频片段在相应缩放参数信息下的视频序列统称为待编码视频序列。进一步的,根据视频质量标准参数对待编码视频序列进行预编码处理,得到预编码视频序列,根据预编码视频序列确定待编码视频序列对应的视频特征;进一步的,根据视频质量标准参数以及视频特征,预测与待编码视频序列相关联的编码码率;进一步的,根据编码码率对待编码视频序列进行编码处理,得到与视频源相关联的编码视频序列。由此可见,对视频源的每个视频片段中的视频内容进行一次分析,可以快速提取出与每个视频片段(即待编码视频序列)相关的视频特征,从而可以在设定好目标质量的情况下,通过预测模型准确预测出用于对每个视频片段分别进行编码的编码码率,进而可以在设定质量指标(即设定好的视频质量标准参数)的情况下,通过预测得到的不同视频片段的编码码率,可以在特定的视频质量下提高视频编码的准确性,并可以减少编码资源的浪费。

进一步地,请参见图7,是本申请实施例提供的一种视频数据处理方法的示意图。如图7所示,方法可以由具备视频数据处理功能的视频数据处理装置执行,方法可以包含以下步骤:

步骤s201,接收用户终端采集并上传的初始视频数据,将接收到的初始视频数据确定为视频源;

具体的,视频数据处理装置可以在获取到初始视频数据时,判断该初始视频数据是否为直播视频数据,若确定为是,则可以持续性地将获取到的初始视频数据作为视频源,进而可以在业务服务器(例如,上述运行有视频数据处理装置的第二服务器)中直接对获取到的视频源(即直播视频数据)进行多路转码处理,以在该业务服务器中持续性的输出编码码流。

步骤s202,从视频源中获取关键视频帧,根据关键视频帧和与关键视频帧相关联的缓存序列长度,在视频源中确定用于进行场景检测的缓存视频序列,根据缓存视频序列和视频源的缩放参数信息,确定用于进行预编码的待编码视频序列;

其中,具体的,视频源包含与采集周期相关联的m个视频帧;m为正整数;视频数据处理装置可以在视频源的m个视频帧中,将首个视频帧确定为第一关键视频帧;进一步的,视频数据处理装置可以根据第一关键视频帧和与第一关键视频帧相关联的缓存序列长度,从m个视频帧中确定用于进行场景检测的缓存视频序列;进一步的,视频数据处理装置可以在缓存视频序列中将除第一关键视频帧之外的视频帧确定为待检测视频帧bi,根据第一关键视频帧对缓存视频序列中的待检测视频帧bi进行场景切变检测;i为大于1且小于m的正整数;进一步的,视频数据处理装置可以在检测到第一关键视频帧与待检测视频帧bi之间的视频内容变化度大于场景切变阈值时,将待检测视频帧bi确定为第二关键视频帧;进一步的,视频数据处理装置可以将第一关键视频帧与第二关键视频帧之间的视频序列作为初始视频序列,根据视频源的缩放参数信息对初始视频序列进行缩放处理,将缩放处理后的初始视频序列确定为用于进行预编码的待编码视频序列。

为便于理解,进一步的,请参见图8,是本申请实施例提供的一种在视频直播场景下获取待编码视频序列的场景示意图。在视频直播场景下,图8所示的用户终端40可以为主播用户(即图8所示的用户a)所对应的主播终端,该主播终端在采集周期内所采集到的初始视频数据可以为图8所示的视频直播数据。如图8所示的视频直播数据可以包含m个视频帧(即可以包含视频帧1a、视频帧1b、...视频帧1m),其中,m可以为60。其中,本申请实施例可以将图8所示的第1时刻到第m时刻所构成的采集时长统称为采集周期。可以理解的是,在图8所示的用户终端40与业务服务器30之间存在网络连接关系时,可以将主播终端在周期时长内所采集到的直播视频数据作为视频源,持续性地上传给业务服务器30,以使业务服务器30可以根据上述视频直播场景下的第二切片分割对照对获取到的与视频源相关联的缓存视频序列进行场景检测。

其中,可以理解的是,图8所示的业务服务器30可以为上述第二服务器,该第二服务器在确定获取到视频直播数据时,可以将持续性获取到的视频直播数据统称为视频源,并将视频源中的每个视频帧依次给到缓存器。其中,该缓存器的缓存视频序列长度可以为50帧。如图8所示,业务服务器30中的缓存器在获取到视频源中的首个视频帧时,可以将其确定为第一关键视频帧,该第一关键视频帧可以为图8所示的缓存视频序列2中的关键视频帧10a。该关键视频帧10a可以为上述图8所示的视频帧1a。可以理解的是,该业务服务器30在确定出关键视频帧10a时,可以从该关键视频帧10a开始,缓存特定序列长度的视频帧构成图8所示的缓存视频序列2。其中,本申请实施例可以将该缓存器的特定序列长度(例如,l(比如,50)个视频帧所构成的帧长度)统称为缓存序列长度。l可以为小于或者等于m的正整数。

进一步的,业务服务器30从视频源中确定出用于进行场景检测的缓存视频序列2时,可以在该缓存视频序列2中将除第一关键视频帧(即关键视频帧10a)之外的剩余的每个视频帧称之为待检测视频帧,并可以将当前用于与第一关键视频帧的视频内容进行比对的待检测视频帧记为待检测视频帧bi。其中,i可以为大于1且小于m的正整数。例如,缓存视频序列2中的视频帧可以包含:关键视频帧10a、待检测视频帧b2、待检测视频帧b3、...、待检测视频帧bl。可以理解的是,该业务服务器可以通过判断第一关键视频帧与待检测视频帧bi之间的视频内容变化度是否大于场景切变阈值,来判断当前的待检测视频帧bi是否为场景切变帧。

可以理解的是,若该业务服务器30确定图8所示的关键视频帧10a与待检测视频帧b5(此时,i=5)之间的视频内容变化度大于场景切变阈值,则可以将该待检测视频帧b5确定为第二关键视频帧,这里的第二关键视频帧即为上述用于表征从一个场景切变至另一个场景的场景切变帧。应当理解,该业务服务器在检测到缓存视频序列2中存在多个场景时,可以将第一关键视频帧与第二关键视频帧之间的视频序列称之为图8的初始视频序列400a,该初始视频序列400a中可以包含从关键视频帧10a到待检测视频帧b4所构成的视频序列。进一步的,该业务服务器可以根据视频源的缩放参数信息(即上述1080p、720p等)对初始视频序列400a进行缩放处理,并可以将缩放处理后的初始视频序列400a确定为用于进行预编码的待编码视频序列400b,从而可以根据下述步骤s203-步骤s206,得到与该待编码视频序列400b相关联的编码码率1,进而可以根据编码码率1对待编码视频序列400b进行编码处理后,可以得到图8所示的编码视频序列400c。

可以理解的是,当缓存器将初始视频序列400a给到上述初始编码器进行预编码之后,可以在缓存器中删除该初始视频序列400a,并可以将删除初始视频序列400a之后的缓存视频序列称之为图8所示的过渡视频序列3。该过渡视频序列3的首个视频帧可以为上述第二关键视频帧(即图8所示的关键视频帧20a可以为上述待检测视频帧b5)。换言之,该过渡视频序列3中的视频帧可以为在上述缓存视频序列2中去除初始视频序列400a后所剩余的待检测视频帧(即待检测视频帧b5、...、待检测视频帧bl)。由于在视频直播场景下,业务服务器会不断的获取到主播终端在采集周期内所采集并上传的视频直播数据,为便于可以进一步对缓存器中所缓存的特定视频长度的缓存视频序列进行场景检测,本申请实施例还可以从视频源中确定出图8所示的与初始视频序列400a具有相同帧数的待补齐视频序列4,这样,可以将该待补齐视频序列4给到缓存器之后,可以通过待补齐视频序列4对过渡视频序列3进行补齐处理,以重新确保缓存器中所缓存得到的缓存视频序列3可以与缓存视频序列2具有相同的缓存序列长度。其中,缓存视频序列3可以为上述补齐处理后的过渡视频序列。应当理解,本申请实施例在将关键视频帧20a作为第二关键视频帧时,可以将在缓存视频序列3中将除第二关键视频帧之外的视频帧确定为新的待检测视频帧(即待检测视频帧dj),以便于能够继续根据该第二关键视频帧对该缓存视频序列3中的这些新的待检测视频帧进行场景检测。其中,j可以为大于1且小于或者等于上述l的正整数。

其中,可以理解的是,业务服务器30对缓存器中所动态更新的缓存视频序列(即图8所示的缓存视频序列3)中的待检测视频帧dj进行场景检测的具体实现方式,可以一并参见对上述缓存视频序列2中的待检测视频帧bi进行场景检测的描述,这里将不再继续进行赘述。

与该步骤s203,基于用户终端的配置信息,为待编码视频序列配置视频质量标准参数;

步骤s204,根据视频质量标准参数对待编码视频序列进行预编码处理,得到预编码视频序列,根据预编码视频序列确定待编码视频序列对应的视频特征;

步骤s205,根据视频质量标准参数以及视频特征,预测与待编码视频序列相关联的编码码率;

步骤s206,根据编码码率对待编码视频序列进行编码处理,得到与视频源相关联的编码视频序列;

步骤s207,在获取到虚拟直播间中的观众终端的拉流请求时,获取拉流请求中的播放分辨率;

步骤s208,在编码视频序列中查找与播放分别率相匹配的缩放参数信息所对应的目标编码视频序列,将目标编码视频序列作为编码码流推送给观众终端,以使观众终端对编码码流进行解码处理后得到目标编码视频序列。

可以理解的是,本申请实施例所描述的步骤s201-步骤s208的应用场景可以包含上述视频直播场景之外,还可以包含上述视频点播场景。

为便于理解,进一步的,请参见图9,是本申请实施例提供的一种获取编码码流的整体流程示意图。如图9所示的步骤s1-步骤s5可以应用于上述分布式转码系统中的任意一个业务服务器。其中,步骤s1指出业务服务器在获取到视频片段之后,可以通过固定的编码参数(例如,设定上述目标质量类型以及该目标质量类型下的视频质量标准参数)将视频片段缩放至不同分辨率之后,可以将缩放处理后所得到的编码视频序列执行步骤s2中的预编码,进而可以在对待编码视频序列进行预编码的过程中,将统计到的预编码所产生的编码信息作为待编码视频序列的视频特征。如图9所示的步骤s4表明,业务服务器可以通过与上述目标质量类型相匹配的预测模型预测用于对待编码视频序列的进行正式编码的编码码率,进而可以根据预测得到的编码码率执行步骤s5,以得到与图9所示的视频片段相关联的多个编码码率。

其中,可以理解的是,在与多个质量类型对应的预测模型进行训练的过程中,可以大致包含样本视频序列的选取、样本视频特征的提取、质量标签信息的提取以及预测模型的训练。具体的,分布式转码系统中的第一服务器可以在获取到与多个业务场景相关联的n个样本视频序列时,将n个样本视频序列的样本视频特征作为参考视频特征,并可以获取与n个样本视频序列相关联的多个质量类型;n为正整数;一个样本视频特征为对一个样本视频序列进行预编码处理后所确定的;进一步的,第一服务器可以从多个质量类型中获取目标质量类型,获取与目标质量类型相关联的样本码率参数;样本码率参数包含k个样本码率信息;k为正整数;进一步的,第一服务器可以根据k个样本码率参数对n个样本视频序列中的每个样本视频序列进行遍历编码,得到每个样本视频序列在k个样本码率参数下的质量评估值;其中,一个质量评估值为一个样本视频序列在一个样本码率参数下所确定的;进一步的,第一服务器可以将得到的所有质量评估值作为与目标质量类型相关联的初始模型的质量标签信息,根据质量标签信息和n个参考视频特征,对初始模型进行训练,根据训练结果确定与目标质量类型相匹配的预测模型。

应当理解,在样本视频序列的选取过程中:可以确保所选取的样本能够尽量覆盖实际业务类型中所有业务场景,以保证后续训练得到的预测模型的普遍性。实际业务类型可以包括新闻、动漫、综艺、游戏、电影电视等,业务场景上可以包含一些复杂画面、简单画面,运动剧烈镜头和静止镜头等场景信息。其中,样本视频序列的规模一般可以在1万个视频片段左右。

其中,在样本视频特征的特征提取过程中,可以参照对上述图9所对应实施例中的提取视频片段的视频特征的具体过程的描述,这里将不再继续进行赘述。

在样本视频序列的质量标签信息的提取过程中:可以对每个质量类型训练一个预测模型。由于本申请实施例的目标是要通过最终训练得到的预测模型预测视频片段在目标质量类型的目标指标(即上述视频质量标准参数)下的码率参数。因此,本申请实施例在标签提取的过程中,需要通过对样本视频序列进行遍历编码的方式,得到样本视频序列在特定码率参数(例如,在[0-51]的所有码率点)下的质量评估值,进而可以建立同一样本视频序列在不同质量类型的所有编码参数下的质量评估值(这里是指质量评估分数)。比如,对于样本码率参数为第一类编码参数(例如,crf编码参数)而言,可以将量化步长(即间隔)设置为1,从而可以得到某个样本视频序列在特定质量类型下所得到码率值对应表,即一个码率值可以对应一个质量评估值,且这些得到的质量评估值均可以作为这个样本视频序列在相应样本码率参数下的质量标签信息;可选的,对于样本码率参数为第二类编码参数(例如,bitrate编码参数)而言,则可以在10kbps~5mbps的码率范围内设置10kbps的量化步长来产生一个质量标签信息。

其中,在通过上述样本视频特征对与目标质量类型相关联的初始模型进行模型训练的过程中,所采用的初始模型为多层神经网络模型,当将提取到的样本视频特征出入该多层神经网络模型之后,可以输出每个样本视频特征在指定质量指标下的码率值对应表。

其中,可以理解的是,在上述两个应用场景下所采用的切片分割规则会存在些许的不同。比如,业务服务器在获取到点播视频数据时,可以直接采用上述第一切片分割规则将获取到的视频源切分为若干个视频片段。但是,该业务服务器在获取到直播视频数据时,则无法直接采用上述第一切片分割规则将视频源切分为若干个视频片段,故而需要采用上述第二切片分割规则先从视频源中获取到具有特定序列长度的缓存视频序列,再对缓存视频序列进行场景检测,进而可以根据场景检测结果从缓存视频序列确定用于进行预编码的待编码视频序列。

本申请实施例中通过对视频源的每个视频片段中的视频内容进行一次分析,可以快速提取出与每个视频片段(即待编码视频序列)相关的视频特征,从而可以在设定好目标质量的情况下,通过预测模型准确预测出用于对每个视频片段分别进行编码的编码码率,进而可以在设定质量指标(即设定好的视频质量标准参数)的情况下,通过预测得到的不同视频片段的编码码率,可以在特定的视频质量下提高视频编码的准确性,并可以减少编码资源的浪费。

进一步地,请参见图10,是本申请实施例提供的一种视频数据处理装置的结构示意图。该视频数据处理装置1可以运行在上述图2所对应实施例中的服务器10a(即上述第二服务器)中,以在视频直播场景下,通过该服务器10a对获取到的待编码视频序列进行多路转码。可选的,该视频数据处理装置1也可以运行在上述图2所对应实施例中的服务器10b(即第一服务器)中,以在视频点播场景下,通过该服务器10b对获取到的待编码视频序列进行多路转码。进一步地,该视频数据处理装置1可以包括:质量参数获取模块10,预编码模块20,码率预测模块30和视频编码模块40;进一步的,该视频数据处理装置1还可以包括:编码码流返回模块50、拉流请求获取模块60和码流推送模块70。

质量参数获取模块10,用于获取与视频源相关联的待编码视频序列,获取与待编码视频序列相关联的视频质量标准参数;

其中,质量参数获取模块10包括:第一序列接收单元101,待编码序列确定单元102,质量参数确定单元103;可选的,视频数据处理装置还可以包含:视频源确定单元104,缓存序列确定单元105和质量参数配置单元106;

第一序列接收单元101,用于接收业务服务器分发的视频源中的第一视频序列;第一视频序列为业务服务器对视频源进行切片处理后所确定的;

待编码序列确定单元102,用于根据视频源的缩放参数信息以及第一视频序列,确定与视频源相关联的待编码视频序列;

其中,待编码序列确定单元102包括:缩放参数获取子单元1021,缩放处理子单元1022和序列确定子单元1023;

缩放参数获取子单元1021,用于获取与视频源的分辨率相关联的缩放参数信息;

缩放处理子单元1022,用于根据缩放参数信息对第一视频序列的分辨率进行缩放处理,将缩放处理后的第一视频序列确定为第二视频序列;第一视频序列的分辨率是由视频源的分辨率所确定的;

序列确定子单元1023,用于根据第二视频序列以及第二视频序列的分辨率,确定待编码视频序列。

其中,缩放参数获取子单元1021,缩放处理子单元1022和序列确定子单元1023的具体实现方式可以参见上述图3所对应实施例中对获取视频点播场景下的待编码视频序列的具体过程的描述,这里将不再继续进行赘述。

质量参数确定单元103,用于将业务服务器为第一视频序列所配置的视频质量参数,作为与待编码视频序列相关联的视频质量标准参数。

可选的,视频源确定单元104,用于接收用户终端采集并上传的初始视频数据,将接收到的初始视频数据确定为视频源;

缓存序列确定单元105,用于从视频源中获取关键视频帧,根据关键视频帧和与关键视频帧相关联的缓存序列长度,在视频源中确定用于进行场景检测的缓存视频序列,根据缓存视频序列和视频源的缩放参数信息,确定用于进行预编码的待编码视频序列;

其中,视频源包含与采集周期相关联的m个视频帧;m为正整数;

缓存序列确定单元105包括:第一确定子单元1051、缓存序列确定子单元1052、场景检测确定子单元1053、第二确定子单元1054和序列确定子单元1055;可选的,缓存序列确定单元105可以进一步包括:序列删除子单元1056、序列补齐子单元1057和切变检测子单元1058;

第一确定子单元1051,用于在视频源的m个视频帧中,将首个视频帧确定为第一关键视频帧;

缓存序列确定子单元1052,用于根据第一关键视频帧和与第一关键视频帧相关联的缓存序列长度,从m个视频帧中确定用于进行场景检测的缓存视频序列;

场景检测确定子单元1053,用于在缓存视频序列中将除第一关键视频帧之外的视频帧确定为待检测视频帧bi,根据第一关键视频帧对缓存视频序列中的待检测视频帧bi进行场景切变检测;i为大于1且小于m的正整数;

第二确定子单元1054,用于在检测到第一关键视频帧与待检测视频帧bi之间的视频内容变化度大于场景切变阈值时,将待检测视频帧bi确定为第二关键视频帧;

序列确定子单元1055,用于将第一关键视频帧与第二关键视频帧之间的视频序列作为初始视频序列,根据视频源的缩放参数信息对初始视频序列进行缩放处理,将缩放处理后的初始视频序列确定为用于进行预编码的待编码视频序列。

可选的,序列删除子单元1056,用于在缓存视频序列中删除初始视频序列,得到过渡视频序列;过渡视频序列的首个视频帧为第二关键视频帧;

序列补齐子单元1057,用于根据过渡视频序列、缓存序列长度,从视频源中获取待补齐视频序列,根据待补齐视频序列对过渡视频序列进行补齐处理;补齐处理后的过渡视频序列的序列长度与缓存序列长度相同;

切变检测子单元1058,还用于在补齐处理后的过渡视频序列中将除第二关键视频帧之外的视频帧确定为待检测视频帧dj,根据第二关键视频帧对补齐处理后的过渡视频序列中的待检测视频帧dj进行场景切变检测;j为大于1且小于m的正整数。

其中,第一确定子单元1051、缓存序列确定子单元1052、场景检测确定子单元1053、第二确定子单元1054、序列确定子单元1055、序列删除子单元1056、序列补齐子单元1057和切变检测子单元1058的具体实现方式可以参见上述图7所对应实施例中对步骤s202的描述,这里将不再继续进行赘述。

质量参数配置单元106,用于基于用户终端的配置信息,为待编码视频序列配置视频质量标准参数。

其中,可以理解的是,在视频点播场景下,视频数据处理装置1可以通过第一序列接收单元101,待编码序列确定单元102,质量参数确定单元103确定与点播视频数据相关联的待编码视频序列;可选的,在视频直播场景下,视频数据处理装置可以通过视频源确定单元104,缓存序列确定单元105和质量参数配置单元106确定与直播视频数据相关联的待编码视频序列。

预编码模块20,用于根据视频质量标准参数对待编码视频序列进行预编码处理,得到预编码视频序列,根据预编码视频序列确定待编码视频序列对应的视频特征;

其中,预编码模块20包括:编码器确定单元201,预编码序列确定单元202,编码信息确定单元203和视频特征确定单元204;

编码器确定单元201,用于根据视频质量标准参数,获取用于对待编码视频序列进行预编码的初始编码器;

预编码序列确定单元202,用于根据初始编码器对待编码视频序列进行预编码处理,得到预编码视序列;预编码视频序列中包含关键视频帧和预测视频帧;

编码信息确定单元203,用于根据关键视频帧、预测视频帧、预编码视频序列的分辨率以及预编码视频序列的码率,确定预编码视频序列的编码信息;

其中,预测视频帧中包含前向预测帧;

编码信息确定单元203包括:参考帧确定子单元2031、数量确定子单元2032、容量确定子单元2033、复杂度确定子单元2034和信息确定子单元2035;

参考帧确定子单2031,用于获取对前向预测帧进行帧间压缩时所选取的关键视频帧,将选取到的关键视频帧确定为前向预测帧对应的参考视频帧;

数量确定子单元2032,用于将参考视频帧的总选取数量确定为第一数量,将关键视频帧的总数量确定为第二数量,将前向预测帧的总数量确定为第三数量;

容量确定子单元2033,用于根据关键视频帧对应的数据容量、第二数量,确定关键视频帧的第一平均数据容量,根据前向预测帧对应的数据容量、第三数量,确定前向预测帧的第二平均数据容量;

复杂度确定子单元2034,用于从关键视频帧对应的数据容量中获取最大数据容量,将第一平均数据容量与最大数据容量之间的比值,作为预编码视频序列的空域复杂度,将第二平均数据容量与第一平均数据容量之间的比值,确定为预编码视频序列的时域复杂度;

信息确定子单元2035,用于将第一数量、第二数量、第三数量、空域复杂度、时域复杂度以及预编码码视频序列的分辨率和预编码码视频序列的码率,确定为预编码视频序列的编码信息。

其中,参考帧确定子单元2031、数量确定子单元2032、容量确定子单元2033、复杂度确定子单元2034和信息确定子单元的具体实现方式可以参见上述对编码信息的描述,这里将不再继续进行赘述。

视频特征确定单元204,用于将编码信息确定为待编码视频序列对应的视频特征。

其中,编码器确定单元201,预编码序列确定单元202,编码信息确定单元203和视频特征确定单元204的具体实现方式可以参见上述图3所对应实施例中获取待编码视频序列的视频特征的描述,这里将不再进行赘述。

码率预测模块30,用于根据视频质量标准参数以及视频特征,预测与待编码视频序列相关联的编码码率;

其中,码率预测模块30包括:目标模型确定单元301,匹配度确定单元302和编码码率确定单元303;可选的,码率预测模块30还可以包含:样本获取单元304,码率参数获取单元305,遍历编码单元306和模型训练单元307;

目标模型确定单元301,用于获取视频质量标准参数对应的目标质量类型,在与多个质量类型相关联的预测模型库中,将与目标质量类型相匹配的预测模型作为目标预测模型;

匹配度确定单元302,用于将视频特征输入目标预测模型,输出视频特征分别与目标预测模型中的多个参考视频特征之间的匹配度;

编码码率确定单元303,用于在匹配度中将与视频特征具有最高匹配度的参考视频特征作为目标参考视频特征,将与目标参考视频特征相关联的质量标签信息所对应的样本码率信息,作为与待编码视频序列相关联的编码码率。

可选的,样本获取单元304,用于获取与多个业务场景相关联的n个样本视频序列,将n个样本视频序列的样本视频特征作为参考视频特征,获取与n个样本视频序列相关联的多个质量类型;n为正整数;一个样本视频特征为对一个样本视频序列进行预编码处理后所确定的;

码率参数获取单元305,用于从多个质量类型中获取目标质量类型,获取与目标质量类型相关联的样本码率参数;样本码率参数包含k个样本码率信息;k为正整数;

遍历编码单元306,用于根据k个样本码率参数对n个样本视频序列中的每个样本视频序列进行遍历编码,得到每个样本视频序列在k个样本码率参数下的质量评估值;一个质量评估值为一个样本视频序列在一个样本码率参数下所确定的;

模型训练单元307,用于将得到的所有质量评估值作为与目标质量类型相关联的初始模型的质量标签信息,根据质量标签信息和n个参考视频特征,对初始模型进行训练,根据训练结果确定与目标质量类型相匹配的预测模型。

其中,目标模型确定单元301,匹配度确定单元302和编码码率确定单元303的具体实现方式可以参见上述图3所对应实施例中对编码码率的描述,这里将不再继续进行赘述。可选的,样本获取单元304,码率参数获取单元305,遍历编码单元306和模型训练单元307的具体实现方式可以参见上述图9所对应实施例中对初始训练模型的描述,这里将不再继续进行赘述。

视频编码模块40,用于根据编码码率对待编码视频序列进行编码处理,得到与视频源相关联的编码视频序列。

可选的,其中,视频数据处理装置1可以运行于分布式服务器集群中的第一服务器;业务服务器为分布式服务器集群中的第二服务器;

编码码流返回模块50,用于将编码视频序列作为与缩放参数信息相关联的编码码流返回给第二服务器,以使第二服务器在接收到分布式服务器集群中的所有第一服务器针对同一缩放参数信息所返回的编码码流时,根据与切片处理后的视频源相关联的切片标识信息对接收到的所有编码码流进行合并处理。

可选的,其中,用户终端为虚拟直播间中的主播终端,初始视频数据为主播终端所采集到的直播视频数据;

拉流请求获取模块60,用于在获取到虚拟直播间中的观众终端的拉流请求时,获取拉流请求中的播放分辨率;

码流推送模块70,用于在编码视频序列中查找与播放分别率相匹配的缩放参数信息所对应的目标编码视频序列,将目标编码视频序列作为编码码流推送给观众终端,以使观众终端对编码码流进行解码处理后得到目标编码视频序列。

其中,质量参数获取模块10,预编码模块20,码率预测模块30和视频编码模块40的具体实现方式可以参见上述图3所对应实施例中对步骤s101-步骤s104的描述,这里将不再继续进行赘述。进一步的,编码码流返回模块50、拉流请求获取模块60和码流推送模块70可以参见上述图7所对应实施例中对不同业务场景下得到编码视频序列的描述,这里将不再继续进行赘述。

可以理解的是,本申请实施例中的视频数据处理装置1可执行前文图3或图7所对应实施例中对视频数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

进一步地,请参见图11,是本申请实施例提供的一种计算机设备的结构示意图。如图11所示,该计算机设备1000可以为上述图2所对应实施例中的服务器10a,也可以为上述图2所对应实施例中的服务器10b,这里将不对其进行限定。该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,该计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(display)、键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1004可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图11所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。

其中,该计算机设备1000中的可选用户接口1003还可以包括显示屏(display)、键盘(keyboard)。在图11所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:

获取与视频源相关联的待编码视频序列,获取与待编码视频序列相关联的视频质量标准参数;

根据视频质量标准参数对待编码视频序列进行预编码处理,得到预编码视频序列,根据预编码视频序列确定待编码视频序列对应的视频特征;

根据视频质量标准参数以及视频特征,预测与待编码视频序列相关联的编码码率;

根据编码码率对待编码视频序列进行编码处理,得到与视频源相关联的编码视频序列。

应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3或图7所对应实施例中对视频数据处理方法的描述,也可执行前文图10所对应实施例中对视频数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

此外,这里需要指出的是:本申请实施例还提供了一种计算机存储介质,且计算机存储介质中存储有前文提及的视频数据处理装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3或图7所对应实施例中对视频数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。


技术特征:

1.一种视频数据处理方法,其特征在于,包括:

获取与视频源相关联的待编码视频序列,获取与所述待编码视频序列相关联的视频质量标准参数;

根据所述视频质量标准参数对所述待编码视频序列进行预编码处理,得到预编码视频序列,根据所述预编码视频序列确定所述待编码视频序列对应的视频特征;

根据所述视频质量标准参数以及所述视频特征,预测与所述待编码视频序列相关联的编码码率;

根据所述编码码率对所述待编码视频序列进行编码处理,得到与所述视频源相关联的编码视频序列。

2.根据权利要求1所述的方法,其特征在于,所述获取与视频源相关联的待编码视频序列,获取与所述待编码视频序列相关联的视频质量标准参数,包括:

接收业务服务器分发的视频源中的第一视频序列;所述第一视频序列为所述业务服务器对所述视频源进行切片处理后所确定的;

根据所述视频源的缩放参数信息以及所述第一视频序列,确定与所述视频源相关联的待编码视频序列;

将所述业务服务器为所述第一视频序列所配置的视频质量参数,作为与所述待编码视频序列相关联的视频质量标准参数。

3.根据权利要求2所述的方法,其特征在于,所述根据所述视频源的缩放参数信息以及所述第一视频序列,确定与所述视频源相关联的待编码视频序列,包括:

获取与所述视频源的分辨率相关联的缩放参数信息;

根据所述缩放参数信息对所述第一视频序列的分辨率进行缩放处理,将缩放处理后的第一视频序列确定为第二视频序列;所述第一视频序列的分辨率是由所述视频源的分辨率所确定的;

根据所述第二视频序列以及所述第二视频序列的分辨率,确定待编码视频序列。

4.根据权利要求2所述的方法,其特征在于,所述根据所述视频质量标准参数对所述待编码视频序列进行预编码处理,得到预编码视频序列,根据所述预编码视频序列确定所述待编码视频序列对应的视频特征,包括:

根据所述视频质量标准参数,获取用于对所述待编码视频序列进行预编码的初始编码器;

根据所述初始编码器对所述待编码视频序列进行预编码处理,得到预编码视序列;所述预编码视频序列中包含关键视频帧和预测视频帧;

根据所述关键视频帧、所述预测视频帧、所述预编码视频序列的分辨率以及所述预编码视频序列的码率,确定所述预编码视频序列的编码信息;

将所述编码信息确定为所述待编码视频序列对应的视频特征。

5.根据权利要求4所述的方法,其特征在于,所述预测视频帧中包含前向预测帧;

所述根据所述关键视频帧、所述预测视频帧、所述预编码视频序列的分辨率以及所述预编码视频序列的码率,确定所述预编码视频序列的编码信息,包括:

获取对所述前向预测帧进行帧间压缩时所选取的关键视频帧,将选取到的关键视频帧确定为所述前向预测帧对应的参考视频帧;

将所述参考视频帧的总选取数量确定为第一数量,将所述关键视频帧的总数量确定为第二数量,将所述前向预测帧的总数量确定为第三数量;

根据所述关键视频帧对应的数据容量、所述第二数量,确定所述关键视频帧的第一平均数据容量,根据所述前向预测帧对应的数据容量、所述第三数量,确定所述前向预测帧的第二平均数据容量;

从所述关键视频帧对应的数据容量中获取最大数据容量,将所述第一平均数据容量与所述最大数据容量之间的比值,作为所述预编码视频序列的空域复杂度,将所述第二平均数据容量与所述第一平均数据容量之间的比值,确定为所述预编码视频序列的时域复杂度;

将所述第一数量、所述第二数量、所述第三数量、所述空域复杂度、所述时域复杂度以及所述预编码码视频序列的分辨率和所述预编码码视频序列的码率,确定为所述预编码视频序列的编码信息。

6.根据权利要求2所述的方法,其特征在于,所述根据所述视频质量标准参数以及所述视频特征,预测与所述待编码视频序列相关联的编码码率,包括:

获取所述视频质量标准参数对应的目标质量类型,在与多个质量类型相关联的预测模型库中,将与所述目标质量类型相匹配的预测模型作为目标预测模型;

将所述视频特征输入所述目标预测模型,输出所述视频特征分别与所述目标预测模型中的多个参考视频特征之间的匹配度;

在所述匹配度中将与所述视频特征具有最高匹配度的参考视频特征作为目标参考视频特征,将与所述目标参考视频特征相关联的质量标签信息所对应的样本码率信息,作为与所述待编码视频序列相关联的编码码率。

7.根据权利要求6所述的方法,其特征在于,还包括:

获取与多个业务场景相关联的n个样本视频序列,将所述n个样本视频序列的样本视频特征作为参考视频特征,获取与所述n个样本视频序列相关联的多个质量类型;n为正整数;一个样本视频特征为对一个样本视频序列进行预编码处理后所确定的;

从所述多个质量类型中获取目标质量类型,获取与所述目标质量类型相关联的样本码率参数;所述样本码率参数包含k个样本码率信息;k为正整数;

根据所述k个样本码率参数对所述n个样本视频序列中的每个样本视频序列进行遍历编码,得到所述每个样本视频序列在所述k个样本码率参数下的质量评估值;一个质量评估值为一个样本视频序列在一个样本码率参数下所确定的;

将得到的所有质量评估值作为与目标质量类型相关联的初始模型的质量标签信息,根据所述质量标签信息和n个参考视频特征,对所述初始模型进行训练,根据训练结果确定与所述目标质量类型相匹配的预测模型。

8.根据权利要求2所述的方法,其特征在于,所述方法由分布式服务器集群中的第一服务器执行;所述业务服务器为所述分布式服务器集群中的第二服务器;

所述方法还包括:

将所述编码视频序列作为与所述缩放参数信息相关联的编码码流返回给所述第二服务器,以使所述第二服务器在接收到所述分布式服务器集群中的所有第一服务器针对同一缩放参数信息所返回的编码码流时,根据与切片处理后的视频源相关联的切片标识信息对接收到的所有编码码流进行合并处理。

9.根据权利要求1所述的方法,其特征在于,所述获取与视频源相关联的待编码视频序列,获取与所述待编码视频序列相关联的视频质量标准参数,包括:

接收用户终端采集并上传的初始视频数据,将接收到的初始视频数据确定为视频源;

从所述视频源中获取关键视频帧,根据所述关键视频帧和与所述关键视频帧相关联的缓存序列长度,在所述视频源中确定用于进行场景检测的缓存视频序列,根据所述缓存视频序列和所述视频源的缩放参数信息,确定用于进行预编码的待编码视频序列;

基于所述用户终端的配置信息,为所述待编码视频序列配置视频质量标准参数。

10.根据权利要求9所述的方法,其特征在于,所述视频源包含与采集周期相关联的m个视频帧;所述m为正整数;

所述从所述视频源中获取关键视频帧,根据所述关键视频帧和与所述关键视频帧相关联的缓存序列长度,在所述视频源中确定用于进行场景检测的缓存视频序列,根据所述缓存视频序列和所述视频源的缩放参数信息,确定用于进行预编码的待编码视频序列,包括:

在所述视频源的所述m个视频帧中,将首个视频帧确定为第一关键视频帧;

根据所述第一关键视频帧和与所述第一关键视频帧相关联的缓存序列长度,从所述m个视频帧中确定用于进行场景检测的缓存视频序列;

在所述缓存视频序列中将除第一关键视频帧之外的视频帧确定为待检测视频帧bi,根据所述第一关键视频帧对所述缓存视频序列中的待检测视频帧bi进行场景切变检测;i为大于1且小于m的正整数;

在检测到所述第一关键视频帧与所述待检测视频帧bi之间的视频内容变化度大于场景切变阈值时,将所述待检测视频帧bi确定为第二关键视频帧;

将所述第一关键视频帧与所述第二关键视频帧之间的视频序列作为初始视频序列,根据所述视频源的缩放参数信息对所述初始视频序列进行缩放处理,将缩放处理后的初始视频序列确定为用于进行预编码的待编码视频序列。

11.根据权利要求10所述的方法,其特征在于,所述方法还包括:

在所述缓存视频序列中删除所述初始视频序列,得到过渡视频序列;所述过渡视频序列的首个视频帧为所述第二关键视频帧;

根据所述过渡视频序列、所述缓存序列长度,从所述视频源中获取待补齐视频序列,根据所述待补齐视频序列对所述过渡视频序列进行补齐处理;补齐处理后的过渡视频序列的序列长度与所述缓存序列长度相同;

在所述补齐处理后的过渡视频序列中将除所述第二关键视频帧之外的视频帧确定为待检测视频帧dj,根据所述第二关键视频帧对所述补齐处理后的过渡视频序列中的待检测视频帧dj进行场景切变检测;j为大于1且小于所述m的正整数。

12.根据权利要求9所述的方法,其特征在于,所述用户终端为虚拟直播间中的主播终端,所述初始视频数据为所述主播终端所采集到的直播视频数据;

所述方法还包括:

在获取到所述虚拟直播间中的观众终端的拉流请求时,获取所述拉流请求中的播放分辨率;

在所述编码视频序列中查找与所述播放分别率相匹配的缩放参数信息所对应的目标编码视频序列,将所述目标编码视频序列作为编码码流推送给所述观众终端,以使所述观众终端对所述编码码流进行解码处理后得到所述目标编码视频序列。

13.一种视频数据处理装置,其特征在于,包括:

质量参数获取模块,用于获取与视频源相关联的待编码视频序列,获取与所述待编码视频序列相关联的视频质量标准参数;

预编码模块,用于根据所述视频质量标准参数对所述待编码视频序列进行预编码处理,得到预编码视频序列,根据所述预编码视频序列确定所述待编码视频序列对应的视频特征;

码率预测模块,用于根据所述视频质量标准参数以及所述视频特征,预测与所述待编码视频序列相关联的编码码率;

视频编码模块,用于根据所述编码码率对所述待编码视频序列进行编码处理,得到与所述视频源相关联的编码视频序列。

14.一种计算机设备,其特征在于,包括:处理器、存储器和网络接口;

所述处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如权利要求1-12任一项所述的方法。

15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1-12任一项所述的方法。

技术总结
本申请实施例公开一种视频数据处理方法、装置及存储介质,其中,方法包括:获取与视频源相关联的待编码视频序列,获取与待编码视频序列相关联的视频质量标准参数;根据视频质量标准参数对待编码视频序列进行预编码处理,得到预编码视频序列,根据预编码视频序列确定待编码视频序列对应的视频特征;根据视频质量标准参数以及视频特征,预测与待编码视频序列相关联的编码码率;根据编码码率对待编码视频序列进行编码处理,得到与视频源相关联的编码视频序列。采用本申请实施例可以提高视频编码的准确性,并可以减少编码资源的浪费。

技术研发人员:吴景然;许思焱;赵俊;李浩;李雅卿;涂承杰;朱子荣;汪亮
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2020.01.22
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-16399.html

最新回复(0)