CN111294612B - 一种多媒体数据处理方法、系统以及存储介质 - Google Patents

一种多媒体数据处理方法、系统以及存储介质 Download PDF

Info

Publication number
CN111294612B
CN111294612B CN202010075681.3A CN202010075681A CN111294612B CN 111294612 B CN111294612 B CN 111294612B CN 202010075681 A CN202010075681 A CN 202010075681A CN 111294612 B CN111294612 B CN 111294612B
Authority
CN
China
Prior art keywords
video
frame
sequence
slice
transcoded
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.)
Active
Application number
CN202010075681.3A
Other languages
English (en)
Other versions
CN111294612A (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010075681.3A priority Critical patent/CN111294612B/zh
Publication of CN111294612A publication Critical patent/CN111294612A/zh
Application granted granted Critical
Publication of CN111294612B publication Critical patent/CN111294612B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23412Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs for generating or manipulating the scene composition of objects, e.g. MPEG-4 objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/142Detection of scene cut or scene change
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/242Synchronization processes, e.g. processing of PCR [Program Clock References]

Abstract

本申请实施例公开一种多媒体数据处理方法、系统以及存储介质,其中,方法包括:获取源视频文件,从源视频文件中获取视频数据源和关联数据源;获取与视频数据源相关联的场景关键帧,根据场景关键帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的视频切片;在获取到与视频切片相关联的编码参数时,对视频切片进行转码处理,得到视频切片相关联的视频转码序列;根据视频转码序列的时长信息,对关联数据源进行切片,得到与视频转码序列具有相同时长的关联切片。采用本申请实施例可以提高同一视频切片内的视频质量的稳定性,并可以确保视频转码后的音画同步。

Description

一种多媒体数据处理方法、系统以及存储介质
技术领域
本申请涉及互联网技术领域,尤其涉及一种多媒体数据处理方法、系统以及存储介质。
背景技术
目前,对于一些由帧序列构成的视频数据,可以通过同一编码器对这些视频数据进行切片,以得到具备不同复杂度的视频切片,然而现有技术在对这些视频切片进行视频编码的过程中,通常会采用固定的编码参(例如,固定的编码码率)进行无差别的编码。比如,对于具有不同复杂度的视频数据A和视频数据B而言,会采用固定的编码码率对这两个视频数据进行视频编码,以至于视频编码后所得到的视频数据的视频质量之间会存在较大的波动,难以确保视频转码后的视频质量的稳定性。
发明内容
本申请实施例提供一种多媒体数据处理方法、系统以及存储介质,可以确保视频质量的稳定性,并可以保障音视频编码的音画同步。
本申请实施例一方面提供了一种多媒体数据处理方法,方法包括:
获取源视频文件,从源视频文件中获取视频数据源和关联数据源;
获取与视频数据源相关联的场景关键帧,根据场景关键帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的视频切片;
在获取到与视频切片相关联的编码参数时,对视频切片进行转码处理,得到视频切片相关联的视频转码序列;
根据视频转码序列的时长信息,对关联数据源进行切片,得到与视频转码序列具有相同时长的关联切片。
其中,获取源视频文件,从源视频文件中获取视频数据源和关联数据源,包括:
获取与源视频数据相关联的标准参数配置信息;标准参数配置信息包含目标文件格式和与目标文件格式相关联的编码等级;
根据编码等级对应的第一编码器将源视频数据的视频文件格式由初始文件格式调整为目标文件格式,将目标文件格式对应的源视频数据作为源视频文件;
根据源视频文件对应的多媒体类型,对源视频文件进行数据分离,得到与源视频文件相关联的视频数据源和关联数据源。
其中,获取与视频数据源相关联的场景关键帧,根据场景关键帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的视频切片,包括:
调用第一编码器中的场景切分线程,对视频数据源进行场景检测,根据场景检测结果确定与视频数据源相关联的场景关键帧;
根据场景关键帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的视频切片。
其中,调用第一编码器中的场景切分线程,对视频数据源进行场景检测,根据场景检测结果确定与视频数据源相关联的场景关键帧,包括:
对视频数据源对应的初始视频序列进行下采样处理,将下采样后的初始视频序列确定为视频数据源对应的待处理视频序列;待处理视频序列和初始视频序列中均包含N个视频帧;N为正整数;
从N个视频帧中遍历获取两个相邻的视频帧;两个相邻的视频帧包含视频帧Mi-1和视频帧Mi;i为大于1且小于等于N的正整数;
调用第一编码器中的场景切分线程确定视频帧Mi和视频帧Mi-1之间的编码相似度;
在编码相似度大于场景切变阈值时,为视频帧Mi设置场景切变标识,将具有场景切变标识的视频帧Mi确定为与视频数据源相关联的场景关键帧。
其中,调用第一编码器中的场景切分线程确定视频帧Mi和视频帧Mi-1之间的编码相似度,包括:
获取第一编码器中的场景切分线程;
调用场景切分线程对视频帧Mi进行帧内编码,得到第一帧内编码帧,根据第一帧内编码帧确定视频帧Mi对应的第一代价值;
获取视频帧Mi-1对应的第二帧内编码帧,将第二帧内编码帧作为视频帧Mi的参考视频帧,根据参考视频帧对视频帧Mi进行帧间编码,得到视频帧Mi对应的第二代价值;
将第一代价值与第二代价值之间的比值,确定为视频帧Mi和视频帧Mi-1之间的编码相似度。
其中,场景关键帧包含第一即时解码刷新帧;
根据场景关键帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的视频切片,包括:
根据场景关键帧中的第一即时解码刷新帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的至少一个初始帧组;
获取第一编码器相关联的最大帧组长度,在至少一个帧组中查找帧组长度大于最大帧组长度的初始帧组,将查找到的初始帧组作为第一帧组,根据最大帧组长度在第一帧组中添加第二即时解码刷新帧;
根据第二即时解码刷新帧对第一帧组进行切片,得到第一帧组对应的第二帧组;第二帧组的帧组长度之和等于第一帧组的帧组长度;
将至少一个初始帧组中除第一帧组之外的初始帧组,以及第二帧组,确定为与初始视频序列相关联的视频切片。
其中,方法还包括:
获取与视频切片相关联的视频属性参数,基于视频属性参数确定与视频切片相关联的待编码视频序列;
对待编码视频序列进行预编码处理,得到预编码视频序列,根据预编码视频序列确定待编码视频序列对应的视频特征;
获取与待编码视频序列相关联的视频质量标准参数,根据视频质量标准参数以及视频特征,预测待编码视频序列的编码参数。
其中,获取与初始视频序列相关联的视频属性参数,基于视频属性参数确定与视频切片相关联的待编码视频序列,包括:
获取与视频切片的分辨率相关联的缩放参数信息;视频切片的分辨率是由初始视频序列的分辨率所确定的;
根据缩放参数信息对视频切片的分辨率进行缩放处理,将缩放处理后的视频切片确定为待编码视频序列。
其中,对待编码视频序列进行预编码处理,得到预编码视频序列,根据预编码视频序列确定待编码视频序列对应的视频特征,包括:
获取用于对待编码视频序列进行预编码的第二编码器,关闭第二编码器中的场景切分线程,根据关闭场景切分线程后的第二编码器对待编码视频序列进行预编码处理,得到预编码视序列;预编码视频序列中包含场景关键帧和预测视频帧;
根据场景关键帧、预测视频帧、预编码视频序列的分辨率以及预编码视频序列的码率,确定预编码视频序列的编码信息,将编码信息确定为待编码视频序列对应的视频特征。
其中,缩放参数信息包含第一分辨率和第二分辨率;关联切片包含音频切片;
方法还包括:
获取同一分辨率相关联的视频转码序列,根据场景关键帧对同一分辨率相关联的视频转码序列进行合并处理,得到与第一分辨率相关联的第一转码视频流和与第二分辨率相关联的第二转码视频流;
对音频切片中的每个音频信号进行合并处理,得到与每个音频信号相关联的目标音频信号;
获取与目标音频信号相关联的第三编码器,通过第三编码器的对目标音频信号进行转码处理,得到目标音频信号对应的转码音频流;
根据转码音频流、第一转码视频流和第二转码视频流,确定与源视频文件相关联的转码视频文件。
其中,获取与目标音频信号相关联的第三编码器,通过第三编码器的对目标音频信号进行转码处理,得到目标音频信号对应的转码音频流,包括:
获取与目标音频信号相关联的第三编码器,根据第三编码器对应的初始化参数,确定用于对目标音频信号进行切片的起始位置和结束位置;
根据起始位置和结束位置对目标音频信号进行切片,得到与目标音频信号相关联的待编码音频分片;
对目标音频信号中的每个待编码音频分片进行编码处理,得到每个待编码音频分片对应的编码音频流,将每个待编码音频分片对应的编码音频流进行合并处理,得到目标音频信号对应的转码音频流。
其中,根据转码音频流、第一转码视频流和第二转码视频流,确定与源视频文件相关联的转码视频文件,包括:
根据转码音频流与第一转码视频流之间的编码时延,对转码视频流和第一转码视频流进行封装,得到第一转码视频流对应的第一转码视频文件;
根据转码音频流与第二转码视频流之间的编码时延,对转码视频流和第二转码视频流进行封装,得到第二转码视频流对应的第二转码视频文件;
将第一转码视频文件和第二转码视频文件,确定与源视频文件相关联的转码视频文件。
本申请实施例一方面提供了一种多媒体数据处理装置,装置包括:
源文件获取模块,用于获取源视频文件,从源视频文件中获取视频数据源和关联数据源;
关键帧获取模块,用于获取与视频数据源相关联的场景关键帧,根据场景关键帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的视频切片;
视频转码模块,用于在获取到与视频切片相关联的编码参数时,对视频切片进行转码处理,得到视频切片相关联的视频转码序列;
关联切片确定模块,用于根据视频转码序列的时长信息,对关联数据源进行切片,得到与视频转码序列具有相同时长的关联切片。
其中,源文件获取模块包括:
标准参数获取单元,用于获取与源视频数据相关联的标准参数配置信息;标准参数配置信息包含目标文件格式和与目标文件格式相关联的编码等级;
文件格式调整单元,用于根据编码等级对应的第一编码器将源视频数据的视频文件格式由初始文件格式调整为目标文件格式,将目标文件格式对应的源视频数据作为源视频文件;
数据分离单元,用于根据源视频文件对应的多媒体类型,对源视频文件进行数据分离,得到与源视频文件相关联的视频数据源和关联数据源。
其中,关键帧获取模块包括:
场景检测单元,用于调用第一编码器中的场景切分线程,对视频数据源进行场景检测,根据场景检测结果确定与视频数据源相关联的场景关键帧;
视频切片单元,用于根据场景关键帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的视频切片。
其中,场景检测单元包括:
下采样子单元,用于对视频数据源对应的初始视频序列进行下采样处理,将下采样后的初始视频序列确定为视频数据源对应的待处理视频序列;待处理视频序列和初始视频序列中均包含N个视频帧;N为正整数;
遍历获取子单元,用于从N个视频帧中遍历获取两个相邻的视频帧;两个相邻的视频帧包含视频帧Mi-1和视频帧Mi;i为大于1且小于等于N的正整数;
相似度确定子单元,用于调用第一编码器中的场景切分线程确定视频帧Mi和视频帧Mi-1之间的编码相似度;
关键帧确定子单元,用于在编码相似度大于场景切变阈值时,为视频帧Mi设置场景切变标识,将具有场景切变标识的视频帧Mi确定为与视频数据源相关联的场景关键帧。
其中,相似度确定子单元包括:
切分线程获取子单元,用于获取第一编码器中的场景切分线程;
帧内编码子单元,用于调用场景切分线程对视频帧Mi进行帧内编码,得到第一帧内编码帧,根据第一帧内编码帧确定视频帧Mi对应的第一代价值;
帧间编码子单元,用于获取视频帧Mi-1对应的第二帧内编码帧,将第二帧内编码帧作为视频帧Mi的参考视频帧,根据参考视频帧对视频帧Mi进行帧间编码,得到视频帧Mi对应的第二代价值;
相似度确定子单元,用于将第一代价值与第二代价值之间的比值,确定为视频帧Mi和视频帧Mi-1之间的编码相似度。
其中,场景关键帧包含第一即时解码刷新帧;
视频切片单元包括:
第一切片子单元,用于根据场景关键帧中的第一即时解码刷新帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的至少一个初始帧组;
帧组查找子单元,用于获取第一编码器相关联的最大帧组长度,在至少一个帧组中查找帧组长度大于最大帧组长度的初始帧组,将查找到的初始帧组作为第一帧组,根据最大帧组长度在第一帧组中添加第二即时解码刷新帧;
第二切片子单元,用于根据第二即时解码刷新帧对第一帧组进行切片,得到第一帧组对应的第二帧组;第二帧组的帧组长度之和等于第一帧组的帧组长度;
视频切片确定子单元,用于将至少一个初始帧组中除第一帧组之外的初始帧组,以及第二帧组,确定为与初始视频序列相关联的视频切片。
其中,装置还包括:
属性参数获取模块,用于获取与视频切片相关联的视频属性参数,基于视频属性参数确定与视频切片相关联的待编码视频序列;
预编码模块,用于对待编码视频序列进行预编码处理,得到预编码视频序列,根据预编码视频序列确定待编码视频序列对应的视频特征;
编码参数预测模块,用于获取与待编码视频序列相关联的视频质量标准参数,根据视频质量标准参数以及视频特征,预测待编码视频序列的编码参数。
其中,属性参数获取模块包括:
缩放参数获取单元,用于获取与视频切片的分辨率相关联的缩放参数信息;视频切片的分辨率是由初始视频序列的分辨率所确定的;
分辨率缩放单元,用于根据缩放参数信息对视频切片的分辨率进行缩放处理,将缩放处理后的视频切片确定为待编码视频序列。
其中,预编码模块包括:
预编码单元,用于获取用于对待编码视频序列进行预编码的第二编码器,关闭第二编码器中的场景切分线程,根据关闭场景切分线程后的第二编码器对待编码视频序列进行预编码处理,得到预编码视序列;预编码视频序列中包含场景关键帧和预测视频帧;
视频特征确定单元,用于根据场景关键帧、预测视频帧、预编码视频序列的分辨率以及预编码视频序列的码率,确定预编码视频序列的编码信息,将编码信息确定为待编码视频序列对应的视频特征。
其中,缩放参数信息包含第一分辨率和第二分辨率;关联切片包含音频切片;
装置还包括:
视频序列合并模块,用于获取同一分辨率相关联的视频转码序列,根据场景关键帧对同一分辨率相关联的视频转码序列进行合并处理,得到与第一分辨率相关联的第一转码视频流和与第二分辨率相关联的第二转码视频流;
音频信号合并模块,用于对音频切片中的每个音频信号进行合并处理,得到与每个音频信号相关联的目标音频信号;
音频转码模块,用于获取与目标音频信号相关联的第三编码器,通过第三编码器的对目标音频信号进行转码处理,得到目标音频信号对应的转码音频流;
转码文件确定模块,用于根据转码音频流、第一转码视频流和第二转码视频流,确定与源视频文件相关联的转码视频文件。
其中,音频转码模块包括:
切片位置确定单元,用于获取与目标音频信号相关联的第三编码器,根据第三编码器对应的初始化参数,确定用于对目标音频信号进行切片的起始位置和结束位置;
音频分片确定单元,用于根据起始位置和结束位置对目标音频信号进行切片,得到与目标音频信号相关联的待编码音频分片;
编码合并单元,用于对目标音频信号中的每个待编码音频分片进行编码处理,得到每个待编码音频分片对应的编码音频流,将每个待编码音频分片对应的编码音频流进行合并处理,得到目标音频信号对应的转码音频流。
其中,转码文件确定模块包括:
第一封装单元,用于根据转码音频流与第一转码视频流之间的编码时延,对转码视频流和第一转码视频流进行封装,得到第一转码视频流对应的第一转码视频文件;
第二封装单元,用于根据转码音频流与第二转码视频流之间的编码时延,对转码视频流和第二转码视频流进行封装,得到第二转码视频流对应的第二转码视频文件;
转码文件确定单元,用于将第一转码视频文件和第二转码视频文件,确定与源视频文件相关联的转码视频文件。
本申请实施例一方面提供了一种计算机设备,计算机设备包括:处理器、存储器以及网络接口;
处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,存储器用于存储程序代码,处理器用于调用程序代码,以执行如本申请实施例一方面中的方法。
本申请实施例一方面提供了一种计算机存储介质,计算机存储介质存储有计算机程序,计算机程序包括程序指令,当处理器执行程序指令时执行如本申请实施例一方面中的方法。
本申请实施例一方面提供了一种多媒体数据处理方法,包括:
第一服务器获取源视频文件,从源视频文件中获取视频数据源和关联数据源;
第一服务器获取与视频数据源相关联的场景关键帧,根据场景关键帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的视频切片,将视频切片分发给第二服务器;
第二服务器在获取到与视频切片相关联的编码参数时,对视频切片进行转码处理,得到视频切片相关联的视频转码序列;
第三服务器接收第一服务器分发的关联数据源,并在获取到第二服务器发送的视频转码序列的时长信息时,对关联数据源进行切片,得到与视频转码序列具有相同时长的关联切片。
本申请实施例一方面提供一种视频数据处理系统,系统包括:分布式转码系统中的第一服务器、第二服务器和第三服务器;
第一服务器,用于获取源视频文件,从源视频文件中获取视频数据源和关联数据源;
第一服务器,还用于获取与视频数据源相关联的场景关键帧,根据场景关键帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的视频切片,将视频切片分发给第二服务器;
第二服务器,用于在获取到与视频切片相关联的编码参数时,对视频切片进行转码处理,得到视频切片相关联的视频转码序列;
第三服务器,用于接收第一服务器分发的关联数据源,并在获取到第二服务器发送的视频转码序列的时长信息时,对关联数据源进行切片,得到与视频转码序列具有相同时长的关联切片。
本申请实施例在获取到源视频文件时,可以从源视频文件中获取视频数据源和关联数据源;进一步的,获取与视频数据源相关联的场景关键帧,根据场景关键帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的视频切片;进一步的,在获取到与视频切片相关联的编码参数时,对视频切片进行转码处理,得到视频切片相关联的视频转码序列;进一步的,根据视频转码序列的时长信息,对关联数据源进行切片,得到与视频转码序列具有相同时长的关联切片。由此可见,本申请实施例在从源视频文件中分离出视频数据源和关联数据源时,可以通过分镜头(即场景检测)的方式对原视频数据源中的视频内容进行一次分析,以准确定位到与视频数据源相关联的场景关键帧,此时,本申请实施例可以进一步根据场景关键帧划分出相应场景对应的视频切片,从而可以在一个视频切片对应一个场景的情况下,有效地确保同一视频切片中的视频内容的复杂度的单一性,进而可以在视频转码时提高视频质量的稳定性。另外,在数据分离(例如,音视频分离)的情况下,利用转码后的视频转码序列的时长信息对关联数据源(例如,音频数据源等)进行切片处理,可以确保转码后的音视频的数据同步(例如,音画同步)。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构的结构示意图;
图2是本申请实施例提供的一种分布式转码系统中的分布式转码的场景示意图;
图3是本申请实施例提供的一种多媒体数据处理方法的流程示意图;
图4是本申请实施例提供的一种确定场景关键帧的场景示意图;
图5是本申请实施例提供的一种确定视频切片的场景示意图;
图6是本申请实施例提供的一种获取视频转码序列的场景示意图;
图7是本申请实施例提供的一种多媒体数据处理方法的示意图;
图8是本申请实施例提供的一种多媒体数据处理方法的交互时序图;
图9是本申请实施例提供的一种分布式整体框架的结构示意图;
图10是本申请实施例提供的一种多媒体数据处理装置的结构示意图;
图11是本申请实施例提供的一种计算机设备的结构示意图;
图12是本申请实施例提供的一种多媒体数据处理系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,是本申请实施例提供的一种网络架构的结构示意图。如图1所示,网络架构可以包括服务器集群和用户终端集群,该网络框架可以应用于分布式转码系统。该分布式转码系统所涉及的业务场景具体可以包含视频点播场景和云剪辑场景等,这里将不对该分布式转码系统的具体业务场景进行限制。
其中,服务器集群中可以包含多个服务器,如图1所示,具体可以包含服务器20a、服务器20b、服务器20c、服务器20d,...,服务器20e。其中,用户终端集群可以包括多个用户终端,如图1所示,具体可以包括用户终端3000a、用户终端3000b、用户终端3000c、…、用户终端3000n;如图1所示,用户终端3000a、用户终端3000b、用户终端3000c、…、用户终端3000n可以分别与服务器集群中的任意一服务器进行网络连接,以便于每个用户终端可以通过该网络连接与相应服务器之间进行数据交互。
为便于理解,本申请实施例可以在图1所示的多个用户终端中选择一个用户终端作为目标用户终端,该目标用户终端可以包括:智能手机、平板电脑、笔记本电脑、智能电视、智能手表、智能手环、桌上型电脑等携带视频数据采集和播放功能(例如,视频数据录制功能和视频数据播放功能等)的智能终端。例如,本申请实施例可以将图1所示的用户终端3000a称之为目标用户终端。其中,集成在该目标用户终端中的目标客户端可以包括即时通讯客户端(例如,微信客户端、QQ客户端)、多媒体客户端(例如,视频播放客户端)、娱乐客户端(例如,游戏客户端)、虚拟房间客户端(例如,直播客户端)等具有帧序列(例如,视频数据)采集和播放功能的客户端。
其中,为便于理解,本申请实施例以上述视频点播场景为例,以阐述在该分布式转码系统中进行音视频转码的具体过程。在视频点播场景下,为了确保多媒体数据之间的数据同步,本申请实施例可以在获取到源视频文件时,根据源视频文件中的多媒体类型(例如,音频类型、视频类型和文本类型),从源视频文件中分离出视频数据源和关联数据源。其中,这里的关联数据源可以包含音频数据源和文本数据源等,这里将不对关联数据源的具体类型进行限定。为便于理解,本申请实施例可以以关联数据源为音频数据源为例,以阐述在分布式转码系统中进行音视频转码的具体过程。
其中,可以理解的是,在视频点播场景下,服务器集群中的每个服务器均可以运行有具备多媒体数据处理功能的多媒体数据处理装置2000(未在图1中示出),该多媒体数据处理装置可以用于独立地执行多媒体数据处理方法,即可以在同一服务器中执行音视频转码业务,以实现待点播的视频数据的音画同步;可选的,服务器集群中的每个服务器(例如,服务器20a、服务器20b、服务器20c、服务器20d和服务器20e)还可以用于协同执行多媒体数据处理方法,以在不同服务器的协同作用下共同完成整个音视频转码业务,以在确保待点播的视频数据的音画同步的同时,进一步提高分布式转码的效率。
换言之,本申请实施例中的服务器可以具备以下多媒体数据处理功能中的一种或者多种业务功能,比如,可以具备多媒体数据(例如,音视频)分离功能、视频切片功能、视频转码功能、音频切片功能、音频转码功能以及音视频合并功能中的一种或多种业务功能,这里将不对该服务器集群中的每个服务器所具备的具体业务功能进行限定。
比如,在分布式转码系统中,服务器集群中的每个服务器均用于独立执行上述多媒体数据处理方法,即运行有上述多媒体数据处理装置2000的每个服务器均可以用于独立地对某个源视频文件执行上述音视频转码业务。其中,这里的多媒体数据处理功能具体可以包含上述多媒体数据(例如,音视频)分离功能、视频切片功能、视频转码功能、音频切片功能、音频转码功能以及音视频合并功能。比如,服务器20a可以用于对源视频文件A进行音视频转码,以得到新的视频文件(比如,转码视频文件A’);服务器20b可以用于对源视频文件B进行音视频转码,以得到新的视频文件(比如,转码视频文件B’);...;服务器20e可以用于对源视频文件E进行音视频转码,以得到新的视频文件(比如,转码视频文件E’)。
其中,可以理解的是,为了提高后续音视频转码的成功率,本申请实施例在从转码数据库中获取到相应的源视频数据时,可以将该源视频数据的视频文件格式由初始文件格式调整为目标文件格式(例如,MP4文件格式),以便于可以将该目标文件格式所对应的源视频数据作为源视频文件。换言之,上述源视频文件A、源视频文件B、...、源视频文件E均可以为对转码数据库中的相应源视频数据的视频文件格式进行格式规范后所确定的。
应当理解,当上述服务器集群中的每个服务器用于独立执行上述多媒体数据处理方法时,可以批量性地得到针对不同视频源文件的转码视频文件,从而可以批量性地将这些转码视频文件作为待点播的视频数据,存储在与上述分布式转码系统相关联的点播数据库中。所以,当图1所示的用户终端集群中的任意一个用户终端(例如,上述目标用户终端)需要点播某个视频数据时,可以通过网页或者目标客户端接入与上述分布式转码系统中的点播数据库相关联的服务器(例如,服务器20k(未在图1中示出),比如,这里的服务器20k为内容分发服务器),以通过该服务器20k从点播数据库中获取到这个视频数据的转码视频文件(例如,上述转码视频文件A’)。
应当理解,本申请实施例中的目标用户终端在用作视频点播终端时,可以从点播数据库中获取需要点播的转码视频文件。换言之,视频点播终端可通过目标客户端或者浏览器网页接入上述服务器20k,以从与该服务器20k相关联的点播数据库中获取到与该视频点播终端所请求的视频数据相匹配的转码码流,以使该视频点播终端后续在获取到转码码流时,可以通过该视频点播终端所支持的解码器对转码码流进行解码处理,以在该视频点播终端中对解码处理后的多媒体数据(例如,音视频数据)进行播放处理。可以理解的是,本申请实施例还可以通过设定相应的视频质量标准参数,以确保在视频点播终端中所输出的视频数据的视频质量,进而可以在确保音画同步的同时,进一步提高视频数据的播放效果。
可选的,本申请实施例中的目标用户终端也可以视为视频采集终端,以将采集到的源视频数据上传至与上述分布式转码系统相关的转码数据库。可以理解的是,本申请实施例可以将该点播数据库和转码数据库统称为该分布式转码系统的业务数据库。其中,转码数据库可以用于存储该分布式转码系统中的服务器所获取到的由视频采集终端所上传的源视频数据,这里的源视频数据可以包含在不同业务场景下,由视频采集终端通过网页或者目标客户端所采集并上传的完整的视频数据。换言之,在视频点播场景下,转码数据库可以用于存放由不同用户终端所上传的具有不同视频文件格式的源视频数据。
又比如,可选的,在上述服务器集群中的每个服务器还可以通过协同的方式执行上述多媒体数据处理方法,为便于理解,进一步的,请参见图2,是本申请实施例提供的一种分布式转码系统中的分布式转码的场景示意图。如图2所示的分布式转码系统中可以包含图2所示的多个服务器;多个服务器具体可以包含服务器10a、服务器10b、服务器10c、服务器10d、服务器10e和服务器10f。
如图2所示,服务器10a可以用于执行上述音视频分离功能;如图2所示,服务器10a在获取到上述源视频文件1a时,可以根据源视频文件1a中的多媒体类型(例如,视频类型、音频类型、文本类型等),对该源视频文件1a中的多媒体数据进行数据分离,以得到图2所示的视频数据源1b、音频数据源1c。如图2所示,该服务器10a在完成音视频分离之后,可以对视频数据源1b中的视频内容进行场景检测,以找到与每个场景相关联的场景关键帧,这里的场景关键帧可以包含图2的视频帧10a,视频帧20a,视频帧30a,进而可以根据这些场景关键帧将视频数据源1b切分为图2所示的视频序列100a、视频序列100b、视频序列100c。
进一步的,为了提高分布式转码的效率,如图2所示,服务器10a在得到相应场景对应的视频序列之后,可以进一步将视频序列100a作为视频切片100b分发给服务器10b,将视频序列200a作为视频切片200b分发给服务器10c,将视频序列300a作为视频切片300b分发给服务器10d。应当理解,如图2所示的服务器10b、服务器10c、服务器10d可以用于执行上述视频转码功能,所以,在这些具有视频转码功能的服务器获取到视频切片之后,可以在这些服务器中根据获取到的编码参数(例如,这里的编码参数可以包含固定的编码码率或者预测得到的编码码率等),对相应视频切片进行转码处理(例如,进行多路转码处理),从而可以将多路转码处理后所得到的不同分辨率下的视频序列统称为转码视频序列。这里的分辨率具体可以包含270p、540p、720p和1080p。
其中,为便于理解,本申请实施例可以以多路转码处理中的一路转码处理为例,以阐述在缩放参数信息为某个分辨率(例如,720p)的情况下,在不同服务器中对相应视频切片进行一路转码的具体过程。如图2所示,服务器10b可以在分辨率为720p时对视频切片100b进行一路转码,从而可以将一路转码后的视频序列确定为图2所示的转码视频序列100c;同理,服务器10c可以在分辨率为720p时对视频切片200b进行一路转码,从而可以将一路转码后的视频序列确定为图2所示的转码视频序列200c;同理,服务器10d可以在分辨率为720p时对视频切片300b进行一路转码,从而可以将一路转码后的视频序列确定为图2所示的转码视频序列300c。
应当理解,图2所示的服务器10e可以用于执行上述音频切片功能,即当服务器10e获取到转码视频序列100c、转码视频序列200c、转码视频序列300c的时长信息时,可以基于这些转码视频序列的时长信息对该音频数据源1c进行切片,从而可以得到与视频转码序列具有相同时长的音频切片。可以理解的是,本申请实施例可以将每个音频切片统称为关联切片。这里之所以采用转码视频序列的时长信息,是因为转码前后的视频序列的时长信息可能会存在不同,为了确保音视频的严格同步,可以根据获取到的视频转码序列的时长信息对音频数据源进行裁剪,以得到与视频转码序列具有相同时长的音频切片。
进一步的,服务器10e可以对这些关联切片进行合并处理,以将合并处理后的关联切片统称为目标音频信号,从而可以基于服务器10e中的编码器(例如,音频编码器)的初始化参数,对目标音频信号进行编码(例如,可以对目标音频信号进行ACC分片编码)。例如,可以根据该音频编码器的初始化参数确定出用于对目标音频信号进行切片的起始位置和结束位置,从而可以根据起始位置和结束位置对目标音频信号进行切片,以得到与目标音频信号相关联的待编码音频分片。进一步的,服务器10e可以对这些待编码音频分片进行编码处理,以得到每个待编码音频分片对应的编码音频流,进而可以在将这些编码音频流进行合并处理后,以在去除这些音频切片之间的交叠区域之后,得到图2所示的转码音频流300d。该转码音频流300d即为前述目标音频信号所对应的转码音频流。
如图2所示,服务器10f可以用于接收上述具有视频转码功能的服务器(即服务器10b、服务器10c和服务器10d)所发送的视频转码序列,还可以用于接收上述具有音频转码功能的服务器(即服务器10e)所发送的转码音频流。此时,该服务器10f可以执行上述音视频合并功能,以根据场景关键帧对同一分辨率相关联的视频转码序列进行合并处理,以得到与这个分辨率相关联的转码视频流。可以理解的是,对于上述4个分辨率而言,可以得到与视频数据源1b相关联的四路转码视频流。此时,该服务器10f可以将图2所示的转码音频流分别与每一路转码视频流进行封装处理,以得到严格音视频对齐的转码视频文件。
应当理解,在视频点播场景下,本申请实施例通过提供与不同分辨率相关联的多路转码视频流,可以在音视频合并之后,得到与不同分辨率相关联的多个转码视频文件,这样,当分布式转码系统获取到上述目标用户终端(例如,上述图1所示的用户终端3000n)所发送的转码请求时,可以根据该用户终端3000n所请求的分辨率(例如,1080p),快速在上述点播数据库中查找到与该用户终端3000n所请求的分辨率相匹配的转码视频文件(例如,转码视频文件1),并可以将查找到的转码视频文件1下发给用户终端3000n,进而可以在用户终端3000n中对解码处理后的转码视频文件1进行视频播放时,可以确保视频播放的音画同步,还可以有效地确保视频播放的视频质量,从而可以提高视频播放的效果。
可以理解的是,具有视频转码功能的服务器在对这些视频切片进行多路转码之前,该服务器10a还可以为每个视频切片配置相应的质量类型以及质量类型对应的视频质量参数。其中,本申请实施例中的质量类型可以包含以下至少一个质量类型:第一质量类型、第二质量类型、第三质量类型和第四质量类型。其中,可以理解的是,这四种质量类型均可以用于对相应视频切片(即视频片段)中的视频图像的视频质量进行评估,且本申请实施例可以将评估所得到的分数统称为相应质量类型下的视频质量参数。
其中,第一质量类型可以为VMAF(Video Multi-Method Assessment Fusion,视频质量多方法融合)类型。其中,服务器10a为第一视频序列所配置的VMAF类型下的视频质量标准参数(这里指在VMAF类型下所设定的质量评估值)可以为0~100的取值范围中的任意一个,例如,VMAF 90。可以理解的是,VMAF类型下所设定的质量评估值的取值越大,则表征最终所输出的编码码流的视频质量越好。
其中,第二质量类型可以为SSIM(Structural Similarity,结构相似性指标)类型;其中,服务器10a为第一视频序列所配置的SSIM类型下的视频质量标准参数(这里指在SSIM类型下所设定的质量评估值)可以为0~1的取值范围中的任意一个,例如,SSIM0.987。可以理解的是,SSIM类型下所设定的质量评估值的取值越大,则表征最终所输出的编码码流的视频质量越好。
其中,第三质量类型可以为PNSR(Peak Signal to Noise Ratio,峰值信噪比)类型;其中,服务器10a为第一视频序列所配置的PNSR类型下的视频质量标准参数(这里指在PNSR类型下所设定的质量评估值)可以为0~100的取值范围中的任意一个,例如,PNSR 40。
其中,第四质量类型可以为MOS(Mean Opinion Score,平均意见分)类型;其中,服务器10a为第一视频序列所配置的MOS类型下的视频质量标准参数(这里指在MOS类型下所设定的质量评估值)可以为1~5的取值范围中的任意一个,例如,MOS 4。
可以理解的是,本申请实施例中的服务器10a在将图2所示的每个视频切片分发给具有视频转码功能的服务器时,可以为每个视频切片分别配置一个质量类型,本申请实施例可以将为每个视频切片所配置的质量类型统称为目标质量类型。例如,服务器10a为视频切片100b所配置的目标质量类型可以为VMAF类型,该服务器10a为视频切片200b所配置的目标质量类型可以为SSIM类型,该服务器10a为视频切片300b所配置的目标质量类型可以为PSNR类型。可选的,该服务器10a也可以为切片处理后所得到的每个视频切片配置同一质量类型,例如,可以为图2所示的视频切片100b、视频切片200b、视频切片300b配置上述多个质量类型中的任意一个质量类型。
其中,本申请实施例可以将服务器10a为某个视频片段所配置的某个质量类型下的某个视频质量参数,作为与这个视频片段相关联的待编码视频序列的视频质量标准参数,进而可以在目标质量类型的视频质量标准参数下,通过该目标质量类型所对应的预测模型,预测得到用于对该待编码视频序列进行编码处理的编码码率。
可以理解的是,本申请实施例中的每个质量类型均可以对应一个已经训练好的预测模型,通过该预测模型可以预测得到待编码视频序列在特定分辨率以及特定视频质量下的编码码率,进而可以基于预测得到的编码码率对待编码视频序列进行编码处理,以得到与相应分辨率相关联的编码码流。
其中,分布式转码系统中的服务器获取视频切片、通过编码参数得到转码视频序列、以及基于转码视频序列的时长信息对关联数据源进行切片的具体实现方式可以参见如下图3至图9所对应的实施例。
进一步地,请参见图3,是本申请实施例提供的一种多媒体数据处理方法的流程示意图。如图3所示,方法可以由具备多媒体数据处理功能的多媒体数据处理装置执行,该方法至少可以包括步骤S101-步骤S104:
步骤S101,获取源视频文件,从源视频文件中获取视频数据源和关联数据源;
具体的,多媒体数据处理装置可以获取与源视频数据相关联的标准参数配置信息;标准参数配置信息包含目标文件格式和与目标文件格式相关联的编码等级;进一步的,多媒体数据处理装置可以根据编码等级对应的第一编码器将源视频数据的视频文件格式由初始文件格式调整为目标文件格式,将目标文件格式对应的源视频数据作为源视频文件;进一步的,多媒体数据处理装置可以根据源视频文件对应的多媒体类型(例如,上述音频类型、视频类型和文本类型等),对源视频文件进行数据分离,得到与源视频文件相关联的视频数据源和关联数据源。
其中,本申请实施例中的多媒体数据处理装置可以运行在上述服务器集群中的任意一个服务器中,为便于理解,本申请实施例可以从上述服务器集群所包含的多个服务器中选择一个服务器作为目标服务器,该运行有该多媒体数据处理装置的目标服务器可以为上述图1所对应实施例中的服务器20a。本申请实施例中的服务器20a可以在获取到视频数据源时,可以进一步执行下述步骤S102,以根据切片分割规则中的场景检测的方式对获取到的视频数据源(这里的视频数据源为不包含任何音频分量的纯视频数据)进行场景检测,以准确地找到与视频数据源相关联的场景关键帧。
其中,这里的关联数据源可以包含音频数据源(例如,与视频数据源中的对象相关联的目标音频数据、伴奏音频数据等),还可以包含文本数据源(例如,与视频数据源中的对象相关联的目标文件数据、弹幕文本数据等)。为便于理解,本申请仅以关联数据源为音频数据源为例,以阐述在运行有上述多媒体数据处理装置的目标服务器中进行音画同步的具体过程。应当理解,当关联数据源为文本数据源时,还可以在运行有上述多媒体数据处理装置的目标服务器中实现图文同步。
其中,可以理解的是,目标服务器可以为上述分布式转码系统中的分布式服务器。可以理解的是,分布式转码系统中的分布式服务器每天可以接收到用户终端通过浏览器网页或者上述目标客户端所上传的大量的源视频数据,这些源视频数据中可以包含视频点播场景下的源视频数据1,还可以包含视频直播场景下的源视频数据2(例如,视频直播过程中所录制完成的直播视频数据),还可以包含视频通讯场景下的所录屏得到的源视频数据3。本申请实施例可以将该目标服务器所接收到的这些源视频数据1、源视频数据2和源视频数据3一并统称为上述源视频数据,即一个源视频数据可以为一个视频源。为便于理解,本申请实施例以上述应用场景为视频点播场景为例,以阐述在该目标服务器中进行音视频转码的具体过程。
其中,可以理解的是,考虑到存储在转码数据库中的源视频数据的数据来源不同,会在该转码数据库中所存储的源视频数据的视频文件格式之间存在不同。为了提高后续视频转码的成功率,本申请实施例可以在从转码数据库中获取到需要进行转码的源视频数据时,对这些源视频数据进行统一参数配置的x264快速标准化转码,以将这些源视频数据的视频文件格式由初始文件格式(例如,ASF格式、MOV格式、WMV格式等)统一调整为目标文件格式(例如,MP4格式),从而可以将格式统一调整后的源视频数据(即目标文件格式对应的源视频数据)统称为源视频文件。
步骤S202,获取与视频数据源相关联的场景关键帧,根据场景关键帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的视频切片;
具体的,多媒体数据处理装置可以调用第一编码器中的场景切分线程,对视频数据源进行场景检测,根据场景检测结果确定与视频数据源相关联的场景关键帧;进一步的,多媒体数据处理装置可以根据场景关键帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的视频切片。
其中,运行有该多媒体数据处理装置的目标服务器确定场景关键帧的具体过程可以描述为:对视频数据源对应的初始视频序列进行下采样处理,将下采样后的初始视频序列确定为视频数据源对应的待处理视频序列;待处理视频序列和初始视频序列中均包含N个视频帧;N为正整数;进一步的,从N个视频帧中遍历获取两个相邻的视频帧;两个相邻的视频帧包含视频帧Mi-1和视频帧Mi;i为大于1且小于等于N的正整数;进一步的,调用第一编码器中的场景切分线程确定视频帧Mi和视频帧Mi-1之间的编码相似度;进一步的,在编码相似度大于场景切变阈值时,为视频帧Mi设置场景切变标识,将具有场景切变标识的视频帧Mi确定为与视频数据源相关联的场景关键帧。
为便于理解,进一步的,请参见图4,是本申请实施例提供的一种确定场景关键帧的场景示意图。其中,可以理解的是,一个长视频通常可以由多个场景(即多个镜头)所对应的视频序列而构成,例如,图4所示的初始视频序列中可以包含多个场景,不同场景所对应的视频帧中的视频内容的复杂度会存在不同,因此,本申请实施例在对初始视频序列进行下采样(例如,根据初始图像序列中的视频帧的图像尺寸的进行缩放处理)之后,可以得到图4所示的待处理视频序列。由于下采样是对初始视频序列中的视频帧的图像尺寸进行缩放处理,比如,这些图像帧的图像尺寸可以从256*256的尺寸缩放至100*100的尺寸,以减少后续对两个相邻的视频帧之间的编码相似度计算的计算量。
为便于理解,本申请实施例在得到图4的待处理视频序列(即由视频帧50a、视频帧50b、视频帧50c、..、视频帧50f这N个视频帧所构成的视频序列)时,可以将该待处理视频帧的首个视频帧(即图4所示视频帧50a)作为第一个场景关键帧(即图4所示的场景关键帧1)。
应当理解,本申请实施例可以在N个视频帧(即视频帧50a、视频帧50b、视频帧50c、..、视频帧50f)中遍历获取两个相邻的视频帧,这两个相邻的视频帧可以记为视频帧Mi-1和视频帧Mi;其中,i可以为大于1且小于等于N的正整数,且视频帧Mi-1为视频帧Mi的前一视频帧,视频帧Mi为当前用于判断是否为场景切变点的视频帧。可以理解的是,本申请实施例在调用x264编码器分析当前视频帧与前一视频帧之间的编码相似度时,可以根据编码相似度与场景切变阈值之间的关系,快速确定当前视频帧是否场景切变点所对应的视频帧,如果是,则可以为当前视频帧设置场景切变标识,从而可以将具有场景切变标识的视频帧统称为场景关键帧。
比如,对于图4所示的待处理视频序列中的视频帧50a和视频帧50b而言,可以记为视频帧M1和视频帧M2,从而可以通过上述x264编码器(即第一编码器)中的场景切分线程(例如,场景切分线程A)确定视频帧M1和视频帧M2之间的编码相似度。如图4所示,本申请实施例可以调用场景切分线程A对视频帧M2的进行帧内编码,以得到第一帧内编码帧,从而可以根据该第一帧内编码帧确定视频帧M2对应的第一代价值(即图4所示的帧内编码代价11)。另外,本申请实施例也可以对视频帧M1的进行帧内编码,以得到第二帧内编码帧,从而可以将该第二编码视频帧作为视频帧M2的参考视频帧,以根据该参考视频帧对视频帧M2进行帧间编码,从而可以得到视频帧M2对应的第二代价值(即图4所示的帧间编码代价12)。如图4所示,本申请实施例可以将帧间编码代价12与帧内编码代价11的比值,确定为视频帧M1和视频帧M2之间的编码相似度(即图4所示的编码相似度1)。如图4所示,由于视频帧50a与视频帧50b之间的视频内容大致相同,所以,通过上述场景切片线程所确定的编码相似度1可以小于预设的场景切变阈值,从而可以将视频帧50a与视频帧50b确定为相似视频帧,即当前视频帧为视频帧M2时,并不存在场景切变点。
又比如,对于图4所示的待处理视频序列中的视频帧50b和视频帧50c而言,可以记为视频帧M2和视频帧M3,从而可以通过上述x264编码器中的场景切分线程(即上述场景切分线程A)确定视频帧M2和视频帧M3之间的编码相似度。如图4所示,在前视频帧为视频帧M3(即图4所示的视频帧50c)时,本申请实施例可以继续调用上述场景切分线程A对视频帧M3的进行帧内编码,以得到新的第一帧内编码帧,从而可以根据该新的第一帧内编码帧确定视频帧M2对应的新的第一代价值(即图4所示的帧内编码代价21)。另外,由于本申请实施例已经对视频帧M2进行过帧内编码,所以,本申请实施例可以将上述第一帧内编码帧作为新的第二帧内编码帧,从而可以将该新的第二编码视频帧作为视频帧M3的参考视频帧,以根据该参考视频帧对视频帧M3进行帧间编码,从而可以得到视频帧M3对应的第二代价值(即图4所示的帧间编码代价22)。如图4所示,本申请实施例可以将帧间编码代价12与帧内编码代价11的比值,确定为视频帧M2和视频帧M3之间的编码相似度(即图4所示的编码相似度2)。如图4所示,由于视频帧50b与视频帧50c之间的视频内容大不相同,所以,通过上述场景切片线程A所确定的编码相似度2可以大于预设的场景切变阈值,从而可以将视频帧50b与视频帧50c确定为非相似视频帧,即当前视频帧为视频帧M3时,存在场景切变点,从而可以将该视频帧M3(即当前视频帧)确定为新的场景关键帧,该新的场景关键帧可以为图4所示的场景关键帧2。以此类推,本申请实施例可以对任意两个相邻视频帧之间的编码相似度进行计算,从而可以在确定前后相邻的两个视频帧之间无编码相似度时,认为出现一个场景切片点,从而可以将该场景切片点所对应的视频帧作为场景关键帧。
进一步的,运行有多媒体数据处理装置的目标服务器在得到与视频数据源相关联的场景关键帧时,可以进一步根据场景关键帧对视频数据源的初始视频序列进行切片,以得到与初始视频序列相关联的视频切片。
为便于理解,进一步的,请参见图5,是本申请实施例提供的一种确定视频切片的场景示意图。如图5所示,运行有多媒体数据处理装置的目标服务器在获取到图5所示的视频帧60a、视频帧70a、视频帧80a时,可以将基于场景检测所确定的这些视频帧称之为场景关联帧,此时,这里的场景关键帧可以为第一即时解码刷新帧,即该第一即时解码刷新帧可以为IDR(Instantaneous Decoding Refresh)帧,从而可以根据这些第一即时解码刷新帧对图5所示的视频数据源2b的初始视频序列进行切片,以得到图5所示的初始帧组400a、初始帧组500a和初始帧组600a。
进一步的,为了提高视频编码的准确性和稳定性,本申请实施例在获取到这些初始帧组之后,可以根据上述第一编码器的最大帧组长度(即两个IDR之间的视频帧的帧数),进一步判断这些初始帧组中是否存在帧组长度大于最大帧组长度的初始帧组,如果存在,则可以将这些帧组长度大于最大帧组长度的初始帧组称之为第一帧组,具体的,如图5所示,若第一编码器的最大帧组长度为5帧,则该多媒体数据处理装置可以从图5所示的初始帧组400a、初始帧组500a、初始帧组600a中找到帧组长度大于最大帧组长度的初始帧组600a,并可以将该初始帧组600a称之为第一帧组,并可以继续根据该最大帧组长度在该初始帧组600a中添加第二即时解码刷新帧(例如,图5所示的视频帧90a),从而可以基于该第二即时解码刷新帧将该第一帧组(即初始帧组600a)划分为更细粒度的帧组,以得到图5所示的第二帧组700a和第二帧组800a。可以理解的是,本申请实施例可以将通过第二即时解码刷新帧所划分得到的更细粒度的帧组统称为第二帧组,应当理解,本申请实施例中的所有第二帧组的帧组长度之和可以等于第一帧组的帧组长度。此外,本申请实施例可以在上述至少一个帧组(即初始帧组400a、初始帧组500a、初始帧组600a)中,将除初始帧组600a(即第一帧组)之外的初始帧组(即初始帧组400a、初始帧组500a)统称为第三帧组,从而可以将图5所示的第三帧组和第二帧组,作为与初始视频序列相关联的视频切片,即可以得到图5所示的视频切片900a、视频切片900b、视频切片900c和视频切片900d。
应当理解,本申请实施例在得到上述第二即时解码刷新帧(即视频帧90a)时,可以对上述场景关键帧进行更新,以得到新的场景关键帧。即该新的场景关键帧可以为图5所示的视频帧60a、视频帧70a、视频帧80a和视频帧90a。一个视频切片中包含一个场景关键帧,且同一视频切片中的视频帧的视频内容具有相似性。当该多媒体数据处理装置得到图5所示的视频切片之后,可以进一步执行下述步骤S103。
步骤S103,在获取到与视频切片相关联的编码参数时,对视频切片进行转码处理,得到视频切片相关联的视频转码序列;
具体的,多媒体数据处理装置在获取到上述步骤S102中的视频切片时,可以获取与视频切片相关联的视频属性参数,并可以基于视频属性参数确定与视频切片相关联的待编码视频序列;进一步的,多媒体数据处理装置可以对待编码视频序列进行预编码处理,得到预编码视频序列,根据预编码视频序列确定待编码视频序列对应的视频特征;进一步的,多媒体数据处理装置可以获取与待编码视频序列相关联的视频质量标准参数,并可以根据视频质量标准参数以及视频特征,预测待编码视频序列的编码参数,进而可以将该预测得到的编码参数(例如,预测到的CRF编码参数),对视频切片进行转码处理,以得到与视频切片相关联的视频转码序列。
其中,在视频属性参数为与视频切片的分辨率相关联的缩放参数信息(例如,上述多个分辨率)时,可以根据缩放参数信息对视频切片进行缩放处理(即可以将视频切片的分辨率缩放至不同分辨率),从而可以将缩放处理后的视频切片确定为待编码视频序列。可以理解的是,这里的待编码视频序列的个数与视频源的缩放参数信息的个数相同。所以,在视频点播场景下,运行有多媒体数据处理装置的目标服务器所获取到的待编码视频序列的个数决定了后续需要进行视频转码的路数,即本发明可以在运行有上述多媒体数据处理装置的目标服务器中对视频切片进行多路转码,以得到同一视频切片在不同分辨率上的视频转码序列。
为便于理解,进一步的,请参见图6,是本申请实施例提供的一种获取视频转码序列的场景示意图。其中,为便于理解,本申请实施例以目标服务器(例如,上述服务器10d)所获取到视频切片为上述图5所对应实施例中的视频切片900a为例,以阐述在视频点播场景下对该视频切片900a进行多路转码的具体过程。如图6所示,该目标服务器在获取到该视频切片900a之后,可以根据与视频数据源的分辨率相关联的缩放参数信息,对该视频切片900a的分辨率进行缩放处理。如图6所示,该目标服务器可以将该视频切片900a的分辨率(例如,540p)缩放至图6所示的多个分辨率上。这里的多个分辨率具体可以为分辨率1、分辨率2、分辨率3、分辨率4。其中,分辨率1可以为上述1080p;分辨率2可以为上述720p;分辨率3可以为上述540p;分辨率4可以为上述270p。可以理解的是,与视频数据源的分辨率相关联的缩放参数信息可以为上述多个分辨率,即一个缩放参数信息可以对应一个分辨率,本申请实施例可以将这些缩放参数信息统称为上述视频属性参数。可以理解的是,这里的视频属性参数不仅可以包含分辨率,还可以包含编码类型,这里将不对其进行限定。
可以理解的是,多个分辨率中的任意两个分辨率所对应的编码码流之间可以相互进行切换。比如,在视频点播场景下的用户终端中,上述目标服务器可以根据使用该用户终端的点播用户的码流切换请求,快速找到并下发具有相同视频内容的同一视频片段在不同分辨率上的编码码流,进而可以在确保视频播放质量的情况下,快速实现相应编码码流之间的切换,以提供友好的用户体验,进而可以增加用户的黏度。
其中,可以理解的是,在视频点播场景下,本申请实施例可以将根据一个缩放参数信息(即一个分辨率)所得到的一路待编码视频序列,从而可以在特定质量类型的视频质量标准参数下,对每个待编码视频序列(即视频序列1a、视频序列2a、视频序列3a、视频序列4a)进行预编码,以将相应预编码视频序列的编码信息,作为对应待编码视频序列的视频特征,比如,对视频序列1a进行预编码之后,可以得到图6所示的视频特征1b;对视频序列2a进行预编码之后,可以得到图6所示的视频特征2b;对视频序列3a进行预编码之后,可以得到图6所示的视频特征3b;对视频序列4a进行预编码之后,可以得到图6所示的视频特征4b。
其中,可以理解的是,本申请实施例可以将同一视频切片在不同分辨率下的视频序列统称为待编码视频序列。另外,在该目标服务器(即上述服务器10d)中对这些待编码视频序列进行多路转码,这里的多路转码具体是指与上述4个分辨率相关联的4路转码,以得到同一视频切片在不同分辨率下的编码码流(即图6所示的视频转码序列)。这些视频转码序列具体可以包含图6所示的与分辨率1相关联的编码序列1d、与分辨率2相关联的编码序列2d、与分辨率3相关联的编码序列3d、与分辨率4相关联的编码序列4d。
其中,如图6所示,目标服务器在得到视频特征(即图6所示的视频特征1b、视频特征2b、视频特征3b、视频特征4b)之后,可以获取与相应待编码视频序列相关联的视频质量标准参数(例如,上述VMAF 90),进而可以根据该视频质量标准参数找到与目标质量类型相匹配的码率预测模型,进而可以将找到的码率预测模型作为目标预测模型,从而可以将相应视频特征输入该目标预测模型之后,能够快速且准确地预测出与相应视频特征相关联的编码参数。这里的编码参数具体可以为图6所示的编码码率1c、编码码率2c、编码码率3c、编码码率4c。进一步的,目标服务器可以基于预测得到的编码参数,对相应待编码视频序列进行编码处理,以输出上述视频切片900a在不同分辨率下的视频转码序列,这些视频转码序列具体可以为图6所示的编码序列1d、编码序列2d、编码序列3d、编码序列4d。
其中,多媒体数据处理装置获取待编码视频序列的视频特征的具体过程可以描述为:多媒体数据处理装置可以获取用于对待编码视频序列进行预编码的第二编码器,并可以关闭第二编码器中的场景切分线程,进而可以根据关闭场景切分线程后的第二编码器对待编码视频序列进行预编码处理,以得到预编码视序列;其中,预编码视频序列中可以包含场景关键帧和预测视频帧;进一步的,多媒体数据处理装置可以根据场景关键帧、预测视频帧、预编码视频序列的分辨率以及预编码视频序列的码率,确定预编码视频序列的编码信息;进一步的,多媒体数据处理装置可以将编码信息确定为待编码视频序列对应的视频特征。
可以理解的是,在多媒体数据处理装置在对上述初始视频序列进行切片的过程中,若存在第二即时解码刷新帧,则这里的场景关键帧指的是上述更新后的场景关键帧;反之,在多媒体数据处理装置在对上述初始视频序列进行切片的过程中,若不存在第二即时解码刷新帧,则这里的场景关键帧指的是上述仅包含第一即时解码刷新帧的场景关键帧,这里将不再继续进行赘述。
为便于理解,本申请实施例以将上述图6所示的视频切片(例如,上述视频切片900a)的分辨率缩放至分辨率1为例,以阐述对过图6所示的视频序列1a(即待编码视频序列)进行一路转码的具体过程。如图6所示,运行有该多媒体数据处理装置的目标服务器可以在获取到待编码视频序列(即图6所示的视频序列1a)时,可以同步获取目标服务器为该视频切片900a所配置的视频质量参数,并可以将为该视频切片900a所配置的视频质量参数,作为该待编码视频序列的视频质量标准参数(例如,上述VMAF 90)。
可以理解的是,该目标服务器可以根据该视频质量标准参数(例如,上述VMAF90),获取用于对视频序列1a进行预编码的第二编码器,注意,在对该视频序列1a进行一路转码的过程中,为避免额外插入新的即时解码刷新帧(IDR帧),本申请实施例可以在采用第二编码器对视频序列1a(即单个待编码视频序列)预编码的过程中,关闭第二编码器中的场景切分线程,这样可以确保每个视频分片中包含一个即时解码刷新帧,本申请实施例可以将即时解码刷新帧统称为场景关键帧。比如,这里的场景关键帧可以为上述第一即时解码刷新帧,也可以为上述第二即时解码刷新帧。然后,目标服务器可以根据关闭场景切分线程后的第二编码器对待编码视频序列进行预编码处理,以得到预编码视序列;其中,可以理解的是,一个预编码视频序列中可以包含一个即时解码刷新帧和至少一个预测视频帧。进一步的,目标服务器可以根据场景关键帧、预测视频帧、预编码视频序列的分辨率以及预编码视频序列的码率,快速确定预编码视频序列的编码信息,并可以将编码信息确定为待编码视频序列对应的视频特征,该视频序列1a的视频特征可以为上述图6所示的视频特征1b。
其中,该预编码视频序列的分辨率可以为上述分辨率1。其中,该预编码视频序列的码率可以为预编码过程中所直接统计到的码率。其中,该视频序列1a中可以包含一个场景,即视频序列1a中的视频帧的视频内容的复杂度是基本相同的。这里的至少一个预测视频帧可以为P帧(即前向预测帧)。其中,本申请实施例可以将在对前向预测帧(即P帧)进行帧间编码时所采用的场景关键帧统称为参考视频帧,即本申请实施例在进行预编码的过程中,每使用一次场景关键帧则可以将参考视频帧的个数进行加一处理,进而可以将预编码完成时所最终统计到的参考视频帧的总选取数量确定为第一数量。此外,本申请实施例也可以将在预编码过程中所统计到的场景关键帧的个数(即场景关键帧的总数量)统称为第二数量,并可以将在预编码过程中所统计到的前向预测帧的个数(即前向预测帧的总数量)统称为第三数量。
进一步的,该目标服务器还可以通过下述公式(1)计算得到该预编码视频序列的空域复杂度:
空域复杂度=I帧平均大小/最大I帧大小 公式(1);
其中,I帧平均大小是由该目标服务器所获取到的场景关键帧对应的数据容量(例如,100kB、90kB等)以及统计到的场景关键帧的总数量所确定的。可以理解的是,这里的场景关键帧为一种特殊的I帧,一个视频切片中可以包含一个I帧,这样可以对同一视频切片的视频内容进行无场景切换参数编码,从而可以确保同一视频切片在不同分辨率下所得到的编码码流之间可以实现无缝切换。由于在一个视频切片中仅包含一个I帧,所以,这里的预编码视频序列的空域复杂度可以为1,即I帧平均大小与最大I帧大小之间的比值为1。
进一步的,该第一服务器还可以通过下述公式(2)计算得到该预编码视频序列的时域复杂度:
时域复杂度=P帧平均大小/I帧平均大小 公式(2);
其中,P帧平均大小是指该目标服务器所获取到的每个前向预测帧对应的数据容量(例如,20kB、15kB等)。其中,本申请实施例可以通过每个前向预测帧对应的数据容量和该目标服务器所统计到的前向预测帧的总数量(即上述第三数量),确定这些前向预测帧的第二平均数据容量,本申请实施例可以将该第二平均数据容量统称为上述P帧平均大小。如上述公式(2)所示,本申请实施例可以将P帧的第二平均数据容量与前述I帧的第一平均数据容量之间的比值,作为预编码视频序列的时域复杂度。
可以理解的是,该目标服务器对上述图6所示的视频序列2a、视频序列3a以及视频序列4a进行预编码处理的具体过程,可以一并参见对上述对视频序列1a进行预编码处理的具体过程的描述,这里将不再继续进行赘述。可选的,该多媒体数据处理装置还可以采用固定的编码码率(例如,固定的CRF编码参数)对视频切片进行转码处理,以得到与视频切片相关联的视频转码序列,即直接采用该固定的CRF编码参数可以提高对视频切片进行视频转码的效率。
应当理解,该目标服务器对上述图5所示的视频切片900b、视频切片900c、视频切片900d进行多路转码的具体过程可以参见上述图6所对应实施例中对视频切片900a进行多路转码过程的描述,这里将不再继续进行赘述。可以理解的是,目标服务器可以在确保视频质量比较一致的情况下,尽可能地找到用于对每个视频切片进行编码处理的编码码率,进而可以解决对这些视频切片采用同一编码码率进行无差别编码所造成的带宽浪费的现象,进而可以降低编码码率的浪费现象,进而可以达到节省带宽的目的。可以理解的是,为了提高分布式转码的效率,本申请实施例可以在目标服务器中启动多个用于进行转码的进程,以对视频切片900a、视频切片900b、视频切片900c、视频切片900d进行异步转码。
可选的,本申请实施例中的目标服务器在得到视频切片之后,还可以将这些视频切片分发给与该目标服务器处于同一分布式网络的其他服务器,以使其他服务器中可以对与同一视频数据源相关联的这些视频切片进行多路转码,以提高视频转码的效率。这里将不对用于进行视频转码的具体服务器进行限定。
步骤S104,根据视频转码序列的时长信息,对关联数据源进行切片,得到与视频转码序列具有相同时长的关联切片。
具体的,多媒体数据处理装置在对上述视频切片中的每个视频切片进行多路转码之后,可以得到与相应视频切片相关联的视频转码序列的时长信息,为了确保音视频分离情况下的音画同步,本申请实施例可以在关联数据源为音频数据源时,基于获取到的视频转码序列的时长信息对音频数据源进行切片,以得到与视频转码序列具有相同时长的关联切片。可以理解的是,这里的关联数据源可以包含但不限于音频数据源,比如,还可以是文本数据源等。
应当理解,在该分布式转码系统中,与该目标服务器处于同一分布式网络中的其他分布式服务器(例如,服务器20b)中也可以运行有该多媒体数据处理装置,从而可以在运行有该多媒体数据处理装置的服务器20b中执行上述步骤S101-步骤S104,以在该服务器20b中对获取到的其他源视频文件进行音视频转码,以得到与其他源视频文件相关联的转码视频文件,这里将不再继续进行赘述。
本申请实施例在从源视频文件中分离出视频数据源和关联数据源时,可以通过分镜头(即场景检测)的方式对原视频数据源中的视频内容进行一次分析,以准确定位到与视频数据源相关联的场景关键帧,此时,本申请实施例可以进一步根据场景关键帧划分出相应场景对应的视频切片,从而可以在一个视频切片对应一个场景的情况下,有效地确保同一视频切片中的视频内容的复杂度的单一性,进而可以在视频转码时提高视频质量的稳定性。另外,在数据分离(例如,音视频分离)的情况下,利用转码后的视频转码序列的时长信息对关联数据源(例如,音频数据源等)进行切片处理,可以确保转码后的音视频的数据同步(例如,音画同步)。
进一步地,请参见图7,是本申请实施例提供的一种多媒体数据处理方法的示意图。如图7所示,方法可以由具备多媒体数据处理功能的多媒体数据处理装置执行,方法可以包含以下步骤:
步骤S201,获取源视频文件,从源视频文件中获取视频数据源和关联数据源;
步骤S202,获取与视频数据源相关联的场景关键帧,根据场景关键帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的视频切片;
其中,步骤S201-步骤S202的具体实现方式可以参见上述图3所对应实施例中对步骤S101-步骤S102的描述,这里将不再继续进行赘述。
步骤S203,获取与视频切片相关联的视频属性参数,基于视频属性参数确定与视频切片相关联的待编码视频序列;
具体的,多媒体数据处理装置可以获取与视频切片的分辨率相关联的缩放参数信息;其中,视频切片的分辨率是由初始视频序列的分辨率所确定的;进一步的,多媒体数据处理装置可以根据缩放参数信息对视频切片的分辨率进行缩放处理,将缩放处理后的视频切片确定为待编码视频序列。
步骤S204,对待编码视频序列进行预编码处理,得到预编码视频序列,根据预编码视频序列确定待编码视频序列对应的视频特征;
具体的,多媒体数据处理装置可以获取用于对待编码视频序列进行预编码的第二编码器,关闭第二编码器中的场景切分线程,根据关闭场景切分线程后的第二编码器对待编码视频序列进行预编码处理,得到预编码视序列;预编码视频序列中包含场景关键帧和预测视频帧;进一步的,多媒体数据处理装置可以根据场景关键帧、预测视频帧、预编码视频序列的分辨率以及预编码视频序列的码率,确定预编码视频序列的编码信息,将编码信息确定为待编码视频序列对应的视频特征。
步骤S205,获取与待编码视频序列相关联的视频质量标准参数,根据视频质量标准参数以及视频特征,预测待编码视频序列的编码参数;
其中,步骤S203-步骤S205的具体实现方式可以参见上述图6所对应实施例中对通过目标预测模型预测编码参数的描述,这里将不再继续进行赘述。
步骤S206,在获取到与视频切片相关联的编码参数时,对视频切片进行转码处理,得到视频切片相关联的视频转码序列;
步骤S207,根据视频转码序列的时长信息,对关联数据源进行切片,得到与视频转码序列具有相同时长的关联切片;
步骤S206-步骤S207的具体实现方式可以参见上述图3所对应实施例中对步骤S103-步骤S104的描述,这里将不再继续进行赘述。其中,缩放参数信息包含第一分辨率和第二分辨率;关联切片包含音频切片,该多媒体数据处理装置可以进一步执行下述步骤S208;
步骤S208,获取同一分辨率相关联的视频转码序列,根据场景关键帧对同一分辨率相关联的视频转码序列进行合并处理,得到与第一分辨率相关联的第一转码视频流和与第二分辨率相关联的第二转码视频流。可以理解的是,这里的第一分辨率和第二分辨率可以为上述多个分辨率中的任意两个分辨率,这里将不对其进行限定。
步骤S209,对音频切片中的每个音频信号进行合并处理,得到与每个音频信号相关联的目标音频信号;
可以理解的是,本申请实施例在从视频源文件中获取到音频数据源之后,可以用对该音频数据源进行预处理(例如,滤镜处理),这里的滤镜处理具体可以包含音量调整、异常处理(例如,反相位、混音、静音等处理),从而可以根据上述视频转码序列时长信息对预处理后的音频数据源进行切片,以得到与视频转码序列具有相同时长的音频切片。可选的,本申请实施例还可以在获取到音频数据源之后,直接根据上述视频转码序列时长信息对预处理后的音频数据源进行切片,以得到与视频转码序列具有相同时长的音频切片。应当理解,本申请实施例在根据视频转码后的视频转码序列的时长信息对音频数据源进行裁剪时,可以有效地确保裁剪后的音频切片可以严格对齐视频切片,进而可以确保音视频分离转码后的音画同步。
进一步的,在对裁剪后的音频切片进行编码之前,本申请实施例可以对裁剪后的音频切片进行合并处理,以得到具有PCM(Pulse Code Modulation,脉冲编码调制)格式的目标音频信号,进而可以继续执行下述步骤S210。
步骤S210,获取与目标音频信号相关联的第三编码器,通过第三编码器的对目标音频信号进行转码处理,得到目标音频信号对应的转码音频流;
具体的,多媒体数据处理装置可以获取与目标音频信号相关联的第三编码器(例如,AAC(Advanced Audio Coding,高级音频编码)编码器),从而可以根据第三编码器对应的初始化参数(这里的初始化参数可以包含分片长度和分片交叠长度等),确定用于对目标音频信号进行切片的起始位置和结束位置;进一步的,多媒体数据处理装置可以根据起始位置和结束位置对目标音频信号进行切片,得到与目标音频信号相关联的待编码音频分片;这里进行切片的主要目的是在于在该第三编码器中进行并行编码,从而可以加速对待编码音频分片进行编码的速度。进一步的,多媒体数据处理装置可以对目标音频信号中的每个待编码音频分片进行编码处理,以得到每个待编码音频分片对应的编码音频流,进而可以将每个待编码音频分片对应的编码音频流进行合并处理,得到目标音频信号对应的转码音频流。
可以理解的是,在采用AAC编码器对每个待编码音频分片进行编码处理的过程中,可以在每个待编码视频切片的头部添加预设的补偿信息,进而可以对添加补充信息的待编码视频切片进行编码处理,以得到编码处理后的每个待编码音频分片对应的编码音频流。因此,本申请实施例在对这些编码音频流进行合并的时候,需要消除分片交叠部分所引入的补偿信息(比如,需要滤除静音部分),以得到目标音频信号对应的转码音频流,并可以同步输出与转码音频流相关联的编码时延。
步骤S211,根据转码音频流、第一转码视频流和第二转码视频流,确定与源视频文件相关联的转码视频文件。
具体的,多媒体数据处理装置可以根据转码音频流与第一转码视频流之间的编码时延,对转码视频流和第一转码视频流进行封装,得到第一转码视频流对应的第一转码视频文件;进一步的,多媒体数据处理装置可以根据转码音频流与第二转码视频流之间的编码时延,对转码视频流和第二转码视频流进行封装,得到第二转码视频流对应的第二转码视频文件;进一步的,多媒体数据处理装置可以将第一转码视频文件和第二转码视频文件,确定与源视频文件相关联的转码视频文件。
换言之,本申请实施例在得到上述不同分辨率下的转码视频流之后,可以将相应的转码视频流与转码音频流的初始时延(即编码时延)进行对齐,进而可以封装得到严格对齐的转码视频文件,例如,AAC编码器在输出转码音频流的同时,会一并输出一个编码时延(例如,100ms)作为初始时延,这样,后续点播终端在拿到相应分辨率下的转码视频文件进行播放时,可以在转码音频流的初始时延达到100ms时,对音视数据进行播放,并开始同步播放视频数据,进而可以确保点播终端中所播放的视频数据的音画同步。
本申请实施例在从源视频文件中分离出视频数据源和关联数据源时,可以通过分镜头(即场景检测)的方式对原视频数据源中的视频内容进行一次分析,以准确定位到与视频数据源相关联的场景关键帧,此时,本申请实施例可以进一步根据场景关键帧划分出相应场景对应的视频切片,从而可以在一个视频切片对应一个场景的情况下,有效地确保同一视频切片中的视频内容的复杂度的单一性,进而可以在视频转码时提高视频质量的稳定性。另外,在数据分离(例如,音视频分离)的情况下,利用转码后的视频转码序列的时长信息对关联数据源(例如,音频数据源等)进行切片处理,可以确保转码后的音视频的数据同步(例如,音画同步)。
进一步地,请参见图8,是本申请实施例提供的一种多媒体数据处理方法的交互时序图,该方法可以应用于上述分布式转码系统,该方法可以由该分布式转码系统中的第一服务器、第二服务器、第三服务器和第四服务器交互执行,方法具体可以包括:
步骤S301,第一服务器获取源视频文件,从源视频文件中获取视频数据源和关联数据源;
步骤S302,第一服务器获取与视频数据源相关联的场景关键帧,根据场景关键帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的视频切片;
步骤S303,第一服务器将视频切片分发给第二服务器;
步骤S304,第二服务器获取与视频切片相关联的视频属性参数,基于视频属性参数确定与视频切片相关联的待编码视频序列;
步骤S305,第二服务器对待编码视频序列进行预编码处理,得到预编码视频序列,根据预编码视频序列确定待编码视频序列对应的视频特征;
步骤S306,第二服务器获取与待编码视频序列相关联的视频质量标准参数,根据视频质量标准参数以及视频特征,预测待编码视频序列的编码参数;
步骤S307,第二服务器在获取到与视频切片相关联的编码参数时,对视频切片进行转码处理,得到视频切片相关联的视频转码序列;
步骤S308,第二服务器将视频转码序列发送给第四服务器;
步骤S309,第二服务器将视频转码序列的时长信息发送给第三服务器;
步骤S310,第三服务器接收第一服务器分发的关联数据源;
步骤S311,第三服务器在获取到第二服务器发送的视频转码序列的时长信息时,对关联数据源进行切片,得到与视频转码序列具有相同时长的关联切片;
步骤S312,第三服务器对音频切片中的每个音频信号进行合并处理,得到与每个音频信号相关联的目标音频信号;
步骤S313,第三服务器获取与目标音频信号相关联的第三编码器,通过第三编码器的对目标音频信号进行转码处理,得到目标音频信号对应的转码音频流;
步骤S314,第三服务器将转码音频流发送给第四服务器;
可以理解的是,该分布式转码系统在执行完上述步骤S301-步骤S314之后,还可以继续执行下述步骤S315-步骤S316。这里的第四服务器可以为上述第一服务器,即第一服务器在具备上述音视频分离功能的同时,还可以具备上述音视频合并的功能;可选的,该第四服务器还可以为上述分布式转码系统中不同于上述第一服务器、第二服务器和第三服务器的其他服务器,以进一步提高分布式转码的效率。鉴于此,这里将不对其进行限定。
步骤S315,第四服务器获取同一分辨率相关联的视频转码序列,根据场景关键帧对同一分辨率相关联的视频转码序列进行合并处理,得到与第一分辨率相关联的第一转码视频流和与第二分辨率相关联的第二转码视频流;
步骤S316,第四服务器根据转码音频流、第一转码视频流和第二转码视频流,确定与源视频文件相关联的转码视频文件。
为便于理解,进一步的,请参见图9,是本申请实施例提供的一种分布式整体框架的结构示意图。如图9所示的分布式整体框架可以包含四个模块,切片模块、视频分片转码模块、音频转码模块和音视频合并模块。其中,切片模块为图9所示的切片模块4a,该切片模块4a可以运行在上述图8所示的第一服务器中。运行在第一服务器中的该切片模块4a可以用于对不包含音频分量的视频数据源进行切片,以得到细粒度的视频分片和关联数据源(例如,音频数据源)。其中,第一服务器对视频数据源进行切片的具体过程,可以参见上述图3所对应实施例中对视频切片的描述,这里将不再继续进行赘述。
其中,视频分片转码模块可以包含图9所示的至少一个视频分片转码模块4b、这些视频分片转码模块4b可以运行在上述图8所示的第二服务器中,即一个第二服务器中可以运行一个视频分片转码模块4b。运行在第二服务器中的视频分片转码模块4b可以用于对获取到的视频分片进行固定质量的多路转码。其中,第二服务器对视频分片进行多路转码的具体过程可以参见上述图3所对应实施例中对视频切片900a进行多路转码的描述,这里将不再继续进行赘述。
其中,音频转码模块可以为图9所示的音频转码模块4c,该音频转码模块4c可以运行在上述图8所示的第三服务器中。运行在第三服务器中的音频转码模块4c可以用于对音频数据源进行预处理(例如,上述滤镜处理)和音频转码。其中,第三服务器对音频数据源进行预处理和音频转码的具体过程,可以参见上述图7所对应实施例中对音频数据源的描述,这里将不再继续进行赘述。
其中,音视频合并模块可以为图9所示的音视频合并模块4d,该音视频合并模块4d可以运行在上述图8所示的第四服务器中。运行在第四服务器中的音视频合并模块4d可以用于对前述第二服务器所输出的视频转码序列进行合并处理,以得到不同分辨率下的转码视频流;另外第四服务器还可以用于对不同分辨率下的转码视频流和转码得到的转码音频流进行音视频封装,以输出相应的转码视频文件。其中,第四服务器获取转码视频文件的具体过程,可以参见上述图2所对应实施例中对同一分辨率下的转码视频文件的描述,这里将不再继续进行赘述。
可以理解的是,如图9所示的分布式流程架构可以用于对同一视频数据源的不同视频切片进行分布式转码,以提高在不同服务器中进行多路转码的效率,具体的,可以参见上述图2所对应实施例中对服务器10b、服务器10c和服务器10d的描述。可选的,如图9所示的分布式整体框架还可以用于对单个视频切片进行分布式转码,比如,可以在一个服务器中启动多个用于进行视频转码的线程,以确保在不同视频切片转码模块4b中进行视频转码的同一视频切片的场景关键帧(即上述即时刷新解码帧)之间可以彼此对齐,从而可以实现播放的无缝切换。
进一步地,请参见图10,是本申请实施例提供的一种多媒体数据处理装置的结构示意图。该多媒体数据处理装置1可以运行在上述分布式转码系统中的任意一个服务器,这里将不对其进行限定。进一步地,该多媒体数据处理装置1可以包括:源文件获取模块10,关键帧获取模块20,视频转码模块30和关联切片确定模块40;进一步的,该多媒体数据处理装置1还可以包括:属性参数获取模块50,预编码模块60,编码参数预测模块70,视频序列合并模块80,音频信号合并模块90,音频转码模块100和转码文件确定模块110。
源文件获取模块10,用于获取源视频文件,从源视频文件中获取视频数据源和关联数据源;
其中,源文件获取模块10包括:标准参数获取单元101,文件格式调整单元102和数据分离单元103;
标准参数获取单元101,用于获取与源视频数据相关联的标准参数配置信息;标准参数配置信息包含目标文件格式和与目标文件格式相关联的编码等级;
文件格式调整单元102,用于根据编码等级对应的第一编码器将源视频数据的视频文件格式由初始文件格式调整为目标文件格式,将目标文件格式对应的源视频数据作为源视频文件;
数据分离单元103,用于根据源视频文件对应的多媒体类型,对源视频文件进行数据分离,得到与源视频文件相关联的视频数据源和关联数据源。
其中,标准参数获取单元101,文件格式调整单元102和数据分离单元103的具体实现方式可以参见上述图3所对应实施例中对步骤S101的描述,这里将不再继续进行赘述。
关键帧获取模块20,用于获取与视频数据源相关联的场景关键帧,根据场景关键帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的视频切片;
其中,关键帧获取模块20包括:场景检测单元201和视频切片单元202;
场景检测单元201,用于调用第一编码器中的场景切分线程,对视频数据源进行场景检测,根据场景检测结果确定与视频数据源相关联的场景关键帧;
其中,场景检测单元201包括:下采样子单元2011,遍历获取子单元2012,相似度确定子单元2013和关键帧确定子单元2014;
下采样子单元2011,用于对视频数据源对应的初始视频序列进行下采样处理,将下采样后的初始视频序列确定为视频数据源对应的待处理视频序列;待处理视频序列和初始视频序列中均包含N个视频帧;N为正整数;
遍历获取子单元2012,用于从N个视频帧中遍历获取两个相邻的视频帧;两个相邻的视频帧包含视频帧Mi-1和视频帧Mi;i为大于1且小于等于N的正整数;
相似度确定子单元2013,用于调用第一编码器中的场景切分线程确定视频帧Mi和视频帧Mi-1之间的编码相似度;
其中,相似度确定子单元2013包括:切分线程获取子单元20131,帧内编码子单元10132,帧间编码子单元20133和相似度确定子单元20134;
切分线程获取子单元20131,用于获取第一编码器中的场景切分线程;
帧内编码子单元10132,用于调用场景切分线程对视频帧Mi进行帧内编码,得到第一帧内编码帧,根据第一帧内编码帧确定视频帧Mi对应的第一代价值;
帧间编码子单元20133,用于获取视频帧Mi-1对应的第二帧内编码帧,将第二帧内编码帧作为视频帧Mi的参考视频帧,根据参考视频帧对视频帧Mi进行帧间编码,得到视频帧Mi对应的第二代价值;
相似度确定子单元20134,用于将第一代价值与第二代价值之间的比值,确定为视频帧Mi和视频帧Mi-1之间的编码相似度。
其中,切分线程获取子单元20131,帧内编码子单元10132,帧间编码子单元20133和相似度确定子单元20134的具体实现方式可以参见上述图3所对应实施例中对确定编码相似度的具体过程的描述,这里将不再继续进行赘述。
关键帧确定子单元2014,用于在编码相似度大于场景切变阈值时,为视频帧Mi设置场景切变标识,将具有场景切变标识的视频帧Mi确定为与视频数据源相关联的场景关键帧。
其中,下采样子单元2011,遍历获取子单元2012,相似度确定子单元2013和关键帧确定子单元2014的具体实现方式可以参见上述图3所对应实施例中对获取场景关键帧的具体过程的描述,这里将不再继续进行赘述。
视频切片单元202,用于根据场景关键帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的视频切片。
其中,场景关键帧包含第一即时解码刷新帧;
视频切片单元202包括:第一切片子单元2021,帧组查找子单元2022,第二切片子单元2023和视频切片确定子单元2024;
第一切片子单元2021,用于根据场景关键帧中的第一即时解码刷新帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的至少一个初始帧组;
帧组查找子单元2022,用于获取第一编码器相关联的最大帧组长度,在至少一个帧组中查找帧组长度大于最大帧组长度的初始帧组,将查找到的初始帧组作为第一帧组,根据最大帧组长度在第一帧组中添加第二即时解码刷新帧;
第二切片子单元2023,用于根据第二即时解码刷新帧对第一帧组进行切片,得到第一帧组对应的第二帧组;第二帧组的帧组长度之和等于第一帧组的帧组长度;
视频切片确定子单元2024,用于将至少一个初始帧组中除第一帧组之外的初始帧组,以及第二帧组,确定为与初始视频序列相关联的视频切片。
其中,第一切片子单元2021,帧组查找子单元2022,第二切片子单元2023和视频切片确定子单元2024的具体实现方式可以参见上述图3所对应实施例中获取视频切片的具体过程的描述,这里将不再继续进行赘述。
其中,场景检测单元201和视频切片单元202的具体实现方式可以参见上述图3所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
视频转码模块30,用于在获取到与视频切片相关联的编码参数时,对视频切片进行转码处理,得到视频切片相关联的视频转码序列;
关联切片确定模块40,用于根据视频转码序列的时长信息,对关联数据源进行切片,得到与视频转码序列具有相同时长的关联切片。
可选的,属性参数获取模块50,用于获取与视频切片相关联的视频属性参数,基于视频属性参数确定与视频切片相关联的待编码视频序列;
其中,属性参数获取模块50包括:缩放参数获取单元501和分辨率缩放单元502;
缩放参数获取单元501,用于获取与视频切片的分辨率相关联的缩放参数信息;视频切片的分辨率是由初始视频序列的分辨率所确定的;
分辨率缩放单元502,用于根据缩放参数信息对视频切片的分辨率进行缩放处理,将缩放处理后的视频切片确定为待编码视频序列。
其中,缩放参数获取单元501和分辨率缩放单元502的具体实现方式可以参见上述图3所对应实施例中对获取待编码视频序列的具体过程的描述,这里将不再继续进行赘述。
预编码模块60,用于对待编码视频序列进行预编码处理,得到预编码视频序列,根据预编码视频序列确定待编码视频序列对应的视频特征;
其中,预编码模块60包括:预编码单元601和视频特征确定单元602;
预编码单元601,用于获取用于对待编码视频序列进行预编码的第二编码器,关闭第二编码器中的场景切分线程,根据关闭场景切分线程后的第二编码器对待编码视频序列进行预编码处理,得到预编码视序列;预编码视频序列中包含场景关键帧和预测视频帧;
视频特征确定单元602,用于根据场景关键帧、预测视频帧、预编码视频序列的分辨率以及预编码视频序列的码率,确定预编码视频序列的编码信息,将编码信息确定为待编码视频序列对应的视频特征。
其中,预编码单元601和视频特征确定单元602的具体实现方式可以参见上述图3所对应实施例中对获取视频特征的具体过程的描述,这里将不再继续进行赘述。
编码参数预测模块70,用于获取与待编码视频序列相关联的视频质量标准参数,根据视频质量标准参数以及视频特征,预测待编码视频序列的编码参数。
可选的,其中,缩放参数信息包含第一分辨率和第二分辨率;关联切片包含音频切片;
视频序列合并模块80,用于获取同一分辨率相关联的视频转码序列,根据场景关键帧对同一分辨率相关联的视频转码序列进行合并处理,得到与第一分辨率相关联的第一转码视频流和与第二分辨率相关联的第二转码视频流;
音频信号合并模块90,用于对音频切片中的每个音频信号进行合并处理,得到与每个音频信号相关联的目标音频信号;
音频转码模块100,用于获取与目标音频信号相关联的第三编码器,通过第三编码器的对目标音频信号进行转码处理,得到目标音频信号对应的转码音频流;
其中,音频转码模块100包括:切片位置确定单元1001,音频分片确定单元1002和编码合并单元1003;
切片位置确定单元1001,用于获取与目标音频信号相关联的第三编码器,根据第三编码器对应的初始化参数,确定用于对目标音频信号进行切片的起始位置和结束位置;
音频分片确定单元1002,用于根据起始位置和结束位置对目标音频信号进行切片,得到与目标音频信号相关联的待编码音频分片;
编码合并单元1003,用于对目标音频信号中的每个待编码音频分片进行编码处理,得到每个待编码音频分片对应的编码音频流,将每个待编码音频分片对应的编码音频流进行合并处理,得到目标音频信号对应的转码音频流。
其中,切片位置确定单元1001,音频分片确定单元1002和编码合并单元1003的具体实现方式可以参见上述图7所对应实施例中对得到转码音频流的具体过程的描述,这里将不再继续进行赘述。
转码文件确定模块110,用于根据转码音频流、第一转码视频流和第二转码视频流,确定与源视频文件相关联的转码视频文件。
其中,转码文件确定模块110包括:第一封装单元1101,第二封装单元1102和转码文件确定单元1103;
第一封装单元1101,用于根据转码音频流与第一转码视频流之间的编码时延,对转码视频流和第一转码视频流进行封装,得到第一转码视频流对应的第一转码视频文件;
第二封装单元1102,用于根据转码音频流与第二转码视频流之间的编码时延,对转码视频流和第二转码视频流进行封装,得到第二转码视频流对应的第二转码视频文件;
转码文件确定单元1103,用于将第一转码视频文件和第二转码视频文件,确定与源视频文件相关联的转码视频文件。
其中,第一封装单元1101,第二封装单元1102和转码文件确定单元1103的具体实现方式可以参见上述图7所对应实施例中对确定视频转码文件的具体过程的描述,这里将不再继续进行赘述。
其中,源文件获取模块10,关键帧获取模块20,视频转码模块30和关联切片确定模块40的具体实现方式可以参见上述图3所对应实施例中对步骤S101-步骤S104的实现方式,这里将不再继续进行赘述。进一步的,属性参数获取模块50,预编码模块60,编码参数预测模块70,视频序列合并模块80,音频信号合并模块90,音频转码模块100和转码文件确定模块110的具体实现方式可以参见上述图7所对应实施例中对步骤S201-步骤S211的实现方式,这里将不再继续进行赘述。可以理解的是,本申请实施例中的多媒体数据处理装置1可执行前文图3或图7所对应实施例中对多媒体数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图11,是本申请实施例提供的一种计算机设备的结构示意图。如图11所示,该计算机设备2000可以为上述图3所对应实施例中的目标服务器,这里将不对其进行限定。该计算机设备2000可以包括:处理器2001,网络接口2004和存储器2005,此外,该计算机设备2000还可以包括:用户接口2003,和至少一个通信总线2002。其中,通信总线2002用于实现这些组件之间的连接通信。其中,用户接口2003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口2003还可以包括标准的有线接口、无线接口。网络接口2004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器2004可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器2005可选的还可以是至少一个位于远离前述处理器2001的存储装置。如图11所示,作为一种计算机存储介质的存储器2005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
其中,该计算机设备2000中的可选用户接口2003还可以包括显示屏(Display)、键盘(Keyboard)。在图12所示的计算机设备1000中,网络接口2004可提供网络通讯功能;而用户接口2003主要用于为用户提供输入的接口;而处理器2001可以用于调用存储器2005中存储的设备控制应用程序,以实现:
获取源视频文件,从源视频文件中获取视频数据源和关联数据源;
获取与视频数据源相关联的场景关键帧,根据场景关键帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的视频切片;
在获取到与视频切片相关联的编码参数时,对视频切片进行转码处理,得到视频切片相关联的视频转码序列;
根据视频转码序列的时长信息,对关联数据源进行切片,得到与视频转码序列具有相同时长的关联切片。
应当理解,本申请实施例中所描述的计算机设备2000可执行前文图3或图7所对应实施例中对多媒体数据处理方法的描述,也可执行前文图10所对应实施例中对多媒体数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。此外,这里需要指出的是:本申请实施例还提供了一种计算机存储介质,且计算机存储介质中存储有前文提及的多媒体数据处理装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3或图7所对应实施例中对多媒体数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
进一步的,请参见图12,是本申请实施例提供的一种多媒体数据处理系统的结构示意图。其中,多媒体数据处理系统3包括:分布式转码系统中的第一服务器2a、第二服务器2b和第三服务器2c;其中,服务器2a可以为上述图8所对应实施例中的第一服务器,服务器2b可以为上述图8所对应实施例中的第二服务器,服务器2c可以为上述图8所对应实施例中的第三服务器。
第一服务器2a,用于获取源视频文件,从源视频文件中获取视频数据源和关联数据源;
第一服务器2a,还用于获取与视频数据源相关联的场景关键帧,根据场景关键帧对视频数据源的初始视频序列进行切片,得到与初始视频序列相关联的视频切片,将视频切片分发给第二服务器2b;
第二服务器2b,用于在获取到与视频切片相关联的编码参数时,对视频切片进行转码处理,得到视频切片相关联的视频转码序列;
第三服务器3c,用于接收第一服务器2a分发的关联数据源,并在获取到第二服务器2b发送的视频转码序列的时长信息时,对关联数据源进行切片,得到与视频转码序列具有相同时长的关联切片。
其中,第一服务器2a获取并分发视频切片的具体实现方式可以参见上述图2所对应实施例中对服务器10a分发视频切片的描述,这里将不再继续进行赘述。第二服务器2b获取视频转码序列的具体实现方式可以参见上述图2所对应实施例中对视频切片100b进行转码视频转码的描述,这里将不再继续进行赘述。第三服务器2c获取关联切片的具体实现方式可以参见上述图2所对应实施例中对在服务器10e中得到音频切片的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (15)

1.一种多媒体数据处理方法,其特征在于,所述方法包括:
获取源视频文件,从所述源视频文件中获取视频数据源和关联数据源;
获取与所述视频数据源相关联的场景关键帧,根据所述场景关键帧对所述视频数据源的初始视频序列进行切片,得到与所述初始视频序列相关联的视频切片;
在获取到与所述视频切片相关联的编码参数时,对所述视频切片进行转码处理,得到所述视频切片相关联的视频转码序列;
根据所述视频转码序列的时长信息,对所述关联数据源进行切片,得到与所述视频转码序列具有相同时长的关联切片。
2.根据权利要求1所述的方法,其特征在于,所述获取源视频文件,从所述源视频文件中获取视频数据源和关联数据源,包括:
获取与源视频数据相关联的标准参数配置信息;所述标准参数配置信息包含目标文件格式和与所述目标文件格式相关联的编码等级;
根据所述编码等级对应的第一编码器将所述源视频数据的视频文件格式由初始文件格式调整为所述目标文件格式,将所述目标文件格式对应的源视频数据作为源视频文件;
根据所述源视频文件对应的多媒体类型,对所述源视频文件进行数据分离,得到与所述源视频文件相关联的视频数据源和关联数据源。
3.根据权利要求2所述的方法,其特征在于,所述获取与所述视频数据源相关联的场景关键帧,根据所述场景关键帧对所述视频数据源的初始视频序列进行切片,得到与所述初始视频序列相关联的视频切片,包括:
调用所述第一编码器中的场景切分线程,对所述视频数据源进行场景检测,根据场景检测结果确定与所述视频数据源相关联的场景关键帧;
根据所述场景关键帧对所述视频数据源的初始视频序列进行切片,得到与所述初始视频序列相关联的视频切片。
4.根据权利要求3所述的方法,其特征在于,所述调用所述第一编码器中的场景切分线程,对所述视频数据源进行场景检测,根据场景检测结果确定与所述视频数据源相关联的场景关键帧,包括:
对所述视频数据源对应的初始视频序列进行下采样处理,将下采样后的初始视频序列确定为所述视频数据源对应的待处理视频序列;所述待处理视频序列和所述初始视频序列中均包含N个视频帧;N为正整数;
从所述N个视频帧中遍历获取两个相邻的视频帧;所述两个相邻的视频帧包含视频帧Mi-1和视频帧Mi;i为大于1且小于等于N的正整数;
调用所述第一编码器中的场景切分线程确定所述视频帧Mi和所述视频帧Mi-1之间的编码相似度;
在所述编码相似度大于场景切变阈值时,为所述视频帧Mi设置场景切变标识,将具有所述场景切变标识的视频帧Mi确定为与所述视频数据源相关联的场景关键帧。
5.根据权利要求4所述的方法,其特征在于,所述调用所述第一编码器中的场景切分线程确定所述视频帧Mi和所述视频帧Mi-1之间的编码相似度,包括:
获取所述第一编码器中的场景切分线程;
调用所述场景切分线程对所述视频帧Mi进行帧内编码,得到第一帧内编码帧,根据所述第一帧内编码帧确定所述视频帧Mi对应的第一代价值;
获取所述视频帧Mi-1对应的第二帧内编码帧,将所述第二帧内编码帧作为所述视频帧Mi的参考视频帧,根据所述参考视频帧对所述视频帧Mi进行帧间编码,得到所述视频帧Mi对应的第二代价值;
将所述第一代价值与所述第二代价值之间的比值,确定为所述视频帧Mi和所述视频帧Mi-1之间的编码相似度。
6.根据权利要求3所述的方法,其特征在于,所述场景关键帧包含第一即时解码刷新帧;
所述根据所述场景关键帧对所述视频数据源的初始视频序列进行切片,得到与所述初始视频序列相关联的视频切片,包括:
根据所述场景关键帧中的所述第一即时解码刷新帧对所述视频数据源的初始视频序列进行切片,得到与所述初始视频序列相关联的至少一个初始帧组;
获取所述第一编码器相关联的最大帧组长度,在所述至少一个帧组中查找帧组长度大于所述最大帧组长度的初始帧组,将查找到的初始帧组作为第一帧组,根据所述最大帧组长度在所述第一帧组中添加第二即时解码刷新帧;
根据所述第二即时解码刷新帧对所述第一帧组进行切片,得到所述第一帧组对应的第二帧组;所述第二帧组的帧组长度之和等于所述第一帧组的帧组长度;
将所述至少一个初始帧组中除所述第一帧组之外的初始帧组,以及所述第二帧组,确定为与所述初始视频序列相关联的视频切片。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取与所述视频切片相关联的视频属性参数,基于所述视频属性参数确定与所述视频切片相关联的待编码视频序列;
对所述待编码视频序列进行预编码处理,得到预编码视频序列,根据所述预编码视频序列确定所述待编码视频序列对应的视频特征;
获取与所述待编码视频序列相关联的视频质量标准参数,根据所述视频质量标准参数以及所述视频特征,预测所述待编码视频序列的编码参数。
8.根据权利要求7所述的方法,其特征在于,所述获取与所述初始视频序列相关联的视频属性参数,基于所述视频属性参数确定与所述视频切片相关联的待编码视频序列,包括:
获取与所述视频切片的分辨率相关联的缩放参数信息;所述视频切片的分辨率是由所述初始视频序列的分辨率所确定的;
根据所述缩放参数信息对所述视频切片的分辨率进行缩放处理,将缩放处理后的视频切片确定为待编码视频序列。
9.根据权利要求8所述的方法,其特征在于,所述对所述待编码视频序列进行预编码处理,得到预编码视频序列,根据所述预编码视频序列确定所述待编码视频序列对应的视频特征,包括:
获取用于对所述待编码视频序列进行预编码的第二编码器,关闭所述第二编码器中的场景切分线程,根据关闭场景切分线程后的第二编码器对所述待编码视频序列进行预编码处理,得到预编码视序列;所述预编码视频序列中包含所述场景关键帧和预测视频帧;
根据所述场景关键帧、所述预测视频帧、所述预编码视频序列的分辨率以及所述预编码视频序列的码率,确定所述预编码视频序列的编码信息,将所述编码信息确定为所述待编码视频序列对应的视频特征。
10.根据权利要求8所述的方法,其特征在于,所述缩放参数信息包含第一分辨率和第二分辨率;所述关联切片包含音频切片;
所述方法还包括:
获取同一分辨率相关联的视频转码序列,根据所述场景关键帧对所述同一分辨率相关联的视频转码序列进行合并处理,得到与所述第一分辨率相关联的第一转码视频流和与所述第二分辨率相关联的第二转码视频流;
对所述音频切片中的每个音频信号进行合并处理,得到与所述每个音频信号相关联的目标音频信号;
获取与所述目标音频信号相关联的第三编码器,通过所述第三编码器的对所述目标音频信号进行转码处理,得到所述目标音频信号对应的转码音频流;
根据所述转码音频流、所述第一转码视频流和所述第二转码视频流,确定与所述源视频文件相关联的转码视频文件。
11.根据权利要求10所述的方法,其特征在于,所述获取与所述目标音频信号相关联的第三编码器,通过所述第三编码器的对所述目标音频信号进行转码处理,得到所述目标音频信号对应的转码音频流,包括:
获取与所述目标音频信号相关联的第三编码器,根据所述第三编码器对应的初始化参数,确定用于对所述目标音频信号进行切片的起始位置和结束位置;
根据所述起始位置和所述结束位置对所述目标音频信号进行切片,得到与所述目标音频信号相关联的待编码音频分片;
对所述目标音频信号中的每个待编码音频分片进行编码处理,得到所述每个待编码音频分片对应的编码音频流,将所述每个待编码音频分片对应的编码音频流进行合并处理,得到所述目标音频信号对应的转码音频流。
12.根据权利要求10所述的方法,其特征在于,所述根据所述转码音频流、所述第一转码视频流和所述第二转码视频流,确定与所述源视频文件相关联的转码视频文件,包括:
根据所述转码音频流与所述第一转码视频流之间的编码时延,对所述转码视频流和所述第一转码视频流进行封装,得到所述第一转码视频流对应的第一转码视频文件;
根据所述转码音频流与所述第二转码视频流之间的编码时延,对所述转码视频流和所述第二转码视频流进行封装,得到所述第二转码视频流对应的第二转码视频文件;
将所述第一转码视频文件和所述第二转码视频文件,确定与所述源视频文件相关联的转码视频文件。
13.一种多媒体数据处理方法,其特征在于,包括:
第一服务器获取源视频文件,从所述源视频文件中获取视频数据源和关联数据源;
所述第一服务器获取与所述视频数据源相关联的场景关键帧,根据所述场景关键帧对所述视频数据源的初始视频序列进行切片,得到与所述初始视频序列相关联的视频切片,将所述视频切片分发给第二服务器;
所述第二服务器在获取到与所述视频切片相关联的编码参数时,对所述视频切片进行转码处理,得到所述视频切片相关联的视频转码序列;
第三服务器接收所述第一服务器分发的所述关联数据源,并在获取到所述第二服务器发送的所述视频转码序列的时长信息时,对所述关联数据源进行切片,得到与所述视频转码序列具有相同时长的关联切片。
14.一种视频数据处理系统,其特征在于,所述系统包括:分布式转码系统中的第一服务器、第二服务器和第三服务器;
所述第一服务器,用于获取源视频文件,从所述源视频文件中获取视频数据源和关联数据源;
所述第一服务器,还用于获取与所述视频数据源相关联的场景关键帧,根据所述场景关键帧对所述视频数据源的初始视频序列进行切片,得到与所述初始视频序列相关联的视频切片,将所述视频切片分发给所述第二服务器;
所述第二服务器,用于在获取到与所述视频切片相关联的编码参数时,对所述视频切片进行转码处理,得到所述视频切片相关联的视频转码序列;
所述第三服务器,用于接收所述第一服务器分发的所述关联数据源,并在获取到所述第二服务器发送的所述视频转码序列的时长信息时,对所述关联数据源进行切片,得到与所述视频转码序列具有相同时长的关联切片。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1-12任一项所述的方法。
CN202010075681.3A 2020-01-22 2020-01-22 一种多媒体数据处理方法、系统以及存储介质 Active CN111294612B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010075681.3A CN111294612B (zh) 2020-01-22 2020-01-22 一种多媒体数据处理方法、系统以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010075681.3A CN111294612B (zh) 2020-01-22 2020-01-22 一种多媒体数据处理方法、系统以及存储介质

Publications (2)

Publication Number Publication Date
CN111294612A CN111294612A (zh) 2020-06-16
CN111294612B true CN111294612B (zh) 2021-05-28

Family

ID=71028414

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010075681.3A Active CN111294612B (zh) 2020-01-22 2020-01-22 一种多媒体数据处理方法、系统以及存储介质

Country Status (1)

Country Link
CN (1) CN111294612B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111770390B (zh) * 2020-07-09 2024-02-09 腾讯科技(深圳)有限公司 数据处理方法、装置、服务器及存储介质
CN111885414B (zh) * 2020-07-24 2023-03-21 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及可读存储介质
CN112165622B (zh) * 2020-09-23 2023-06-27 上海网达软件股份有限公司 一种单Pod多协程视频文件转码方法及系统
CN112653892B (zh) * 2020-12-18 2024-04-23 杭州当虹科技股份有限公司 一种利用视频特征实现转码测试评估的方法
CN114885192A (zh) * 2021-02-05 2022-08-09 北京小米移动软件有限公司 视频处理方法、视频处理装置及存储介质
CN117014649A (zh) * 2022-04-28 2023-11-07 北京字跳网络技术有限公司 视频处理方法、装置及电子设备
CN114979713A (zh) * 2022-06-06 2022-08-30 北京奇艺世纪科技有限公司 帧对齐方法、装置、计算机设备和存储介质
CN117676273A (zh) * 2022-08-29 2024-03-08 抖音视界有限公司 视频处理方法、装置及服务器

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103929655B (zh) * 2014-04-25 2017-06-06 网易传媒科技(北京)有限公司 对音视频文件进行转码处理的方法和设备
US20170180746A1 (en) * 2015-12-22 2017-06-22 Le Holdings (Beijing) Co., Ltd. Video transcoding method and electronic apparatus
CN109246443B (zh) * 2018-11-28 2021-03-23 湖南快乐阳光互动娱乐传媒有限公司 一种直播流切片同步方法及系统
CN110087142B (zh) * 2019-04-16 2022-01-25 咪咕文化科技有限公司 一种视频切片方法、装置、终端及存储介质

Also Published As

Publication number Publication date
CN111294612A (zh) 2020-06-16

Similar Documents

Publication Publication Date Title
CN111294612B (zh) 一种多媒体数据处理方法、系统以及存储介质
WO2021147448A1 (zh) 一种视频数据处理方法、装置及存储介质
US10368075B2 (en) Clip generation based on multiple encodings of a media stream
CN111277826B (zh) 一种视频数据处理方法、装置及存储介质
US11025902B2 (en) Systems and methods for the reuse of encoding information in encoding alternative streams of video data
US9756369B2 (en) Method and apparatus for streaming media data segments of different lengths wherein the segment of different length comprising data not belonging to the actual segment and beginning with key frames or containing key frames only
US11695816B2 (en) Video streaming
Barman et al. H. 264/MPEG-AVC, H. 265/MPEG-HEVC and VP9 codec comparison for live gaming video streaming
US11128897B2 (en) Method for initiating a transmission of a streaming content delivered to a client device and access point for implementing this method
US20180063590A1 (en) Systems and Methods for Encoding and Playing Back 360° View Video Content
CN109168083B (zh) 一种流媒体实时播放方法及装置
CN109792547A (zh) 观看者重视度自适应比特率传送
US9060184B2 (en) Systems and methods for adaptive streaming with augmented video stream transitions using a media server
US9667885B2 (en) Systems and methods to achieve interactive special effects
De Simone et al. Comparison of DASH adaptation strategies based on bitrate and quality signalling
CN111447459B (zh) 一种rtmp自适应码率实现方法
US20230291777A1 (en) Video streaming
WO2013163221A1 (en) Systems and methods for adaptive streaming with augmented video stream transitions
US20130287092A1 (en) Systems and Methods for Adaptive Streaming with Augmented Video Stream Transitions
CN113473228A (zh) 8k录播视频的传输控制方法、装置、存储介质及设备
CN111093107A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40024383

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant