松解读音频视频编码及文件格式问题
近来,有不少朋友问我一些音视频编解码的入门问题,大概是随着手机、PDA等设备的普及以及带宽的提高,
音视频的传播越来越普及的缘故吧。
不过,我发现很多朋友对一些基本概念还是不清楚,尤其是编码和文件格式,这里就对基本的音视频知识作个
简单的入门说明。
音频视频编码及文件格式(容器)是一个很庞大的知识领域,完整的说清楚,那就需要些写成一本教材了。这
里先就几个简单的概念问题作以介绍:
首先要分清楚媒体文件和编码的区别:
文件是既包括视频又包括音频、甚至还带有脚本的一个集合,也可以叫容器;
文件当中的视频和音频的压缩算法才是具体的编码。
也就是说一个.avi文件,当中的视频可能是编码a,也可能是编码b,音频可能是编码5,也可能是编码6,具体
的用那种编码的解码器,则由播放器按照avi文件格式读取信息去调用了。
编码介绍:
音频视频编码方案有很多,用百家争鸣形容不算过分,目前常见的音频视频编码有以下几类
MPEG系列:(由ISO[国际标准组织机构]下属的MPEG[运动图象专家组]开发 )
视频编码方面主要是Mpeg1(vcd用的就是它)、Mpeg2(DVD使用)、Mpeg4(现在的DVDRIP使用的都是它的变种,如:divx,xvid等)、Mpeg4 AVC(现在正热门);
音频编码方面主要是MPEG Audio Layer 1/2、MPEG Audio Layer 3(大名鼎鼎的mp3)、MPEG-2 AAC 、MPEG-4 AAC等等。 注意:DVD音频没有采用Mpeg的
H.26X系列:(由ITU[国际电传视讯联盟]主导,侧重网络传输,注意:只是视频编码)
包括H261、H262、H263、H263+、H263++、H264(就是MPEG4 AVC-合作的结晶)
微软windows media系列:(公司牛,能自己定标准啊...)
视频编码有Mpeg-4 v1/v2/v3(基于MPEG4,DIVX3的来源,呵呵)、Windows Media Video 7/8/9/10
音频编码有Windows Media audeo v1/v2/7/8/9
Real Media系列:(注意,这里说的Real的编码,可不是rm、rmvb文件,呵呵)
视频编码有RealVideo G2(早期)、RealVideo 8/9/10
音频编码有RealAudio cook/sipro(早期)、RealAudio AAC/AACPlus等
QuickTime系列:(是一个平台,有很多编码器)
视频编码有Sorenson Video 3(用于QT5,成标准了)、Apple MPEG-4、Apple H.264
音频编码有QDesign Music 2、Apple MPEG-4 AAC (这个不错)
其它,如:Ogg、On2-vpx、flash vidio:不详述啦。
特殊说明的,是DVD这种媒介的音频编码,采用了相对独立的几种,就列2个常见的吧:AC3(杜比公司开发)、DTS文件格式(容器):
AVI
音视频交互存储,最常见的音频视频容器。支持的视频音频编码也是最多的。
MPG
MPEG编码采用的音频视频容器,具有流的特性。里面又分为 PS,TS 等,PS 主要用于 DVD 存储,TS 主要用
于 HDTV。
VOB
DVD采用的音频视频容器格式(即视频MPEG-2,音频用AC3或者DTS),支持多视频多音轨多字幕章节等。
MP4
MPEG-4编码采用的音频视频容器,基于QuickTime MOV开发,具有许多先进特性。
3GP
3GPP视频采用的格式,主要用于流媒体传送。
ASF
Windows Media 采用的音频视频容器,能够用于流传送,还能包容脚本等。
RM
RealMedia 采用的音频视频容器,用于流传送。
注意:RMVB,是视频编码部分采用可变码率压缩的文件格式(容器)
MOV
QuickTime 的音频视频容器,恐怕也是现今最强大的容器,甚至支持虚拟现实技术,Java 等,它的变种 MP4,
3GP都没有这么厉害。
MKV
MKV 它能把 Windows Media Video,RealVideo,MPEG-4 等视频音频融为一个文件,而且支持多音轨,支持章节字幕等。
WAV
一种音频容器(注意:只是音频),大家常说的 WAV 就是没有压缩的 PCM 编码,其实 WAV 里面还可以包括 MP3 等其他 ACM 压缩编码。
MP3
如前所述,不用多说了吧?就是MPEG Audio Layer 3(Mpeg 1 的音频编码的一种)
文件转换(实际上也是编码转换)
至于这些纷繁杂乱的文件转换(实际上也是编码转换),有很多工具了,像很多转换大师、万能转换什么的。
这里推荐一款:xilisoft video converter – 视频转换专家,它可以转换的文件(编码)比较多,功能较全。
关于音视频的知识,实在太庞杂,这里只是抛砖引玉,对于基础的、入门性的一些常识做了简单介绍,至于更进
一步的,比如每一种编码的算法、文件格式的规范等等,就需要大家参考相关专业书籍和资料了,当然,也可以
继续关注我的系列文章。