基本概念

为了便于您更好的理解和使用媒体处理产品,您可以在使用前了解媒体处理中管道、工作流、转码模板、转封装等基本概念。

媒体处理产品级别概念

作业/任务(Job)

作业/任务(Job)是MPS中的一个抽象概念。

  • 常见类型:提交媒体信息作业、提交转码作业、查询转码作业、提交截图作业、提交智能生产作业、提交智能标签作业、提交媒体审核作业、提交视频DNA作业、提交视频版权水印作业等。

  • 提交任务:

    • 提交方式:支持使用MPS控制台、调用各类提交作业的SDK/API、配置工作流后通过触发工作流提交。

    • 每次执行的作业/任务包含3个关键信息:输入、输出和处理参数。以提交转码作业为例,提交时需要指定的核心参数有:输入文件、输出路径、转码模板(或转码参数)、管道、优先级等。

  • 调用模式和获取结果:任务类型不同,执行所需的时间也不同。部分任务很快完成,但是多数任务都需要下载文件,并经过一段时间进行处理、分析,无法实时完成 。因此将任务分为同步、异步两种调用模式。

    调用模式

    适用的任务

    提交方式

    获取任务结果

    流程图

    同步

    单张截图、获取媒体信息作业。

    • 调用各类提交作业的SDK/API

    提交后,接口会立即返回任务结果,如截图文件地址、媒体信息详情。

    您还可以通过轮询查询任务接口获取任务结果,但不支持通过配置MNS消息接收任务结果。

    说明

    若输入文件较大可能会超时失败,请酌情增加重试机制。

    同步任务流程

    异步

    MPS的所有任务类型,包括:

    媒体转码(普通转码、窄带高清1.0、窄带高清2.0、音视频增强等)、截图、获取媒体信息、视频AI(视频生产、智能标签、智能审核、视频DNA、数字水印)等。

    • MPS控制台(部分类型)

    • 调用各类提交作业的SDK/API

    • 配置工作流后通过触发工作流提交(部分类型)

    提交后,接口仅立即返回是否提交成功,而任务结果需要定时轮询配置MNS获取。

    • 定时轮询:每个任务都有一个唯一JobId标识,在提交任务时会同步返回给调用方,或在控制台任务列表中查看。您可以记录该JobId,定时轮询查询任务接口获取任务结果。

    • 配置MNS:为管道/工作流配置MNS消息,可以及时获得任务结果。消息通知包含任务ID(JobId)、用户数据(UserData)和具体结果。

    异步任务流程

管道(Pipeline)

管道(Pipeline)是异步任务的队列。当您提交异步任务后,任务会进入管道中进行排队,在并发内根据优先级和提交顺序依次被调度执行。不同类型管道的创建数量、适用功能、并发能力不同。详见管道概述

工作流(Workflow)

工作流(Workflow)是预先编排好的一系列任务流程,可以实现在指定OSS Bucket上传一个文件后,自动按照预先编排好的环节和条件依次执行作业。

转码模板(Template)

转码模板是一系列处理参数的集合。在创建转码任务或使用工作流时,可以使用转码模板简化操作。每个转码模板都有一个唯一ID标识。按创建来源分为自定义模板、定制模板和系统预置模板。详细信息请参见转码模板概述

  • 自定义模板:用户通过MPS控制台或接口创建的转码模板,无后台定制参数。

  • 定制模板:MPS根据用户的个性化需求,在后台配置了定制参数的转码模板,处理效果以定制参数为准,用户自定义参数不会生效。定制参数对用户不可见,用户侧不支持修改。

  • 系统预置模板:MPS会根据不同分辨率,为适配一定网络带宽范围提供的预置模板。包含预置静态模板和预置智能模板,预置静态模板支持普通转码、音频转码、转封装、窄带高清™1.0、窄带高清™2.0。详细信息请参见MPS控制台预置模板详情

水印模板(Watermark template)

水印模板是一系列为视频添加水印的参数集合(水印位置、偏移量、大小等)。每个水印模板都有一个唯一ID标识。为输出视频添加水印时,可指定水印模板或直接传入相关参数。

模板分析作业(Analysic task)

由于输入文件本身有误差(分辨率、码率等),不一定所有的预置模板都适用于该输入文件。因此使用预置模板前,需要调用提交模板分析作业接口,模板分析作业的结果为该输入文件可用的预置模板列表,结果可以通过查询模板分析作业接口获取。

音视频基本概念

转码(Transcoding)

转码(Transcoding)是指将已经压缩编码的音视频码流转换成另一个音视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求。转码本质上是一个先解码、再编码的过程,因此转换前后的码流可能遵循相同的视频编码格式,也可能不遵循相同的视频编码格式。常见的编码格式有H.264、H.265、AV1等。

转封装(Packaging)

转封装指的是将视频或音频的封装格式进行转换,如将AVI的视频转换为MP4,期间并不会进行音视频的编码和解码工作,而是直接将视频和音频压缩码流从一种封装格式文件中获取出来然后打包成另一种封装格式的文件。相比转码,转封装有两大特点:

  • 处理速度极快。音视频编解码过程十分复杂,占据了转码的绝大部分时间。转封装不需要进行编码和解码,节约了大量的处理时间。

  • 音视频质量无损。没有解码(解压缩)和编码(压缩)过程,所以不会有音视频的压缩损伤。转封装后的文件与原始文件的分辨率、码率等几乎一致,在MP4转M3U8+TS场景下因协议规范会导致封包大小增加。

分辨率(Resolution)

分辨率(Resolution)用来描述视频对细节的分辨能力,通常表示为每一个方向上的像素数量,比如1280x720等。分辨率决定了视频画面细节的精细程度。通常情况下,视频的分辨率越高,所包含的像素就越多,画面就越清晰。

分辨率是决定码率的主要因素,不同的分辨率要采用不同的码率。总体而言,视频的分辨率越高,所要求的码率也越大,但并不总是如此,不同分辨率都有合理的码率选择范围。所谓“合理的范围”指的是,如果低于这个范围,视频画面质量会很差;如果高于这个范围,画面提升有限甚至几乎无提升,且浪费网络流量和存储空间。

码率(Bitrate)

码率(Bitrate)是指视频文件在单位时间内使用的数据流量,也叫码流或码流率,是视频编码中画面质量控制最重要的部分。量度单位为“比特每秒”(bit/s或bps),常使用Kbps(每秒多少千个比特)或Mbps。一般来说同样分辨率下,视频文件的码率越大,压缩比就越小,画面质量就越高。码率越大,说明单位时间内取样率越大,数据流精度就越高,处理出来的文件就越接近原始文件,图像质量越好,画质越清晰,要求播放设备的解码能力也越高。

当然,码率越大,文件体积也越大,其计算公式是文件体积=时间×码率/8。例如,网络上常见的一部60分钟的码率为1Mbps的720P的视频文件,其体积就大概为3600秒×1Mb/8=450MB。

帧率(Frame Rate)

帧率(Frame Rate)是单位时间内视频显示帧数的量度单位,也就是每秒钟刷新的图片的帧数,量度单位为“每秒显示帧数”(Frame Per Second,FPS)或“赫兹”。

高的帧率可以得到更流畅、更逼真的画面效果。一般来说25~30fps就可接受,提升至60fps则可以明显提升交互感和逼真感,但一般来说超过75fps就不容易察觉到有明显的流畅度提升了。如果帧率超过屏幕刷新率只会浪费图形处理的能力,因为显示设备不能以这么快的速度更新,这样超过刷新率的帧率就浪费掉了。在分辨率不变的情况下,帧率越高,则对显卡的处理能力要求越高。

关键帧间隔(GOP)

GOP(Group of Pictures)是一组以MPEG编码的影片或视讯串流内部的连续图像,以I帧开头,到下一个I帧结束。一个GOP包含如下图像类型:

  • I帧(Intra Coded Picture):又称帧内编码帧,为关键帧,是一种自带全部信息的独立帧,无需参考其他图像便可独立进行解码,可以简单理解为一张静态画面。视频序列中的第一个帧始终都是I帧,每个GOP由I帧开始。

  • P帧(Predictive Coded Picture):又称帧间预测编码帧,需要参考前面的I帧才能进行编码。表示的是当前帧画面与前一帧(前一帧可能是I帧也可能是P帧)的差别。解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。与I帧相比,P帧通常占用更少的数据位,但不足是,由于P帧对前面的P和I参考帧有着复杂的依赖性,因此对传输错误非常敏感。

  • B帧(Bidirectionally Predictive Coded Pictures):又称双向预测编码帧,也就是B帧记录的是本帧与前后帧的差别。要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。B帧压缩率高,但是对解码性能要求较高。

GOP值表示关键帧的间隔(即两个关键帧之间的帧数),也就是两个IDR帧之间的距离,一个帧组的最大帧数。一般而言,每一秒视频至少需要使用1个关键帧。增加关键帧个数可改善视频质量,但会同时增加带宽和网络负载。GOP值(帧数)除以帧率即为时间间隔,如阿里云视频点播默认的GOP值为250帧,帧率为25fps,则时间间隔为10秒。

GOP值需要控制在合理范围,以平衡视频质量、文件大小(网络带宽)和seek效果(拖动、快进的响应速度)等:

  • 加大GOP值有利于减小视频文件大小,但也不宜设置过大,太大则会导致GOP后部帧的画面失真,影响视频质量。

  • GOP值也是影响视频seek响应速度的关键因素,seek时播放器需要定位到离指定位置最近的前一个关键帧,如果GOP太大意味着距离指定位置可能越远(需要解码的预测帧就越多)、seek响应的时间(缓冲时间)也越长。

  • 由于P、B帧的复杂度大于I帧,GOP值过大,过多的P、B帧会影响编码效率,使编码效率降低。

  • 但如果设置过小的GOP值,则需要提高视频的输出码率,以确保画面质量不会降低,故会增加网络带宽。

编码级别(Profile)

编码级别(Profile)是针对特定应用场景的特定编码功能的集合。

H.264 规定了三种主要级别:

  • Baseline:基本画质,适合移动端设备。支持I/P 帧,只支持无交错(Progressive)和CAVLC。

  • Main:主流画质,适合标准分辨率设备,如低解码(相对而言)的 MP4、便携的视频播放器、PSP 和 iPod 等。支持I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),也支持CAVLC和CABAC。

  • High:高级画质,适合高分辨率、大屏设备,比如广播及视频碟片存储(蓝光影片),高清电视。在Main的基础上增加了8x8内部预测、自定义量化、无损视频编码和更多的YUV格式。

AAC的主要级别:

  • aac_low:Low Complexity AAC (LC)

  • aac_he:High Efficiency AAC (HE-AAC)

  • aac_he_v2:High Efficiency AAC version 2 (HE-AACv2)

  • aac_ld:Low Delay AAC (LD)

  • aac_eld:Enhanced Low Delay AAC (ELD)

码率控制方法

码率控制是指视频编码中决定输出码率的过程,常用的码率控制方法有:

  • CBR(Constant Bitrate):固定码率模式,指文件从头到尾都是一种码率。相对于VBR和ABR来讲,它压缩出来的文件体积较大,而且视频质量相对于VBR和ABR不会有明显的提高。

  • VBR(Variable Bitrate):动态码率模式,也就是非固定码率。音视频编码时,根据输入文件的复杂程度即时确定使用什么码率,对于复杂内容分配更高码率,对于简单内容分配较少码率。VBR一般需与Two-Pass编码模式使用。VBR适用于存储场景,可以更合理利用有限的存储空间,但无法预知输出文件的大小和码率波动情况。

  • ABR(Average Bitrate):平均码率模式,是VBR的一种插值参数。LAME针对CBR不佳的文件体积比和VBR生成文件大小不定的特点创造了这种编码模式。ABR在指定的文件大小内,以每50帧(30帧约1秒)为一段,低频和不敏感频率使用相对低的流量,高频和大动态表现时使用高流量,可以做为VBR和CBR的一种折衷选择。ABR在一定的时间范围内达到设定的码率,但是局部码率峰值可以超过设定的码率,平均码率恒定。ABR是VBR的改良版,能确保输出平均码率在合理范围,且在这个范围内,还是动态根据复杂度编码,也是阿里云默认的编码控制方式。

  • VBV(Video Buffering Verifier):视频缓冲区校验器提供了一种确保码率被限制在某个最大值的方法,通过设置输出码率峰值maxrate和缓冲区大小bufsize来使用该方法。VBV可以与Two-Pass或CRF编码一起使用,后一种模式也被称为“Capped CRF”。

  • Bufsize:视频缓冲区大小。设置取决于你期望码率的波动情况。通常将bufsize设为maxrate的两倍;如果客户端缓存比较小,可设置bufsize等于maxrate;如果想限制码率,可设置bufsize为maxrate的一半或更小。

  • CRF(Constant Rate Factor):质量控制因子模式。将视频质量量化为不同等级,0为无损,51为最差。通过设置CRF实现整体视频的主观质量恒定,所以码率也会随场景复杂度而波动。如果您不清楚使用什么CRF,建议取值[23,29]。您可根据画面复杂度进行调节,每增或减6,码率会减少一半或增加一倍,通常同等清晰度下动画片可以比实拍设置得更高。CRF可以获得更好的视频质量,但无法预知输出文件的大小和码率波动情况。

  • Capped CRF:CRF输出的码率不固定,可以结合VBV一起使用来限制码率波动范围,避免出现码率尖峰。

  • One-Pass:相比Two-Pass的编码速度更快。是阿里云默认的编码方式。

  • Two-Pass:编码器执行两次来精准分配码率,以获取体积更小质量更高的编码结果。first pass用于分析视频并生成log文件,second pass会根据分析结果执行编码以获得最佳编码质量。Two-Pass相比One-Pass模式需要花费更多时间,所以无法使用在直播、实时通信等对转码时效性要求高的场景。以及若输入视频的压缩率已经很高,也不适合使用Two-Pass,会出现块效应。

通用概念

地域(Region)

地域(Region)指阿里云的服务节点。用户通过选择不同阿里云Region的服务,可就近使用阿里云的服务,获得更低的访问延时和更好的用户体验。

对象存储(OSS)

指阿里云对象存储服务(OSS)。媒体处理服务对用户存储于OSS的媒体文件进行转码,转码输出文件也保存在OSS中。更多OSS相关概念,请参见OSS基本概念

存储空间(Bucket)

存储空间是用户用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。存储空间具有各种配置属性,包括地域、访问权限、存储类型等,用户可以根据实际需求,创建不同类型的存储空间用来存储不同的数据。更多说明,请参见存储空间(Bucket)

对象(Object)

对象是OSS存储数据的基本单元,也被称为OSS的文件。和传统的文件系统不同,对象没有文件目录层级结构的关系。对象由元信息(Object Meta),用户数据(Data)和文件名(Key)组成,并且由存储空间内部唯一的Key来标识。对象元信息是一组键值对,表示了对象的一些属性,比如最后修改时间、大小等信息,同时用户也可以在元信息中存储一些自定义的信息。更多说明,请参见对象(Object)

AccessKey(访问密钥)

AccessKey简称AK,指的是访问身份验证中用到的AccessKey ID和AccessKey Secret。OSS通过使用AccessKey ID和AccessKey Secret对称加密的方法来验证某个请求的发送者身份。AccessKey ID用于标识用户,AccessKey Secret是用户用于加密签名字符串和OSS用来验证签名字符串的密钥,必须保密。

AccessKey包含以下三种:

  • Bucket的拥有者申请的AccessKey。

  • 被Bucket的拥有者通过RAM授权给第三方请求者的AccessKey。

  • 被Bucket的拥有者通过STS授权给第三方请求者的AccessKey。

更多信息,请参见创建AccessKey