视频格式那么多,MP4/RMVB/MKV/AVI 等,这些视频格式与编码压缩标准 mpeg4,H.264.H.265 等有什么关系?

时间:2022-07-10 20:02:34

转自:点击打开链接https://www.zhihu.com/question/20997688


作者:Alex Ling
链接:https://www.zhihu.com/question/20997688/answer/16849641
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

这个说起来比较复杂了

还是从MPEG-4说起吧,MPEG-4是一套用于音频视频信息的压缩编码标准,由国际标准化组织ISO)和国际电工委员会IEC)下属的“動態影像专家组”(Moving Picture Experts Group,即MPEG)制定,第一版在1998年10月通過,第二版在1999年12月通過。MPEG-4格式的主要用途在於網上串流光碟、語音傳送(視訊電話),以及電視廣播。(摘自Wikipedia)

再说编码格式吧
H.264被MPEG组织称作AVC(Advanced Video Codec/先进视频编码),是MPEG4标准的第10部分,用来取代之前MPEG4第2部分(简称MPEG4P2)所制定的视频编码,因为AVC有着比MPEG4P2强很多的压缩效率。最常见的MPEG4P2编码器有divx和xvid(开源),最常见的AVC编码器是x264(开源)

而H.265则是次世代的视频编码技术,被MPEG组织称为HEVC(High Efficiency Video Coding)
,是次世代标准MPEG-H的第2部分,不属于MPEG-4标准,有着比H.264更强的压缩效率

最后终于可以说容器
mp4,rmvb,mkv,avi从形式上来说首先都是视频文件的扩展名,其次它们也是视频文件的封装格式(即容器)

mp4是MPEG-4标准的第14部分所制定的容器标准。所谓容器,就是把编码器生成的多媒体内容(视频,音频,字幕,章节信息等)混合封装在一起的标准。容器使得不同多媒体内容同步播放变得很简单,而容器的另一个作用就是为多媒体内容提供索引,也就是说如果没有容器存在的话一部影片你只能从一开始看到最后,不能拖动进度条(当然这种情况下有的播放器会话比较长的时间临时创建索引),而且如果你不自己去手动另外载入音频就没有声音。

关于容器的一个例子是aac/m4a"格式“的音频(这两是一回事,m4a是苹果"发明"的扩展名),这种音频采用的是AAC编码,但实际上也是被封装在MPEG4P14(即mp4)容器里的,因为没有容器的原始AAC数据流是没有索引的,不方便播放器定位

不同的容器有不同的特性,mp4是官方指定的容器,属于”太子党“,硬件支持广泛;rmvb是一种封闭标准的容器,只能用来封装realvideo编码的视频;mkv是社区设计的开放性容器,最大的特性在于几乎可以封装一切的编码格式;avi历史悠久,其陈旧的架构本身已经不能适应新的编码格式,可以入土了