一个容器,好几条轨道
在 iPhone 和 CarPlay 上播放 MKV。 一个容器,里面所有轨道。
在 iPhone 和 CarPlay 上播放 MKV,从“文件”把它导入 Dashow,再打开就行。.mkv 扩展名会把视频送上 App 的扩展解码路径,文件原样播放。一个 Matroska 文件里装着一条视频轨、一条或多条音轨,常常还有字幕和章节。
- 01
一个 MKV 就是一个容器,里面有视频轨、音轨,常常还有字幕轨和章节。
- 02
以 .mkv 结尾的文件走扩展解码路径,视频原样打开。
- 03
从 MKV 读出的章节,会变成“章节”菜单,以及时间线上的刻度。
使用方法
快速上手
- 01
把 MKV 带进来
选择“添加”→“文件”,选中那个文件,Dashow 保留一份托管副本,原件留在原处。
- 02
打开它,直接播放
点那一行带真实缩略图的视频;.mkv 扩展名会自己把文件送上扩展解码路径。
- 03
看看“音轨”与“字幕”
打开这个菜单,就能看到文件里的音轨和内封字幕轨道,并在它们之间切换。
- 04
按章节跳转
容器带着章节标记时,“章节”菜单和时间线上的刻度会把你送到每一段的开头。
Matroska 文件是一个装着独立轨道的容器。
MKV 是一个容器。Matroska 自己的技术文档描述的正是这样一个文件:里面有一条视频轨、一条或多条音轨,常常还有字幕轨和章节标记,每一项都作为独立元素存放在同一个文件里。扩展名说的是这层外壳,它没说里面的画面是哪种编解码器产生的。
你刚遇到的情况,这一条事实就解释完了。iOS 内置的解码器只读 Apple 交给它的那几种容器,其余的不接手。另一个解码器则直接读 Matroska。硬盘上是同一串字节,换一个解码器来读。Apple 那篇讲媒体文件打不开的说明,并没有列出到底是哪些格式。你手机里的这个文件本身没有问题。
在 iPhone 上怎么播放 MKV 文件?
把文件带进来,然后打开。在 Dashow 里选择“添加”→“文件”,选中那个 .mkv,App 会保留一份托管的本地副本,你的原件仍然待在原来的位置。媒体库里那一行显示的是从视频本身取出的真实缩略图,而不是一个通用文件图标。
你从来不用挑解码器。Dashow 先按扩展名分流,.mkv 走扩展解码路径,也就是那条专为读取 Matroska 及其中编解码器而建的路线,再按文件里实际装着的内容决定下一步。点一下视频就开始播。手机里已有的片段,从“照片”导入也是一样。
有画面没声音,是轨道的事,不是文件坏了。
进度条在走、屋里却很安静,这是轨道的问题。MKV 里的视频和音频是两个独立元素,编解码器也各不相同,所以画面解得干干净净的文件,照样可能带着一条系统解码器不打开的音轨。电影带环绕声的概率,比手机录像高得多。
在播放器里打开“音轨”与“字幕”。这个菜单列出的是这个文件实际带着的内容。带第二条音轨的文件,比如环绕声旁边还有一条立体声混音,点一下就换过去,声音回来了。完整的排查思路,以及电影里常见的那几种环绕声格式,放在“有画面没声音”那一页。
章节和字幕轨道都会完整过来。
做过章节的 MKV,章节会保留。Dashow 从容器里读出章节标记,在播放器里放上“章节”菜单,并在时间线的每个标记处留下刻度。每个章节都只隔着一次跳转,两个小时的电影因此变成一部可以随意走动的片子。
字幕也一样。MKV 自带的内封字幕轨道从“音轨”与“字幕”菜单里播放,你导入的 .srt 或 .vtt 字幕文件就排在它们旁边。导入的字幕,大小、字体、颜色、描边和背景都取自“设置”→“辅助功能”→“字幕与隐藏式字幕”,所以在 iOS 里把字幕调大,播放器里看到的也跟着变大。
为什么这个 MKV 打得开,另一个表现却不同?
.mkv 扩展名是路线提示,不是对里面编解码器的承诺。点号后面同样三个字母的两个文件,可以装着完全不同的轨道。打开本地视频的“详情”,App 会去读文件本身:时长、画面尺寸、视频编码与音频编码、文件大小,以及容器里写着的标题。这就是你手上这份副本的解剖图。
这一页只讲 MKV。完整的路线表、两边各有哪些扩展名、系统解码器覆盖到哪里,都在 iPhone 视频格式那一页。.avi, .wmv, .ts 这些更老的容器走同一条扩展解码路径,也有自己的一页。眼前的文件换成别的时,从总览页开始。
Dashow.




