全部指南

一个老文件,和一块车载屏幕

在 iPhone 和 CarPlay 上播放一个 AVI。 还有它旁边的 WMV, TS 和 VOB。

在 iPhone 和 CarPlay 上播放 AVI,从“文件”导入再打开即可;Dashow 把 .avi 送上扩展解码路径,而不是系统解码器。.wmv, .flv, .ts, .mts, .m2ts, .mpg, .mpeg, .vob, .webm 和 .ogv 走的是同一条路,文件原样进来。

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

    十一种更老的扩展名走扩展解码路径,AVI 原样进来。

  • 02

    传输流可以从任意位置开始读,所以缺了开头的 .ts 照样播放。

  • 03

    扩展名挑解码器;里面的编解码器决定画面和声音。

使用方法

快速上手

  1. 01

    从“文件”导入

    选择“添加”,再选“文件”,挑出那个 .avi, .wmv 或 .ts;Dashow 保留自己的副本,你的原件留在原处。

  2. 02

    打开它,直接看

    在“已保存的视频”里点开视频;App 按扩展名分流,你不用挑引擎。

  3. 03

    读一读媒体详情

    “详情”里列着时长、画面尺寸、视频编码与音频编码、文件大小和文件自带的标题。

  4. 04

    或者直接从 NAS 播放

    通过 SMB 打开的视频不论扩展名都走扩展解码路径,共享上的 .avi 不用先复制。

这个 AVI 一点问题都没有。

你在“文件”里点开它,弹出一张预览页,什么也没播。文件是完整的。刻录盘里的 .avi、旧办公软件导出的 .wmv、从电视卡上拉下来的 .ts,表现都一样,因为 iOS 的系统解码器只打开一份很短的容器清单,而它们不在上面。

Apple 自己那篇讲媒体文件打不开的帮助文章,让你换一个 App 试试,并没有公布能播的清单。清单才是有用的部分。Dashow 读扩展名,把 AVI 送上自带的第二条解码路径,这一页上其余的容器走的也是同一条。

AVI, WMV, TS 和 VOB 是一个问题,不是十一个。

十一种扩展名走这同一条路:.avi, .webm, .flv, .ts, .mts, .m2ts, .wmv, .mpg, .mpeg, .vob 和 .ogv,MKV 走的也是这一条。每一种都是容器,是包着一条视频轨、一条或多条音轨、有时还有字幕的一层外壳。扩展名说的是这层外壳。外壳里装着什么是另一个问题,而画面由后者决定。

所以扩展名是路线提示,不是承诺。它告诉 Dashow 先试哪个解码器,却不说明里面的视频轨和音轨能不能各自解出来。这正是扩展名相同的两个文件表现不同的原因,也是一篇只罗列格式、不提这一点的文章只讲了一半的原因。

从“文件”把 AVI 带进来,打开它。

选择“添加”,再选“文件”,挑出那个 .avi。Dashow 会把它导入成一份托管的本地副本,你的原件留在原来的位置。视频落进“已保存的视频”,可以按日期、标题或观看情况排序,和你带进来的其他内容排在一起。像打开 MP4 一样打开它。你不用选解码器。

“详情”会报出容器里实际装着什么:时长、画面尺寸、视频编码与音频编码、文件大小,以及文件自带的标题。遇到让你意外的文件,读一次就够。一个老 .avi 和一段电视卡录下的 .ts 可以走同一条路径打开,里面的视频和音频编码却完全不同,编码那一行就是你看清手上这份的地方。

.ts 或 .m2ts 为什么和 AVI 不一样。

传输流是为广播设计的,所以它把结构信息重复写在整个文件里,而不是只在开头写一次。播放器可以从任意位置接上,读后面的内容。于是电视卡录下的 .ts、摄像机存储卡里的 .mts、光盘上的 .m2ts,即使录制丢了开头也照样打得开。

HLS 把直播切成一段段传输流分片、每一段都能单独播放,用的是同一套设计思路;RFC 8216 规定了这种排布。.avi 的做法正相反,靠一份索引描述整个文件。复制到一半中断的 .avi,是一个索引与内容对不上的文件。中断的 .ts 只是短一点而已。

光盘里的 .vob 或 .mpg,本来就是分段的。

一张 DVD 里并没有一整个电影文件。它装的是一个 VIDEO_TS 文件夹和一串编号的 .vob 分段,两个小时的正片会落成 VTS_01_1.VOB, VTS_01_2.VOB 和 VTS_01_3.VOB。把这个文件夹拷过来,你会得到三个视频,每一个都从半场开始。这不是坏了。你还没碰它之前,这部电影就是分段存放的。

导入之后每一段都能单独播放,和其他 .vob 或 .mpg 一样走扩展解码路径。按编号顺序播。电视卡录制也可能这样分段,一次录制一个文件。分段放在共享上时,Dashow 通过 SMB 直接读取,不需要复制这一步,因为从那里打开的内容走的是同一条路径。

扩展名没告诉你的部分,以及接下来去哪一页。

扩展名负责分流。它不描述里面的轨道,而剩下的意外都住在那儿。进度条在走、却一片安静的视频,带着一条系统解码器不打开的音轨,常见的是 AC-3, E-AC-3 或 DTS 这类环绕声格式;“音轨”与“字幕”菜单会列出文件实际带着的内容。

这一页覆盖的是更老的那批容器。MKV 有自己的指南,因为 Matroska 文件带着章节和字幕轨道,打开之后你能做的事情不一样;有画面没声音的情况也另有一页。完整的路线表,以及 MOV 和 MP4 的区别,从视频格式总览页开始看。

每种老扩展名一般从哪里来

每种老扩展名一般从哪里来
扩展名通常来自哪里需要知道的一点
.avi, .wmv, .flv, .ogv早年的下载或工作存档走扩展解码路径
.ts, .mts, .m2ts电视卡录制或摄像机存储卡同一条路径,而且可以从任意位置读起
.mpg, .mpeg, .vobDVD 转出来的文件同一条路径,常常拆成好几个文件
.mkv, .webm重新编码的电影或网络下载同一条路径;MKV 另有一篇指南
Apple:Apple 设备上的媒体文件无法打开或播放时IETF RFC 8216:HTTP 实时流媒体与传输流分片Apple:iPhone 上的“文件”App 简介

常见问题

你可能还想了解。

不手动转码,能把 MKV 或 AVI 放进 iPhone 吗?

可以。从“文件”导入再打开即可;.mkv 和 .avi 都走扩展解码路径,硬盘上的字节没有变动。.wmv, .flv, .ts, .mts, .m2ts, .mpg, .mpeg, .vob, .webm 和 .ogv 也是一样。

iPhone 上怎么播放 .ts 文件,它和 .m2ts 有什么区别?

导入再打开即可;.ts, .mts 和 .m2ts 都走扩展解码路径。它们是一家人。.ts 来自广播和电视卡录制,.mts 与 .m2ts 来自 AVCHD 摄像机和蓝光光盘。三者都可以从任意位置开始读。

iPhone 能播放 WMV, FLV 和 MPG 文件吗?

这三种在 Dashow 里走扩展解码路径,和 .avi 是同一条。扩展名决定路线;里面的视频和音频编码决定你看到和听到什么。某条轨道表现奇怪时,打开文件的“详情”看一眼编码那一行。

为什么我的 DVD 转出来是好几个 .vob 文件?

DVD-Video 把一个片目存成编号的 .vob 分段,所以一部长片在到手机之前就已经拆开了。把这些分段导入,按顺序播放。每一段都和其他 .vob 一样走扩展解码路径。