首先要分清楚媒体文件和编码的区别:文件是既包括视频又包括音频、甚至还带有脚本的一个集合,也可以叫容器;文件当中的视频和音频的压缩算法才是具体的编码。
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 采用的音频视频容器,用于流传送。
MOV:QuickTime 的音频视频容器,恐怕也是现今最强大的容器,甚至支持虚拟现实技术,Java 等,它的变种 MP4,3GP都没有这么厉害。
MKV:MKV 它能把 Windows Media Video,RealVideo,MPEG-4 等视频音频融为一个文件,而且支持多音轨,支持章节字幕等。
WAV :一种音频容器(注意:只是音频),大家常说的 WAV 就是没有压缩的 PCM 编码,其实 WAV 里面还可以包括 MP3 等其他 ACM 压缩编码。
WMV:是微软推出的一种流媒体格式,它是在“同门”的ASF(Advanced Stream Format)格式升级延伸来得。
H.264是一种高性能的视频编解码技术。
目前国际上制定视频编解码技术的组织有两个,一个是“国际电联(ITU-T)”,它制定的标准有H.261、H.263、H.263+等,另一个是“国际标准化组织(ISO)”它制定的标准有MPEG-1、MPEG-2、MPEG-4等。
而H.264则是由两个组织联合组建的联合视频组(JVT)共同制定的新数字视频编码标准,所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高级视频编码(Advanced Video Coding,AVC),而且它将成为MPEG-4标准的第10部分。
因此,不论是MPEG-4 AVC、MPEG-4 Part 10,还是ISO/IEC 14496-10,都是指H.264。
AVC1属于H.264的一种,是苹果开发的符合H.264/AVC的编码
MPEG-4 编码格式有多种编码器实现:1998年微软开发了第一个在PC上使用的MPEG-4编码器,它包括MS MPEG4V1、MS MPEG4V2、MS MPEG4V3的系列编码内核;DXN公司的DivX5系列。开源的Xvid. http://baike.baidu.com/view/30246.htm 这是一篇介绍Xvid编码的文章。
AAC:(Advanced Audio Coding),中文称为“高级音频编码”,出现于1997年,基于 MPEG-2的音频编码技术。由Fraunhofer IIS、杜比实验室、AT&T、Sony(索尼)等公司共同开发,目的是取代MP3格式。2000年,MPEG-4标准出现后,AAC 重新集成了其特性,加入了SBR技术和PS技术,为了区别于传统的 MPEG-2 AAC 又称为 MPEG-4 AAC。
MP3: 是ISO标准MPEG1和MPEG2第三层(Layer 3),采样率16-48kHz,编码速率8K-1.5Mbps。1987年,Fraunhofer IIS就开始了“EUREKA project EU147, Digital Audio Broadcasting (DAB)”的研发,而这就是MP3的前身。通过和Dieter Seitzer教授的合作,他们开发出了著名的ISO-MPEG Audio Layer-3压缩算法。1993年这个算法被整合到MPEG-1标准中,从此MP3被投入使用。
一些容器和编码格式的组合:
AVI Xvid MP3
AVI Divx MP3
Matroska(后缀就是MKV) Xvid MP3
Matroska(后缀就是MKV) Xvid AAC
Matroska(后缀就是MKV) H264 AAC
MP4 Xvid MP3
MP4 H264 AAC
3GP H.263 AAC
下面是一个视频文件的信息:视频格式:mpeg4 用的是xvid编码实现。音频是MP3.
root@wang:/work/mplayer/ffmpeg# ffmpeg -i 1.avi
ffmpeg version git-2011-09-05-6f8b1fc, Copyright (c) 2000-2011 the FFmpeg developers
built on Nov 2 2011 16:45:37 with gcc 4.4.5
configuration:
libavutil 51. 16. 0 / 51. 16. 0
libavcodec 53. 13. 0 / 53. 13. 0
libavformat 53. 11. 0 / 53. 11. 0
libavdevice 53. 3. 0 / 53. 3. 0
libavfilter 2. 37. 0 / 2. 37. 0
libswscale 2. 1. 0 / 2. 1. 0
Input #0, avi, from '1.avi':
Duration: 00:05:27.65, start: 0.000000, bitrate: 171 kb/s
Stream #0.0: Video: mpeg4 (Advanced Simple Profile) (xvid / 0x64697678), yuv420p, 208x156 [SAR 1:1 DAR 4:3], 11.92 fps, 5 tbr, 11.92 tbn, 5 tbc
Stream #0.1: Audio: mp3 (U[0][0][0] / 0x0055), 22050 Hz, mono, s16, 32 kb/s