产品百科 |视频点播的基本概念

简介: 为便于您更好的理解视频点播产品,您可以在使用前了解视频格式、视频编码、视频转码等基本概念。

文件格式

我们知道操作系统中的文件名都有后缀,即扩展名,例如 1.doc,2.jpg,3.avi 等。设置扩展名的目的是让系统中的应用程序来识别并关联这些文件,让相应的文件由相应的应用程序打开。常见的文件格式如 1.avi,2.mpg,3.mp4 这些都叫做视频的文件格式,可由电脑上安装的视频播放器关联和打开(播放)。

封装格式

封装格式(Format),也称多媒体容器(Multimedia Container),是将已编码压缩好的视频轨道、音频轨道和元数据(视频基本信息如标题、字幕等)按照一定的格式规范,打包放到一个文件中,形成特定文件格式的视频文件。

封装格式主要分为两大类:面向存储的和面向流媒体的。

  • 面向存储的,常见的有 AVI、ASF(WMA/WMV)、MP4、MKV、RMVB(RM/RA)等;
  • 面向流媒体的,常见的有 FLV、TS(需要配合流媒体网络传输协议,如 HLS、RTMP 等),MP4 也支持流媒体方式(配合 HTTP 等)。

下面以流媒体传输协议的视角重点介绍面向流媒体的封装格式:

  • MP4:经典的视频封装格式,移动端(iOS/Android)、PC Web 多终端都能良好支持。但 MP4 的视频文件头太大,结构复杂;如果视频较长(如数小时),则其文件头会过大,影响视频加载速度,故更适合短视频场景。

MP4 由一个个的 box(以前叫 atom)组成,所有的 Metadata(媒体描述元数据),包括定义媒体的排列和时间信息的数据都包含在这样的一些结构 box 中。Metadata 对媒体数据(比如视频帧)引用说明,而媒体数据在这些引用文件中的排列关系全部在第一个主文件中的 metadata 描述,这样就会导致视频时长越大文件头就会越大、加载越慢。

  • HLS(HTTP Live Streaming):苹果公司推出的基于 HTTP 的流媒体网络传输协议,视频的默认封装格式是 TS,除了多个 TS 分片文件,还定义了用来控制播放的 m3u8 索引文件(文本文件),可以规避普通 MP4 长时间缓冲头部数据的问题,比较适合点播场景。移动端 (iOS/Android) 支持较好,但 PC 端 IE 存在兼容性问题依赖播放器的二次开发(建议使用阿里云 Web 播放器)。
  • FLV:Adobe 公司推出的标准,在 PC 端有 Flash 的强力支持,但在移动终端只有 APP 实现播放器才能支持(建议使用阿里云播放器),大部分手机端浏览器均不支持,特别是苹果的移动设备都不支持。
  • DASH(Dynamic Adaptive Streaming over HTTP):使用 fragmented MP4 (fMP4) 格式,将 MP4 视频分割为多个分片,每个分片可以存在不同的编码形式(如分辨率、码率等);播放器端可自由选择需要播放的视频分片,实现自适应多码率、不同画质内容的无缝切换,提供更好的播放体验。其中 MPD 文件类似 HLS 的 m3u8 文件,国外视频网站如 YouTube、Netflix 等较多使用 DASH。
  • HLS+fMP4(HTTP Live Streaming with fragmented MP4):此处单列,但本质上还是 HLS 协议。苹果公司于 WWDC 2016 宣布新的 HLS 标准支持文件封装格式为 fragmented MP4,使用方法与 TS 分片类似,意味着一次转码可同时打包成 DASH 和 HLS。

HLS(包括 HLS+fMP4)和 DASH 是最常用的自适应流媒体传输技术(Adaptive Video Streaming),推荐使用。

编码方式

视频编码方式(Codec)是指能够对数字视频进行压缩或解压缩(视频解码)的程序或者设备。通常这种压缩属于有损数据压缩。也可以指通过过特定的压缩技术,将某个视频格式转换成另一种视频格式。常见的编码方式有:

  1. H.26X 系列:由 ITU(国际电信联盟)主导,包括 H.261、H.262、H.263、H.264、H.265。
  • H.261:主要在老的视频会议和视频电话产品中使用。
  • H.263:主要用在视频会议、视频电话和网络视频上。
  • H.264:H.264/MPEG-4 第十部分,或称 AVC(Advanced Video Coding,高级视频编码),是一种视频压缩标准,一种被广泛使用的高精度视频的录制、压缩和发布格式。
  • H.265:高效率视频编码(High Efficiency Video Coding,简称 HEVC)是一种视频压缩标准,H.264/MPEG-4 AVC 的继任者。HEVC 不仅提升图像质量,同时也能达到 H.264/MPEG-4 AVC 两倍的压缩率(等同于同样画面质量下码率减少 50%),可支持 4K 分辨率甚至超高画质电视,最高分辨率可达 8192×4320(8K 分辨率),这是目前发展的趋势。
  1. MPEG 系列:由 ISO(国际标准组织机构)下属的 MPEG(运动图象专家组)主导,视频编码方面主要有:
  • MPEG-1 第二部分:主要使用在 VCD 上,有些在线视频也使用这种格式,该编解码器的质量大致上和原有的 VHS 录像带相当。
  • MPEG-2 第二部分:等同于 H.262,使用在 DVD、SVCD 和大多数数字视频广播系统和有线分布系统(Cable Distribution Systems)中。
  • MPEG-4 第二部分:可以使用在网络传输、广播和媒体存储上,比起 MPEG-2 和第一版的 H.263,它的压缩性能有所提高。
  • MPEG-4 第十部分:技术上和 ITU-TH.264 是相同的标准,二者合作,诞生了 H.264/AVC 标准,ITU-T 将其命名为 H.264,而 ISO/IEC 称它为 MPEG-4 高级视频编码(Advanced Video Coding,AVC)。
  1. AVS(Audio Video coding Standard):我国自主知识产权的信源编码标准,是《信息技术 先进音视频编码》系列标准的简称,目前已完成两代 AVS 标准的制定。
  • 第一代 AVS 标准包括国家标准《信息技术 先进音视频编码 第 2 部分:视频》(简称 AVS1)和《信息技术 先进音视频编码 第 16 部分:广播电视视频》(简称 AVS+)。AVS + 的压缩效率与国际同类标准 H.264/AVC 最高档次(High Profile)相当。
  • 第二代 AVS 标准,简称 AVS2,首要应用目标是超高清晰度视频,支持超高分辨率(4K 以上)、高动态范围视频的高效压缩。AVS2 的压缩效率比上一代标准 AVS + 和 H.264/AVC 提高了一倍,超过国际同类型标准 HEVC/H.265。
  1. 其他系列,如,VP8、VP9(Google 主导),RealVideo(RealNetworks 推出)等编码方式,在互联网视频使用较少,此处不再介绍。

选择编码方式要充分考虑播放终端(如移动端 APP、Web 浏览器等)的兼容性,尽量使用最常见和广泛支持的。阿里云视频点播支持视频编码格式:H.264/AVC(默认)、 H.265/HEVC,音频编码格式:MP3(默认)、AAC、VORBIS、FLAC。

转码

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

转封装

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

  • 处理速度极快。音视频编解码过程十分复杂,占据了转码的绝大部分时间。转封装不需要进行编码和解码,节约了大量的处理时间。
  • 音视频质量无损。没有解码(解压缩)和编码(压缩)过程,所以不会有音视频的压缩损伤。

转封装后的文件与原始文件的分辨率、码率等几乎一致,故播放时也称其为 “原画”。

码率、码流

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

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

分辨率

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

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

帧率

帧率(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 值,则需要提高视频的输出码率,以确保画面质量不会降低,故会增加网络带宽。

IDR 帧对齐

IDR 帧(Instantaneous Decoding Refresh Picture),即时解码刷新帧,是 I 帧的一种。与普通 I 帧的区别在于,一个 IDR 帧之后的所有帧都不能引用该 IDR 帧之前的帧的内容;相反,对于普通的 I 帧,其后的 P 帧和 B 帧可以引用该普通 I 帧之前的其他 I 帧。在编码和解码中为了方便,将首个 I 帧和其他 I 帧区别开,称为 IDR,这样就方便控制编码和解码流程。

IDR 帧的作用是立刻刷新,使错误不致传播,从 IDR 帧开始,重新算一个新的序列开始编码。而普通 I 帧不具有随机访问的能力,这个功能是由 IDR 承担。视频播放时,播放器一般都支持随机 seek(拖动)到指定位置,而播放器直接选择到指定位置附近的 IDR 帧进行播放最为便捷,因为可以明确知道该 IDR 帧之后的所有帧都不会引用其之前的其他 I 帧,从而避免较为复杂的反向解析。

在对同一个视频进行多码率转码时,如果指定 IDR 帧对齐(IDR Frame Alignment),则意味着所有输出视频的 IDR 帧在时间点、帧内容方面都保持精确同步,此时播放器便可实现多码率视频平滑切换,从而不会出现较为明显的切换卡顿。

编码级别

编码档次(Profile)是针对特定应用场景的特定编码功能的集合。H.264 规定了三种主要级别:

  • Baseline:支持 I/P 帧,只支持无交错(Progressive)和 CAVLC,一般用于低阶或需要额外容错的应用,比如视频通话、手机视频等即时通信领域;
  • Main:提供 I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),同样提供对于 CAVLC 和 CABAC 的支持,用于主流消费类电子产品规格如低解码(相对而言)的 MP4、便携的视频播放器、PSP 和 iPod 等;
  • High:在 Main 的基础上增加了 8x8 内部预测、自定义量化、无损视频编码和更多的 YUV 格式(如 4:4:4),用于广播及视频碟片存储(蓝光影片),高清电视的应用。

比特率

比特率(Bit rate)是指每秒传送的比特 (bit) 数,单位为 bps (Bit Per Second),比特率越高,传送的数据越大。在视频领域,比特率等同于码率。比特率表示经过编码(压缩)后的音、视频数据每秒钟需要用多少个比特来表示,而比特就是二进制里面最小的单位,要么是 0,要么是 1。与码率类似,比特率与音、视频压缩的关系,简单的说就是比特率越高,音、视频的质量就越好,但编码后的文件就越大;如果比特率越低则文件越小。

码率控制方法

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

  • VBR(Variable Bitrate):动态比特率,也就是没有固定的比特率,音视频压缩软件在压缩时根据音视频数据的复杂程度即时确定使用什么比特率,这是以质量为前提兼顾文件大小的方式。
  • CBR(Constant Bitrate):固定比特率,指文件从头到尾都是一种位速率。相对于 VBR 和 ABR 来讲,它压缩出来的文件体积很大,而且视频质量相对于 VBR 和 ABR 不会有明显的提高。
  • ABR(Average Bitrate):平均比特率,是 VBR 的一种插值参数。LAME 针对 CBR 不佳的文件体积比和 VBR 生成文件大小不定的特点独创了这种编码模式。ABR 在指定的文件大小内,以每 50 帧(30 帧约 1 秒)为一段,低频和不敏感频率使用相对低的流量,高频和大动态表现时使用高流量,可以做为 VBR 和 CBR 的一种折衷选择。
    ABR 在一定的时间范围内达到设定的码率,但是局部码率峰值可以超过设定的码率,平均码率恒定。ABR 是 VBR 的改良版,能确保输出平均码率在合理范围,且在这个范围内,还是动态根据复杂度编码,也是阿里云默认的编码控制方式。

编码格式

定义参考视频编码方式。主要包括无损编码和有损编码两种。根据采样定理,音频编码只能 “无限接近” 自然信号,故而所有的音频编码方式实质上都是有损的。在计算机领域中,通约定能够达到最高保真水平的 PCM 编码为无损编码。互联网中常见的音频编码均为有损编码,常见的编码格式有 MP3、AAC 等。

采样率

采样率(Sample Rate),也称为采样速度或者采样频率,定义了每秒从连续信号中提取并组成离散信号的采样个数,单位为赫兹 (HZ)。采样率是指将模拟信号转换成数字信号时的采样频率,也就是单位时间内采样多少点,采样频率越高声音的还原就越真实越自然。

码率

参考视频编码的 “码率” 介绍。

声道、声道数

声道(Sound Channel)是指声音在录制(或播放)时,在不同空间位置采集(或播放)的相互独立的音频信号。所谓声道数,也就是声音录制时的音源数量或播放时的扬声器数量。

UTC 时间(ISO 8601 标准时间格式)

UTC 时间指的是协调世界时,又称世界统一时间、世界标准时间、国际协调时间。由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称 UTC。协调世界时是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统。中国大陆采用 ISO 8601-1988 的《数据元和交换格式信息交换日期和时间表示法》(GB/T 7408-1994)称之为国际协调时间。

如无特别指定,阿里云视频点播默认返回的时间字段或接口请求的时间参数都为 UTC 时间,时间格式按照 ISO8601 标准表示,格式为:YYYY-MM-DDThh:mm:ssZ。例如:2017-01-11T12:00:00Z 表示北京时间 2017 年 1 月 11 日 20 点 0 分 0 秒。注:北京时间与 UTC 的时差为 + 8,也就是 UTC+8。


「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。

image.png


相关文章
《阿里云产品手册2022-2023 版》——视频点播
《阿里云产品手册2022-2023 版》——视频点播
|
域名解析 编解码 API
云·速成美站产品培训 - 阿里云视频点播
一、阿里云视频点播服务的配置 二、获取Access Key与后台进行绑定 三、通过网站后台上传视频
云·速成美站产品培训 - 阿里云视频点播
|
数据采集 编解码 移动开发
产品百科 |视频点播的播放数据是如何统计出来的?数据准确吗?
本文主要介绍播放数据的统计准确和统计次数等问题。
产品百科 |视频点播的播放数据是如何统计出来的?数据准确吗?
|
存储 编解码
产品百科 |如何大幅降低视频点播的使用成本
不同的用量选择不用的计费方式可节省大量成本,本文介绍如何计算用量和如何选择计费方式。
产品百科 |如何大幅降低视频点播的使用成本
|
编解码 人工智能 文字识别
产品百科 |如何在视频点播服务中选择转码类型
在面对不同行业用户丰富的转码场景需求时,视频点播针对多种业务场景提供了适应多场景化的转码处理方案,实现将用户定制化的场景需求进行抽象提取,最终以适用于其他点播用户的同样或类似的业务场景需求。
产品百科 |如何在视频点播服务中选择转码类型
|
存储 人工智能 API
产品百科 |如何在视频点播服务中设置视频封面
为了让视频可以更加美观地展示,每一个在点播上传的视频都设置了封面图片,点播提供了多种设置和修改视频封面的方法。视频上传完成后,点播会默认进行视频截图,如果上传时指定了封面则会使用指定的图片作为封面,如果不指定封面,则会将一张视频的截图作为封面,视频上传完成之后也可以对封面进行更新。
产品百科 |如何在视频点播服务中设置视频封面
|
存储 编解码 人工智能
产品百科 | 什么是视频点播
阿里云视频点播(ApsaraVideo VoD)是集音视频采集、编辑、上传、自动化转码处理、媒体资源管理、高效云剪辑处理、分发加速、视频播放于一体的一站式音视频点播解决方案。
产品百科 | 什么是视频点播
|
11月前
|
存储 安全 机器人
如何下载阿里云视频点播数据
如何下载阿里云视频点播(VOD)数据
448 0
|
存储 编解码 安全
阿里云视频点播简介和购买流程
阿里云视频点播是阿里巴巴集团旗下的一项强大的视频云服务,为用户提供在线视频上传、存储、转码、播放等全方位的视频解决方案。作为中国最大的云计算服务提供商,阿里云视频点播在视频领域拥有丰富的技术实力和经验,为用户提供高效、可靠、安全的视频服务。
|
4月前
|
应用服务中间件 API 开发工具
阿里云视频点播功能
阿里云视频点播功能
51 0

热门文章

最新文章