車の画面に届く、その前に
iPhoneとCarPlayの動画形式。 iPhoneで決まり、車の画面に映る。
iPhoneとCarPlayの動画形式は、車の画面に届く前にiPhoneの側で2つの道に分かれます。MP4, M4V, MOV, M3U8はiOSのシステムデコーダーへ。MKV, AVI, WebM, FLV, TS, MTS, M2TS, WMV, MPG, MPEG, VOB, OGVはDashowの追加デコード経路へ進みます。それ以外の拡張子は、開いたときに中身で決まります。
- 01
iPhoneが標準で開く動画形式はMP4, M4V, MOV, M3U8。さらに12のコンテナが追加デコード経路を通ります。
- 02
拡張子は最初に開くデコーダーを選びます。映像と音を決めるのは、中のコーデックです。
- 03
SMB経由で開く動画は、拡張子にかかわらず必ず追加デコード経路を通ります。
使い方
まずはこの手順で
- 01
拡張子を読む
ドットの後ろの文字が、そのファイルが最初に届くデコーダーを示します。
- 02
表で行を探す
振り分け表は、動画形式をシステムデコーダー、追加デコード経路、開いたときに決まる行のどれかに置いています。
- 03
Dashowで開く
「ファイル」や「写真」から読み込むか、NASのフォルダをSMBで開きます。
- 04
3つのトラックを確認
映像・音声・字幕はそれぞれ別にデコードされるので、3つとも確かめます。
iPhoneは、どの動画形式を実際に再生できるのか。
同じフォルダの2つのファイルを、同じiPhoneで開きます。一方は再生され、もう一方は灰色の静止画のままです。違いはiPhoneにあることはまずありません。すべてのiPhoneには動画のデコーダーが内蔵されていて、そのデコーダーが開く動画形式は決まっています。Dashowはそれが扱わないコンテナのために2つ目のデコード経路を持ち、拡張子でファイルを振り分けます。
メディアファイルが開かないときのAppleのサポートページは、形式の一覧ではなく試す手順として書かれています。このページは一覧を出します。下の表は、拡張子を見る実際のコードから起こしたDashowの振り分け表です。4つの拡張子がシステムデコーダーへ、12が追加経路へ進みます。
拡張子は道案内であって、保証ではありません。
拡張子は手がかりです。どのデコーダーでファイルを開くかをアプリに伝えるだけで、そのデコーダーが中に何を見つけるかは何も語りません。コンテナは包み紙です。MKVなら映像トラック、1つ以上の音声トラック、多くの場合は字幕トラックを収め、それぞれが別々に符号化されています。ファイル名を変えても、変わるのは手がかりだけで中身は変わりません。
同じ動画形式の2つのファイルが同じiPhoneで違う動きをするのは、このためです。映像コーデック、音声コーデック、テキストトラックの組み合わせはファイルごとに違い、それぞれが自分の条件でデコードされます。映像は出ているのに音声トラックが静かなままのことも、テキストトラックがメニューで選ばれるのを待っていることもあります。3つのトラックに、3つの結果があります。
MP4, M4V, MOV, M3U8はシステムデコーダーへ。
4つの拡張子が、iOSに内蔵されたデコーダーへ向かいます。mp4, m4v, mov, m3u8です。MP4とMOVは近い親戚です。MOVはAppleのQuickTimeコンテナで、MP4はそこから標準化されました。iPhoneのカメラで撮った動画と、ウェブからダウンロードしたファイルが、名前は違っても同じH.264やHEVC(H.265)の映像を収めていることはよくあります。
HEVC(H.265)もこの行です。Appleのカメラは標準でHEVCを使い、iOSはH.264と同じシステム基盤でこれをデコードするので、iPhoneで撮った4K動画に足すものはありません。M3U8がこの行にあるのは別の理由です。HLSはAppleのストリーミング形式で、iOSは.m3u8のマニフェストをそのまま読みます。
さらに12のコンテナが、追加デコード経路を通る。
追加デコード経路を通る動画形式は12あります。mkv, avi, webm, flv, ts, mts, m2ts, wmv, mpg, mpeg, vob, ogvです。この経路はDashow自身のデコーダーが担います。ダウンロード、ビデオカメラ、放送の録画、古い保管庫から生まれやすいコンテナで、ファイルはそのまま入ります。変換の工程も、先に開くための別のアプリも要りません。
拡張子より優先される規則が1つあります。SMB経由で開く動画は拡張子にかかわらず必ず追加デコード経路を通るので、NAS上のMP4も隣のMKVも同じように開きます。エンジンを選ぶ操作はありません。Dashowが名前を読んでファイルを開き、中身がそれを求めればもう一方の経路へ移ります。
見慣れない拡張子は、開いて決める。
2つの行に無い動画形式は、開くときに決まります。ファイル自身が答えます。Dashowが開いて、読める方の経路を取ります。.divxや.rmvb、拡張子がまったく無いファイルが、それぞれの中身に応じて扱われるのはこの仕組みです。目の前の1本については、開いて10秒観るのがいちばん早い答えです。
ファイルを読み取ってくれる画面もあります。端末内の動画の「詳細」を開くと、再生時間、表示サイズ、映像と音声のコーデック、ファイルサイズ、埋め込まれたタイトルが、その場でファイルから読み出されます。コンテナが3文字でなくなる場所です。道を選んだのは拡張子で、コーデックの名前は拡張子が教えてくれなかったものです。
自分のファイルがある行から、次に進む。
表の先は4つのページが引き取ります。2つはコンテナの話です。MKVのガイドはMatroskaのファイルを開いて中身を示し、同じデータが一方のアプリで開いてもう一方で開かない理由を説明します。AVIのページは追加デコード経路を通る古いコンテナを網羅し、TSファイルだけ動きが違う理由を示します。
残る2つは、1本のトラックを扱います。映像は出るのに無音、という状態は音声コーデックの問題で、専用のページに答えがあります。映画の隣に置いた字幕ファイルは名前の問題です。SRTのページが、.srtや.vttに付けるべき正確な名前を示します。自分の動画形式がある行から始めてください。
拡張子ごとの行き先
| 経路 | 拡張子 | そこへ進む理由 |
|---|---|---|
| iOS内蔵のデコーダー | mp4, m4v, mov, m3u8 | iOSに組み込まれたデコーダーがファイルを開く |
| Dashowの2つ目のデコーダー | 12個の拡張子: mkv, avi, webm, flv, ts, mts, m2ts, wmv, mpg, mpeg, vob, ogv | Dashowがこれらのコンテナを自前のデコーダーへ振り分ける |
| 開いたときに決まる | それ以外のすべての拡張子 | アプリがファイルを読み、開ける方の経路を取る |
| SMB経由で開く動画 | mp4を含むすべての拡張子 | 共有フォルダは必ず追加デコード経路を通る |
Dashow.





