先看结论
- Matroska 是一种基于 EBML 的多媒体容器,可在一个文件中容纳多条视频、音频和字幕流,实际播放仍取决于播放器对内部编码的支持。
- 播放 MKV 可先尝试 RFC 9559 列出的兼容播放器 VLC。Windows 中通过文件的“打开方式”选择播放器;Mac 中通过 Finder 的“打开方式”选择。手机上先确认媒体应用支持 Matroska 及文件内部编码,再从应用或文件选择器打开。不同应用和设备的支持情况不同,请先查看应用支持的格式。需要处理轨道时,可考虑官方 FAQ 介绍的 MKVToolNix;MKS 是字幕容器,不应直接当作普通文本字幕。
- Matroska 附件可包含任意数据,甚至可执行内容,也可能谎报媒体类型。不要因为附件来自 MKV 就运行它;读取器应核实内容符合预期后再使用。RFC 9559 还列出了章节编解码器执行非预期命令,以及恶意载荷导致拒绝服务的风险。中等风险评级反映这些可选内容和解析风险,并不表示所有文件都会执行命令。
Matroska 文件:MKV、MKA、MKS 怎么打开
Matroska 是容器,不是音视频编码格式。按官方扩展名约定,MKV 至少包含一条视频轨,MKA 用于音频文件,MKS 用于仅包含字幕的文件。每个 Matroska EBML 文档以 EBML Header 开始,随后是根元素 Segment。正式媒体类型为 video/matroska 和 audio/matroska;video/x-matroska 与 audio/x-matroska 是已弃用别名。参见 [RFC 9559](https://www.rfc-editor.org/rfc/rfc9559.html) 与 [Matroska 官方 FAQ](https://www.matroska.org/faq.html)。
MKV 转 MP4 想避免编码质量损失,可在目标容器接受所选流时使用 FFmpeg 流复制。流复制无需解码或重新编码,但目标容器不支持某条流时,转换可能失败;重新转码则通常有质量损失。只把 .mkv 改成 .mp4 不会转换容器。提取音轨或字幕也需要选择能容纳对应流的输出格式。参见 [FFmpeg 官方文档](https://ffmpeg.org/ffmpeg.html)。
怎么打开
播放 MKV 可先尝试 RFC 9559 列出的兼容播放器 VLC。Windows 中通过文件的“打开方式”选择播放器;Mac 中通过 Finder 的“打开方式”选择。手机上先确认媒体应用支持 Matroska 及文件内部编码,再从应用或文件选择器打开。不同应用和设备的支持情况不同,请先查看应用支持的格式。需要处理轨道时,可考虑官方 FAQ 介绍的 MKVToolNix;MKS 是字幕容器,不应直接当作普通文本字幕。
播放 MKV 可先尝试 RFC 9559 列出的兼容播放器 VLC。Windows 中通过文件的“打开方式”选择播放器;Mac 中通过 Finder 的“打开方式”选择。手机上先确认媒体应用支持 Matroska 及文件内部编码,再从应用或文件选择器打开。不同应用和设备的支持情况不同,请先查看应用支持的格式。需要处理轨道时,可考虑官方 FAQ 介绍的 MKVToolNix;MKS 是字幕容器,不应直接当作普通文本字幕。
MKV 转 MP4 想避免编码质量损失,可在目标容器接受所选流时使用 FFmpeg 流复制。流复制无需解码或重新编码,但目标容器不支持某条流时,转换可能失败;重新转码则通常有质量损失。只把 .mkv 改成 .mp4 不会转换容器。提取音轨或字幕也需要选择能容纳对应流的输出格式。参见 [FFmpeg 官方文档](https://ffmpeg.org/ffmpeg.html)。
文件安全
Matroska 附件可包含任意数据,甚至可执行内容,也可能谎报媒体类型。不要因为附件来自 MKV 就运行它;读取器应核实内容符合预期后再使用。RFC 9559 还列出了章节编解码器执行非预期命令,以及恶意载荷导致拒绝服务的风险。中等风险评级反映这些可选内容和解析风险,并不表示所有文件都会执行命令。
来路不明、文件名带两个后缀,或者内容和扩展名对不上——先停下来核对。
转换格式
MKV 转 MP4 想避免编码质量损失,可在目标容器接受所选流时使用 FFmpeg 流复制。流复制无需解码或重新编码,但目标容器不支持某条流时,转换可能失败;重新转码则通常有质量损失。只把 .mkv 改成 .mp4 不会转换容器。提取音轨或字幕也需要选择能容纳对应流的输出格式。参见 [FFmpeg 官方文档](https://ffmpeg.org/ffmpeg.html)。
先复制一份原文件再转换,转完对照看看画质、元数据和排版有没有变。
常见问题
Matroska(MKV)是什么格式,用来做什么?
Matroska 是基于 EBML 的多媒体容器,用于组织视频、音频和字幕流。它不是某一种音视频编码,内部轨道可以采用不同编码。
MKV 文件怎么打开?
可使用 VLC 等 Matroska 兼容播放器打开。支持 MKV 容器不等于支持其中所有编码;不能播放时还需检查内部轨道。
Windows 怎么打开 MKV 文件?
通过文件的“打开方式”选择 VLC 等 Matroska 兼容播放器。如果打开后不能正常播放,检查播放器对内部视频、音频编码的支持。
Mac 怎么打开 MKV 文件?
在 Finder 中通过“打开方式”选择 VLC 等 Matroska 兼容播放器。MKV 扩展名只表示容器,不能保证内部编码与所选播放器兼容。
手机怎么打开 MKV 文件?
先查看媒体应用是否支持 Matroska 和文件内部编码,再从应用或文件选择器打开。不同应用和设备的支持情况不同,请先查看应用支持的格式。
MKV 播放没有声音怎么办?
先检查文件是否有音轨、当前选择了哪条音轨,以及播放器是否支持该音轨的编码。能读取 MKV 容器不代表能解码其中的音频。
Matroska 文件应该选 MKV、MKA 还是 MKS 扩展名?
按官方约定,含至少一条视频轨时用 MKV,音频文件用 MKA,仅包含字幕时用 MKS。选择依据是文件用途和轨道内容。
MKV 转 MP4 怎么保持画质?
目标 MP4 容器支持所选流时,可用 FFmpeg 流复制,避免重新编码造成的质量损失。不兼容的流可能使转换失败;如果必须重新转码,通常会损失质量。
MKV 文件附件安全吗?
不能仅凭 MKV 扩展名判断。附件可能包含可执行数据或谎报媒体类型;不要运行未知附件,读取器应先核实内容。文件能正常播放也不是安全证明。
MKA 音频用什么播放器?
可选择 VLC 等 Matroska 兼容播放器,并确认它支持音轨编码。MKA 表示音频容器,不代表某一种音频编码。
MKS 字幕文件怎么打开?
MKS 是仅包含字幕的 Matroska 容器,应使用能处理 Matroska 字幕轨的工具。官方 FAQ 介绍了用于创建和处理 Matroska 的 MKVToolNix;不要默认 MKS 是可直接编辑的纯文本。
MKV 怎么提取音轨和字幕?
可使用 MKVToolNix 等 Matroska 处理工具,或用 FFmpeg 选择需要的流。输出格式必须接受对应轨道;提取轨道不等于把它转换成另一种编码。
相关格式
资料来源
RFC 9559: Matroska Media Container Format Specification · IETF / RFC Editor
Matroska Frequently asked & answered questions · Matroska Development Team
FFmpeg Documentation · FFmpeg