平时我们从网站下载的电影文件有不同的格式,用不同的后缀表示:avi,rmvb,mp4,flv,mkv等等
(当然也使用不同的图标)。在这里需要注意的是,这些格式代表的是封装格式
- 1.何为封装格式?
就是把视频数据和音频数据打包成一个文件的规范. 仅仅靠看文件的后缀,是很难看出具体使用了什么视音频编码标准. 总的来说,不同的封装格式之间差距不大,各有优劣.
注:
有些封装格式支持的视音频编码标准十分广泛,应该算比较优秀的封装格式,比如: MKV.而有些封装格式支持的视音频编码标准很少,应该属于落后的封装格式,比如: RMVB.
视频播放原理
- 视音频技术主要包括以下几点:
(1) 封装技术,视频压缩编码技术以及音频压缩编码技术,如果考虑到网络传输的话,还包括流媒体协议技术.
(2) 视频播放器播放一个互联网上的视频文件,需要 经过以下几个步骤: 解协议,解封装,解码视音频视音频同步,如果播放本地文件则不需要解协议为以下几个步骤:解封装,解码视音频,视音频同步
解协议的作用:
就是将流媒体协议的数据,解析为标准的封装格式数据.视音频在网络上传输的时候,常常采用各种流媒体协议,例如HTTP,RTMP,或是MMS等等
. 这些协议在传输视音频数据的同时,也会传输一些信令数据.这些信令数据包括对播放的控制(播放,暂停,停止),或者对网络状态的描述等.解协议的过程中会去除掉信令数据而只保留视音频数据.例如: 采用RTMP协议传输的数据,经过解协议操作后,输出FLV格式的数据.解封装的作用:
就是将输入的封装格式的数据,分离成为音频流压缩编码数据和视频流压缩编码数据.封装格式种类很多,例如:MP4,MKV,RMVB,TS,FLV,AVI 等等
他的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起.例如: FLV 格式的数据,经过解封装操作后,输出H.264编码的视频码流和AAC编码的音频码流.解码的作用:
就是将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始数据.视频的压缩编码标准包含AAC,MP3,AC-3等等
,视频的压缩编码标准则包含H.264,MPEG2,VC-1等等
解码是整个系统中最重要也是最复杂的一个环节.通过解码,压缩编码的视频数据输出成为非压缩的颜色数据,例如:YUV420P,RGB等等
压缩编码的音频数据输出成为非压缩的音频抽样数据,例如:PCM数据
.视音频同步的作用:
就是根据解封装模块处理过程中获取到的参数信息,同步解码出来的视频和音频数据,并将视频音频数据送至系统的显卡和声卡播放出来.
流媒体协议
名称 | 推出机构 | 传输层协议 | 客户端 | 目前使用领域 |
---|---|---|---|---|
RTSP+RTP | IETF | TCP+UDP | VLC, WMP | IPTV |
RTMP | Adobe Inc. | TCP | Flash | 互联网直播 |
RTMFP | Adobe Inc. | UDP | Flash | 互联网直播 |
MMS | Microsoft Inc. | TCP/UDP | WMP | 互联网直播+点播 |
HTTP | WWW+IETF | TCP | Flash | 互联网点播 |
因为互联网网络环境的不稳定性,RTSP+RTP 较少用于互联网视音频传输.互联网视频服务常采用TCP作为其流媒体的传输层协议,因而像RTMP,MMS,HTTP
这类的协议广泛用于互联网视音频服务之中.这类协议不会发生丢包,因而保证了视频的质量,但是传输效率相对会低一点.
封装格式
封装格式主要的作用是把视频码流和音频码流按照一定的格式存储在一个文件中,现如今流行的封装格式如下表所示:
名称 | 推出机构 | 流媒体 | 支持的视频编码 | 支持的音频编码 | 目前使用领域 |
---|---|---|---|---|---|
AVI | Microsoft Inc. | 不支持 | 几乎所有格式 | 几乎所有格式 | BT下载影视 |
MP4 | MPEG | 支持 | MPEG-2, MPEG-4, H.264, H.263等 | AAC, MPEG-1 Layers I, II, III, AC-3等 | 互联网视频网站 |
TS | MPEG | 支持 | MPEG-1, MPEG-2, MPEG-4, H.264 | MPEG-1 Layers I, II, III, AAC, | IPTV,数字电视 |
FLV | Adobe Inc. | 支持 | Sorenson, VP6, H.264 | MP3, ADPCM, Linear PCM, AAC等 | 互联网视频网站 |
MKV | CoreCodec Inc. | 支持 | 几乎所有格式 | 几乎所有格式 | 互联网视频网站 |
RMVB | Real Networks Inc. | 支持 | RealVideo 8, 9, 10 | AAC, Cook Codec, RealAudio Lossless | BT下载影视 |
由表可见,除了AVI
之外,其他的封装格式都支持流媒体,即可以边下边播
. 有些格式更万能一些,支持的视音频编码标准多一些,比如MKV
而有些格式则支持的相对比较少,比如说:RMVB
.
视频编码
视频编码的主要作用是将视频像素数据(RGB,YUV等)压缩成视频码流,从而降低视频的数据量.如果视频不经过压缩编码的话,体积非常的大,一部电影可能就要上百G的空间.视频编码是视音频技术中最重要的技术之一.视频码流的数据量占了视音频数据量的绝大部分.高效的视频编码技术在同等的码率下,可以获得更高的视频质量.
名称 | 推出机构 | 推出时间 | 目前使用领域 |
---|---|---|---|
HEVC(H.265) | MPEG/ITU-T | 2013 | 研发中 |
AVC(H.264) | MPEG/ITU-T | 2003 | 各个领域 |
MPEG4 | MPEG | 2001 | 不温不火 |
MPEG2 | MPEG | 1994 | 数字电视 |
VP9 | 2013 | 研发中 | |
VP8 | 2008 | 不普及 | |
VC-1 | Microsoft Inc. | 2006 | 微软平台 |
目前使用的最多的视频编码方案就是H.264
主流的编码标准
H.264 仅仅是一个编码标准,而不是一个具体的编码器.H.264 只是个编码器的实现提供参照用的.
基于H.264 标准的彪马器有很多,实际中使用最多的是X264,性能强悍,而且开源.其基本教程网上很多
音频编码
音频编码的作用时间音频采样数据(PCM等)压缩成音频码流,从而降低音频的数据量.音频编码也是互联网视音频技术中的一个重要技术.但是一般情况下音频的数据量要远小于视频的数据量.因而即时使用稍微落后的音频编码标准,而导致音频数据量有所增加,也不会对视音频总数据量产生太大的影响.高效率的音频在同等码率下,可以获得更好的音质.
|名称|推出机构|推出时间|目前使用领域|
|-|-|-|
|AAC|MPEG|1997|各个领域(新)|
|AC-3|Dolby Inc.|1992|电影|
|MP3|MPEG|1993|各个领域(旧)|
|WMA|Microsoft Inc.|1999|微软平台|