通过 mkvinfo 获取关于 Matroska 文件的信息,通过 mkvextract 从 Matroska 文件中提取轨道/数据,并通过 mkvmerge 创建将其他媒体文件转换为 Matroska 格式的文件。Matroska 是一个旨在成为未来的新容器格式的多媒体文件格式。你可以在以下网址了解更多关于 Matroska 及其基础技术 Extensible Binary Meta Language (EBML) 的信息。
MKVToolNix 83.0.0 是一款小型工具集合,包括了 mkvmerge、mkvinfo、mkvextract、mkvpropedit 和 mmg,可用于以多种方式处理 Matroska(MKV)文件。你可以使用 MKVToolNix 来创建、拆分、编辑、复用、解复用、合并、提取或检查 Matroska 文件。该程序还支持其他视频格式(如 AVI、MPEG、MP4、MPEG、Ogg/OGM、RealVideo、MPEG1/2、h264/AVC、Dirac、VC1),包括某些视频编解码器(例如 VP9 视频编解码器支持——从 IVF/Matroska/WebM 文件读取,提取到 IVF 文件),音频编解码器(AAC、FLAC、MP2、MP3、(E)AC3、DTS/DTS-HD、Vorbis、RealAudio)以及大多数字幕格式(SRT、PGS/SUP、VobSub、ASS、SSA 等)。
MKVToolNix 是一个用于处理 Matroska 多媒体容器格式的工具集,包括将不同媒体文件合并到 Matroska 文件、从 Matroska 文件中提取数据等功能。以下是 MKVToolNix 83.0.0 版本的一些基础技术原理:
Matroska 格式:
Matroska 是一个开放的多媒体容器格式,旨在成为一个通用的容器,可容纳音频、视频、字幕轨道和元数据。
MKVToolNix 可以处理 Matroska 文件的各个部分,包括数据轨道、附加文件、章节等。
Extensible Binary Meta Language (EBML):
EBML 是 Matroska 使用的基础技术,类似于 XML,用于描述 Matroska 文件的层次结构和元数据。
MKVToolNix 使用 EBML 来解析和生成 Matroska 文件的结构。
功能特点:
MKVToolNix 支持将不同格式的媒体文件(如AVI、MP4、FLV等)合并为一个 Matroska 文件,保留原始质量和轨道信息。
用户可以使用 MKVToolNix 从 Matroska 文件中提取特定的轨道或数据,例如提取视频或音频轨道。
工具集还支持添加、删除或修改 Matroska 文件中的轨道、标签和元数据信息。
命令行工具:
MKVToolNix 提供了一组命令行工具,如 mkvmerge、mkvextract 和 mkvinfo,用于执行不同的操作。
用户可以通过命令行方式调用这些工具,完成对 Matroska 文件的处理和管理。
持续更新:
MKVToolNix 由 Moritz Bunkus 开发和维护,定期发布新版本以改进功能、修复 bug,并保持与最新技术的兼容性。
MKVToolNix 实现了将不同格式的媒体文件合并为一个 Matroska 文件的功能,同时保留原始质量和轨道信息。这涉及以下基础技术原理:
容器格式转换:
MKVToolNix 通过解析源文件的音频、视频和其他轨道,然后将其重新打包到 Matroska 格式中。
对于不同格式的媒体文件(如AVI、MP4、FLV等),MKVToolNix需要能够解析这些文件的结构和编解码信息。
多媒体轨道处理:
在合并过程中,MKVToolNix 需要确保每个媒体轨道(如视频、音频、字幕)的数据被正确地提取、处理和重新打包到 Matroska 文件中。
这可能涉及到对音频和视频解码、重新编码以及调整时间轴等操作。
保留原始质量:
在合并过程中,MKVToolNix 需要确保不会对源文件的音视频数据进行任何不必要的重新压缩或转码,以避免降低原始质量。
原始质量的保留需要确保所有轨道的数据在合并过程中得到准确复制,而不会出现损失或变形。
元数据和标签:
合并过程还涉及处理源文件的元数据和标签信息,如标题、作者、描述等,确保这些信息也能被正确地保存在最终的 Matroska 文件中。
工具集支持添加、删除或修改 Matroska 文件中的轨道、标签和元数据信息,这涉及以下基础技术原理:
EBML 结构解析:
Matroska 文件使用了 EBML(Extensible Binary Meta Language)作为其基础结构,这种类似于 XML 的数据格式允许在不破坏文件结构的情况下添加、删除或修改数据。
工具集需要能够解析和理解 Matroska 文件的 EBML 结构,以便确定要修改的位置和方式。
轨道处理:
添加、删除或修改轨道需要对媒体数据进行操作,这可能涉及到音频、视频或字幕轨道的提取、重新编码或重新封装。
工具集需要相应的编解码器和封装器来处理不同类型的轨道数据,并确保修改后的数据能够与原始文件的其他部分正确地对应。
元数据修改:
修改 Matroska 文件中的元数据信息涉及到对文件头部分的修改,包括标题、作者、描述等信息的添加、删除或修改。
这需要工具集能够识别和操作文件头部分的数据结构,并确保修改后的数据能够被其他播放器或处理工具正确地读取和解析。
EBML 标签:
Matroska 文件中的标签信息也是以 EBML 结构存储的,工具集需要能够操作这些标签信息,实现对文件元数据的修改和管理。
当用户使用 MKVToolNix 从 Matroska 文件中提取特定的轨道或数据(如提取视频或音频轨道)时,涉及以下基础技术原理:
轨道识别:
MKVToolNix 需要能够解析 Matroska 文件的头部信息,识别其中包含的各种轨道类型,如视频轨道、音频轨道、字幕轨道等。
通过分析文件的结构和元数据,MKVToolNix可以确定每个轨道的类型、编解码信息以及其他相关参数。
数据提取:
用户指定需要提取的轨道类型后,MKVToolNix会根据轨道的索引或标识从文件中提取对应的数据。
对于视频轨道,MKVToolNix可能会提取视频帧数据;对于音频轨道,则会提取音频样本数据。
重新封装:
提取特定轨道的数据后,MKVToolNix可能会将这些数据重新封装到一个新的 Matroska 文件中,以便用户能够单独保存或处理这些数据。
在重新封装过程中,MKVToolNix需要保留原始数据的质量和格式,确保提取的数据与原始文件中的相应轨道数据一致。
解码和处理:
在提取音视频轨道时,MKVToolNix可能会涉及对数据的解码和处理操作,以便提供给用户可用的原始或重新编码后的数据。
这可能需要依赖于内置的或系统中安装的编解码器来实现对数据的解码和处理。