在它到达车载屏幕之前
iPhone 和 CarPlay 的视频格式。 在手机上定下来,再放到屏幕上。
iPhone 和 CarPlay 的视频格式由手机决定,在车载屏幕参与之前就定下来了。MP4, M4V, MOV 和 M3U8 交给 iOS 的系统解码器;MKV, AVI, WebM, FLV, TS, MTS, M2TS, WMV, MPG, MPEG, VOB 和 OGV 交给 Dashow 的扩展解码路径。其余扩展名在文件打开时,按里面的实际内容决定走哪一条。
- 01
iPhone 原生的视频格式是 MP4, M4V, MOV 和 M3U8,另外十二种容器走扩展解码路径。
- 02
扩展名决定先由哪个解码器打开,里面的编解码器决定你看到和听到什么。
- 03
通过 SMB 打开的视频一律走扩展解码路径,与扩展名无关。
使用方法
快速上手
- 01
先看扩展名
点号后面的几个字母,说明文件先交给哪个解码器。
- 02
在表里找到它那一行
下面的路线表把每种视频格式分进系统解码器、扩展解码路径,或打开时再决定这三行。
- 03
用 Dashow 打开它
从“文件”或“照片”导入,也可以通过 SMB 直接浏览 NAS 上的文件夹。
- 04
三条轨道都看一眼
画面、声音和文字各自解码,所以三样都要确认。
iPhone 到底能播放哪些视频格式?
同一个文件夹里的两个文件,同一部手机。一个打开就播,另一个停在一帧灰色画面上。差别很少出在手机。每部 iPhone 都内置了自己的视频解码器,这个解码器只打开一组固定的视频格式。Dashow 为它不接手的容器另开一条解码路径,再按扩展名把每个文件分过去。
Apple 那篇讲“媒体文件打不开”的支持文章,写的是一串可以依次尝试的步骤,而不是一份格式清单。这一页给出清单。下面的表就是 Dashow 实际使用的路线图,直接读自那段按扩展名分流的代码:四种扩展名交给系统解码器,十二种交给扩展解码路径。
扩展名是路线提示,不是承诺。
扩展名是一个提示。它告诉 App 先用哪个解码器打开文件,却不说明这个解码器在里面会遇到什么。容器只是一层外壳:一个 MKV 里装着一条视频轨、一条或多条音轨,常常还有字幕轨,每一条都单独编码。改文件名改的是提示,不是内容。
同一种视频格式的两个文件在同一部手机上表现不同,原因就在这里。它们各自带着不同的编解码器:画面一套,声音一套,文字轨道又是另一回事,每一样都按自己的条件解码。画面可以照常出来,而某条音轨保持安静,或者某条文字轨道停在菜单里等你去选。三条轨道,三种结果。
MP4, M4V, MOV 和 M3U8 交给系统解码器。
四种扩展名走向 iOS 内置的解码器:mp4, m4v, mov 和 m3u8。MP4 和 MOV 是近亲。MOV 是 Apple 的 QuickTime 容器,MP4 由它标准化而来,所以 iPhone 摄像头拍下的片段和从网上下载的文件,常常装着同一份 H.264 或 HEVC 视频,只是名字不同。
HEVC 属于这一行。Apple 自家相机默认使用 HEVC(也叫 H.265),iOS 用处理 H.264 的同一个系统框架解码它,所以手机拍的 4K 片段不需要额外准备。M3U8 排在这一行则是另一个原因:HLS 是 Apple 的流媒体格式,iOS 原生读取 .m3u8 清单。
另外十二种容器走扩展解码路径。
另外十二种视频格式走扩展解码路径:mkv, avi, webm, flv, ts, mts, m2ts, wmv, mpg, mpeg, vob 和 ogv。Dashow 为它们自带了一个解码器。它们多半来自下载、摄像机、电视录制或更早的存档,文件原样进来,不用先转码,也不用先开另一个 App。
有一条规则比扩展名更优先。通过 SMB 打开的视频一律走扩展解码路径,与扩展名无关,所以 NAS 上的 MP4 和它旁边的 MKV 打开方式完全一样。没有引擎要你挑。Dashow 读文件名、打开文件,发现里面的内容需要时就转到另一条路径。
少见的扩展名,打开文件时才有答案。
两行之外的视频格式,在打开时才定下来。文件自己回答。Dashow 打开它,走那条读得懂它的路径,.divx, .rmvb,以及完全没有扩展名的文件,都是这样各按各的情况处理。面对某一个具体文件,最快的答案仍然是打开它,看十秒钟。
有一个界面替你读文件。打开本地视频的“详情”,Dashow 会按需读出时长、画面尺寸、视频编码与音频编码、文件大小,以及文件自带的标题。容器在那里不再只是几个字母。扩展名选了路线,编解码器的名字才是它一直没说的那部分。
按你的文件所在那一行,接着往下看。
表格停下的地方,有四篇页面接上。其中两篇讲容器。MKV 指南打开一个 Matroska 文件,说明它装着什么,再解释为什么同样的字节在一个 App 里能开、在另一个里不能。AVI 页面列出所有走扩展解码路径的老容器,并说明传输流为什么和其余容器表现不同。
另外两篇各盯住一条轨道。有画面没声音,问题出在音轨用的编解码器,有单独一页回答。放在电影旁边的字幕文件则是命名问题:SRT 页面给出 .srt 或 .vtt 文件必须采用的确切名称,播放器才会把它和视频配成一对。从你的视频所在那一行开始。
每种扩展名走哪条路线
| 路线 | 扩展名 | 为什么走这条 |
|---|---|---|
| iOS 内置的解码器 | mp4, m4v, mov, m3u8 | 由 iOS 内置的解码器打开文件 |
| Dashow 的第二个解码器 | 十二个扩展名:mkv, avi, webm, flv, ts, mts, m2ts, wmv, mpg, mpeg, vob, ogv | Dashow 把这些容器交给自带的解码器 |
| 打开文件时再决定 | 其余所有扩展名 | App 读取文件本身,走能打开它的那条路径 |
| 任何通过 SMB 打开的视频 | 所有扩展名,包括 mp4 | 共享上的文件始终走扩展解码路径 |
Dashow.





