aspose.info
ZH

MKV 文件格式

更新于

什么是 MKV 文件?

MKV (Matroska Video) 是一种类似于 MOV 和 AVI 格式的多媒体容器,但它在同一文件中支持多个音频和字幕轨道。 MKV 文件是用于视频的 Matroska 多媒体容器格式。 MKV 基于可扩展二进制元语言,它支持多种视频和音频压缩格式。 MKV 和其他视频格式的主要区别在于 MKV 是一个容器而不是编解码器。 MKV 文件以 .mkv 文件扩展名保存。 MKV 可以将音频、视频和字幕合并到一个文件中,即使这些元素使用不同类型的编码。例如,您可以拥有一个包含 H.264 视频和 MP3 或 AAC 音频的 MKV 文件。 MKV 还支持描述、评级、封面艺术,甚至章节点。 MKV 有几个关键特性是面向未来的。这些功能包括:

  • 支持快速搜索。
  • 能够选择不同的音频和视频流。
  • 支持字幕(硬编码和软编码)。
  • 支持元数据、章节和菜单。
  • 在线流式传输的能力。
  • 能够恢复提供播放损坏文件的能力的错误文件。

历史简介 ##

MKV 文件起源于 2002 年的俄罗斯。首席开发人员是 Lasse Kärkkäinen,他与 Matroska 的创始人 Steve Lhomme 和一个程序员团队一起工作。 MKV 是作为一个开放标准项目开发的,这意味着它是开源的并且可以免费使用。随着时间的推移,该格式得到改进,并在 2010 年成为 WebM 多媒体格式的基础。

Matroska 设计##

Matroska 在 EBML 规范中添加了以下约束。

  • EBML Header 的 docType 必须是 ‘matroska’。
  • EBML Header 的 EBMLMaxIDLength 必须为 4。
  • EBML Header 的 EBMLMaxSizeLength 必须介于 1 和 8(含)之间。

所有顶级元素都以 4 个八位字节编码。

  • 语言代码:Matroska(版本 1 到 3)使用的语言代码可以是 3 个字母的书目 ISO-639-2 形式(如法语的“fre"),或者可以使用额外的国家代码,如“fre-ca" " 代表加拿大法语。从 Matroska 版本 4 开始,ISO 639-2 或 BCP 47 可以用于语言代码,但建议使用 BCP 47。
  • 物理类型:这些对于音频和视频文件具有不同的含义。例如,ChapterPhysicalEquiv = 60 表示 (CD / 12" / 10" / 7" / TAPE / MINIDISC / DAT) 表示音频和 (DVD / VHS / LASERDISC) 表示视频。
  • 块结构 - 块头:块头包含有关轨道号、时间戳、系带类型等的信息。
  • Lacing:这是一种在存储数据时节省空间的机制,通常用于小数据块(帧)。有 3 种类型的系带:
    • Xiph: Frame with a size multiple of 255 coded with a 0 at the end of the size. For example, The code for 765 is 255;255;255;0.
    • EBML: The frame size is coded as a difference between the previous size and this size. The first size in the lace is unsigned but others use a range shift to get a sign on each value.
    • fixed-size: The size remains the same.
  • SimpleBlock 结构:它受到 Block 结构 的启发,主要区别在于添加了 Keyframe 和 Discardable 标志。除此之外,一切都一样。

Matroska 结构##

Matroska 文档必须由至少一个使用Matroska Document Type 的EBML 文档 组成。每个EBML 文档 必须以EBML 标题 开头,后跟定义为段的EBML 根元素。 Matroska 定义了几个可能出现在 Segment 中的顶级元素。

EBML 使用元素系统组成 EBML 文档,以下是 Matroska 文件中的顶级元素列表:

  • EBML 文档:整个文件的包装器。
  • EBML Header:它包含文件的标题信息,如 DocType。
  • Segment:包含所有其他顶级元素的顶级元素。
  • SeekHead:它包含其他顶级元素的段的位置。
  • 信息:它包含有关该段的一般信息。
  • 曲目:描述了许多曲目的顶级信息元素。
  • 章节:用于定义基本菜单和分区数据。
  • Cluster:包含块结构的顶级元素。
  • Cues:一个顶级元素,其中包含加速寻求访问的 Segment 本地的所有条目。
  • 附件:这包含附件。
  • 标签:此元素包含描述曲目、版本、章节、附件或整个片段的元数据。

下表显示了 Matroska 文档的结构,其中大部分元素以层次结构显示:

EBML 标题
细分寻头寻求搜索ID
寻找位置
信息段UID
段文件名
上一页UID
上一个文件名
下一个UID
下一个文件名
细分家庭
章节翻译
时间戳刻度
持续时间
日期UTC
标题
沐星App
写作应用
曲目跟踪条目轨道号
TrackUID
轨道类型
姓名
语言
编解码器ID
编解码器私人
编解码器名称
视频标志交错
现场订单
立体模式
阿尔法模式
像素宽度
像素高度
显示宽度
显示高度
纵横比类型
颜色
音频采样频率
频道
位深度
章节版本条目版本UID
版旗隐藏
版本标志默认
EditionFlagOrdered
章原子ChapterUID
ChapterStringUID
章节时间开始
章节时间结束
ChapterFlagHidden
章节显示章节字符串
章节语言
集群时间戳
无声曲目
职位
上一页尺寸
简单块
块组
加密块
提示提示点提示时间
提示跟踪位置
附件附件文件描述
文件名
文件MimeType
文件 UID
文件推荐
文件使用开始时间
文件使用结束时间
标签标签目标目标类型值
目标类型
标签跟踪UID
TagEditionUID
TagChapterUID
标签附件UID
简单标签标记名
标记语言
标签默认
标签字符串
标签二进制
简单标签

使用编解码器###

如果您不想要新的媒体播放器并且更喜欢使用现有的播放器,则需要安装一些编解码器(压缩/解压缩的简写)。即使下载编解码器是一个有效的选项,您也应该小心来源,这些可能包含恶意软件。

参考 ##

另请参阅