1. 什么是webM
要说webM,先说Matroska,Matroska是一个可扩展的,开源的多媒体容器(说简单点,容器的作用,就是把视频和音频封装到一个文件)。使用这种容器的常见文件,一个是MKV,一个就是webM。两者的区别,无非是支持的音视频编码不一样,但封装原理都一样。
更多的Matroska介绍,见官网:https://matroska.org/index.html
webM的音视频支持:
视频编码:支持VP8或VP9
音频编码:支持Vorbis 或 Opus
要说Matroska,那又离不开EBML了。
1.1 EBML简介
全称Extensible Binary Meta Language,是一种数据存储格式。它其实和XML的结构,非常的类似!
EBML文档仅由两个部分组成,即EBML标头和EBML主体。EBML文档必须以EBML标头开始,该标头声明了整个EBML主体的重要特征。
EBML使用Elements(元素)来构成EBML文档。
EBML元素包含三个部分:元素ID,元素数据大小和元素数据。
一个典型的EBML文件结构:
EBML Header (master)
+ DocType (string)
+ DocTypeVersion (unsigned integer)
EBML Body Root (master)
+ ElementA (utf-8)
+ Parent (master)
+ ElementB (integer)
+ Parent (master)
+ ElementB

本文介绍了webM相关知识。webM是基于Matroska的多媒体容器,与MKV封装原理相同但音视频编码有别。还介绍了EBML,它是Matroska的基础,是一种数据存储格式。阐述了Matroska文件组成,包括Tracks和Cluster等。最后提及webM文件解析工具可参考另一篇文章。

3万+

被折叠的 条评论
为什么被折叠?



