webM文件解析--基于Matroska和EBML

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

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

newchenxf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值