全部指南

一个容器,好几条轨道

在 iPhone 和 CarPlay 上播放 MKV。 一个容器,里面所有轨道。

在 iPhone 和 CarPlay 上播放 MKV,从“文件”把它导入 Dashow,再打开就行。.mkv 扩展名会把视频送上 App 的扩展解码路径,文件原样播放。一个 Matroska 文件里装着一条视频轨、一条或多条音轨,常常还有字幕和章节。

即将上线 App Store使用方法
产品示意图。使用体验取决于 App 与显示设备的兼容性。
  • 01

    一个 MKV 就是一个容器,里面有视频轨、音轨,常常还有字幕轨和章节。

  • 02

    以 .mkv 结尾的文件走扩展解码路径,视频原样打开。

  • 03

    从 MKV 读出的章节,会变成“章节”菜单,以及时间线上的刻度。

使用方法

快速上手

  1. 01

    把 MKV 带进来

    选择“添加”→“文件”,选中那个文件,Dashow 保留一份托管副本,原件留在原处。

  2. 02

    打开它,直接播放

    点那一行带真实缩略图的视频;.mkv 扩展名会自己把文件送上扩展解码路径。

  3. 03

    看看“音轨”与“字幕”

    打开这个菜单,就能看到文件里的音轨和内封字幕轨道,并在它们之间切换。

  4. 04

    按章节跳转

    容器带着章节标记时,“章节”菜单和时间线上的刻度会把你送到每一段的开头。

Matroska 文件是一个装着独立轨道的容器。

MKV 是一个容器。Matroska 自己的技术文档描述的正是这样一个文件:里面有一条视频轨、一条或多条音轨,常常还有字幕轨和章节标记,每一项都作为独立元素存放在同一个文件里。扩展名说的是这层外壳,它没说里面的画面是哪种编解码器产生的。

你刚遇到的情况,这一条事实就解释完了。iOS 内置的解码器只读 Apple 交给它的那几种容器,其余的不接手。另一个解码器则直接读 Matroska。硬盘上是同一串字节,换一个解码器来读。Apple 那篇讲媒体文件打不开的说明,并没有列出到底是哪些格式。你手机里的这个文件本身没有问题。

在 iPhone 上怎么播放 MKV 文件?

把文件带进来,然后打开。在 Dashow 里选择“添加”→“文件”,选中那个 .mkv,App 会保留一份托管的本地副本,你的原件仍然待在原来的位置。媒体库里那一行显示的是从视频本身取出的真实缩略图,而不是一个通用文件图标。

你从来不用挑解码器。Dashow 先按扩展名分流,.mkv 走扩展解码路径,也就是那条专为读取 Matroska 及其中编解码器而建的路线,再按文件里实际装着的内容决定下一步。点一下视频就开始播。手机里已有的片段,从“照片”导入也是一样。

有画面没声音,是轨道的事,不是文件坏了。

进度条在走、屋里却很安静,这是轨道的问题。MKV 里的视频和音频是两个独立元素,编解码器也各不相同,所以画面解得干干净净的文件,照样可能带着一条系统解码器不打开的音轨。电影带环绕声的概率,比手机录像高得多。

在播放器里打开“音轨”与“字幕”。这个菜单列出的是这个文件实际带着的内容。带第二条音轨的文件,比如环绕声旁边还有一条立体声混音,点一下就换过去,声音回来了。完整的排查思路,以及电影里常见的那几种环绕声格式,放在“有画面没声音”那一页。

章节和字幕轨道都会完整过来。

做过章节的 MKV,章节会保留。Dashow 从容器里读出章节标记,在播放器里放上“章节”菜单,并在时间线的每个标记处留下刻度。每个章节都只隔着一次跳转,两个小时的电影因此变成一部可以随意走动的片子。

字幕也一样。MKV 自带的内封字幕轨道从“音轨”与“字幕”菜单里播放,你导入的 .srt 或 .vtt 字幕文件就排在它们旁边。导入的字幕,大小、字体、颜色、描边和背景都取自“设置”→“辅助功能”→“字幕与隐藏式字幕”,所以在 iOS 里把字幕调大,播放器里看到的也跟着变大。

NAS 上的 MKV,就地播放。

MP4 和 MKV 文件可以通过 SMBWebDAV 播放,不必先复制到手机上。在“添加”里连接共享,浏览到那个文件夹,打开文件就行。通过 SMB 打开的视频一律走扩展解码路径,与扩展名无关,所以 NAS 上的文件和设备上的文件表现一致。

容器不会因为走了网络就变样。“章节”菜单、各条音轨和内封的文字轨道都住在文件内部,所以从共享上读出来和从本地副本读出来完全相同。WebDAV 播放使用字节范围请求,正因为如此,在一个大文件中间跳转才能落到位置上。观看期间保持共享可访问即可。

为什么这个 MKV 打得开,另一个表现却不同?

.mkv 扩展名是路线提示,不是对里面编解码器的承诺。点号后面同样三个字母的两个文件,可以装着完全不同的轨道。打开本地视频的“详情”,App 会去读文件本身:时长、画面尺寸、视频编码与音频编码、文件大小,以及容器里写着的标题。这就是你手上这份副本的解剖图。

这一页只讲 MKV。完整的路线表、两边各有哪些扩展名、系统解码器覆盖到哪里,都在 iPhone 视频格式那一页。.avi, .wmv, .ts 这些更老的容器走同一条扩展解码路径,也有自己的一页。眼前的文件换成别的时,从总览页开始。

Matroska:技术规范与元素说明Apple:Apple 设备上的媒体文件无法打开或播放时Apple:iPhone 上的“文件”App 简介

常见问题

你可能还想了解。

iPhone 能原生播放 MKV 文件吗?

系统解码器负责 .mp4, .m4v, .mov 和 .m3u8。.mkv 走另一条:Dashow 把它送到扩展解码路径,也就是那个为 Matroska 准备的读取器,文件原样打开。原文件和它的轨道都保留下来。

为什么我的 MKV 在 iPhone 的“文件”App 里播放不了?

“文件”App 的视频预览走系统解码器,它只读 Apple 交给它的那几种容器。Matroska 由另一个解码器读取。用“添加”→“文件”把同一个 .mkv 导入 Dashow,它会通过扩展解码路径打开,“文件”里的原件保持不动。

为什么我的 MKV 有画面却没有声音?

画面和声音是两条轨道,编解码器各不相同。视频解得很干净的文件,仍然可能带着一条系统解码器不打开的音轨,进度条在走却一片安静,就是这么来的。打开“音轨”与“字幕”,切到文件的另一条音轨。

MKV 的章节和内封字幕在 iPhone 上还在吗?

两者都是容器内部的元素,都会完整过来。章节标记会变成“章节”菜单和时间线上的刻度,直接从 MKV 中读出。内封的文字轨道则和你导入的 .srt 或 .vtt 文件一起列在“音轨”与“字幕”里。