一、文件格式
1.视频文件格式
常见的视频文件格式:mpeg、avi、wmv、mov等,文件格式通常表现为文件在操作系统上存储时的后缀名,用来与相应的应用程序进行关联
2.视频封装格式
视频封装格式,相当于一种存储视频信息的容器,包含封装视频文件需要的视频信息、音频信息和相关的配置信息(比如视频和音频的关联信息、解码方式等)。
一种视频封装格式对应响应的视频文件格式,常见的封装格式如下图。
3.容器
将已经编码压缩好的视频数据和音频数据 按照一定格式放在一个文件中。这个文件可以称为容器。
容器不仅仅存放音频、视频数据,还会存放视频同步的元数据,字幕等信息。在传输和存储的时候,这些多种数据都是被绑定在一起的。
常见的视频容器格式:
- AVI:
- mov:Quicktime封装
- wmv:微软推出的
- mkv:万能封装器,有良好的兼容和跨平台性、纠错性,可带外挂字幕
- flv:可以很好地保护原始地址,不容易被下载
- mp4:主要应用于mpeg4的封装,主要在手机上使用
二、视频编解码方式
1.概念
视频编解码过程就是对数字视频进行压缩或解压缩的过程
视频编解码需要考虑的因素:
视频的质量
码率:用来表示视频所需要的数据量
编解码算法的复杂度
针对数据丢失和错误的鲁棒性
编辑的方便性
随机访问
端到端的延时以及其它一些因素
2.常见视频编码方式
- H.26X系列:包括H.261 H.262 H.263 H.264 H.265
- H.264 等同于MPEG-4第十部分,也被称为高级视频编码(Advanced Video Coding,简称AVC),是一种广泛使用的高精度视频的录制、压缩和发布格式。
- MPEG系列 由国际标准组织机构下属的运动图像专家组开发
- MPEG-4 第二部分:可以用于网络传输、广播和媒体存储上。比之前版本压缩性能较高
- MPEG-4 第十部分,等同于H.264
3.视频编解码方式和视频封装的关系
一种视频封装格式可以支持多种视频编解码方式,比如.mov支持几乎所有的视频编解码方式,.MP4也支持相当广的视频编解码方式
可以用A/B的方式,表示一个视频的编解码方式和封装格式,比如一个H.264/MOV的视频文件,它的封装方式是QuickTime File Format,编码方式是H.264
三、音频编解码方式
在视频中常用的音频编解码方式:
- AAC : Advanced Audio Coding,在1997年推出的基于MPEG-2的音频编码技术。2000年,MPEG-4标准出现之后,AAC重新集成了其特性,加入了SBR技术和PS技术,为了区别于传统的MPEG-2 AAC ,又称为MPEG-4 AAC
- MP3 :MPEG-1 or MPEG-2 Audio Layer ||| ,当时非常流行的一种数字音频编码有损压缩模式,它被设计来大幅度降低音频数据量
- WMA : Windows Media Audio ,由微软公司开发的一种数字音频压缩格式,本身包括有损和无损压缩格式
四、直播/小视频中的编解码方式
- 视频编码格式
- H264
优点:低码率、高质量的图像、容错能力强、网络适应性强
最大的优势是,具有很高的数据压缩比率,在同等图像质量下,H264的压缩比是MPEG-2的2倍以上,是MEPG-4的1.5~2倍
- H264
- 音频编码格式
- AAC
是目前比较热门的有损压缩编码技术,并且衍生出LC-AAC、HE-AAC、HE-AAC v2三种主要的编码格式- LC-AAC 是比较传统的AAC ,主要应用于中高码率的场景(>=80kbit/s)
- HE-AAC 主要应用于低码率场景的编码(<=48kbit/s)
- 优势:在小于128kbit/s的码率下表现优异,并且多用于视频中的音频编码
- AAC
五、YUV颜色模型
1.介绍
平时开发场景中使用最多的是RGB模型,表示一个颜色需要三个数字,则需要24bits的空间
YUV是电视系统常用的颜色模型,它利用了人类视觉对亮度的敏感度比色度敏感度高的特点设计的。YUV将亮度信息从色度信息中分离出来,并且对同一帧图像的亮度和色度采用了不同的采样率,亮度信息Y与色度信息U/V相互独立
现在的YUV是通常用于计算机领域来表示使用YCbCr编码的文件,所以YUV又可以称为YCbCr
可以用含有RGB的表达式来表示:
Y = kr*R + kg*G + kb*B
Y即亮度,kr、kg、kb即R、G、B的权重值
3.YUV常见格式
根据采样方式可以分为:
- YUV4:4:4
YUV三个分量具有相同的水平和垂直解析度 - YUV4:2:2
YUV三个分量具有相同的水平和垂直解析度,但是在水平方向上,UV两个分量的解析度是Y的一半,即每4个亮度分量样本值,对应有2个U和2个V色度分量样本值。所以表示一个颜色所需空间比RGB模型少了三分之一 - YUV4:2:0
在水平方向上和垂直方向上,UV两个分量的解析度是Y的一半,即每4个亮度分量样本值,对应有1个U和1个V色度分量样本值- NV12 和 NV21都属于YUV420