iPhoneがある動画は開いて、別の動画は拒否する理由
どちらも「動画」で、どちらも数ギガバイトあり、どちらも同じ場所からダウンロードしたファイル。片方はタップした瞬間に再生され、もう片方はグレーの画面か、何も表示されません。違いの原因がファイルの破損であることはほとんどなく、映像の周りに何が巻かれているか、そしてAppleがどの「包み」に対応すると決めたかの問題です。
- そのまま再生できる
- H.264またはHEVCの映像とAAC音声を収めたMP4とMOV。
- たいてい拒否される
- 中身が何であれMKV、AVI、WebM、FLV、WMV。
- 理由
- iOSは映像そのものより先にコンテナを確認しており、対応リストはごく短いからです。
動画ファイルとは、いくつかのものが入った箱である
「形式」という言葉が、まったく別の2つのものを指すために使われていて、混乱の大半はここから始まります。動画ファイルはコンテナ——映像トラック、1つ以上の音声トラック、字幕トラック、チャプターマーク、カバーアート、そしてそれぞれの開始位置を示す表を収めた箱です。MP4、MKV、AVI、MOV、WebMはコンテナです。これらは箱であって、中身ではありません。
箱の中身はコーデック——40ギガバイトの生の映像フレームを2ギガバイトに変換する圧縮方式——でエンコードされています。H.264、HEVC(H.265)、AV1、VP9、MPEG-4 Part 2は映像コーデックで、AAC、MP3、AC-3、E-AC-3、DTS、FLAC、Opus、Vorbisは音声コーデックです。1つのMKVファイルに、HEVC映像、英語のAC-3音声トラック、トルコ語のAAC音声トラック、字幕トラック3本が入っている、といったことも普通にあります。
つまり「このデバイスはMKVを再生できるか」という問いは、実は2つの問いが積み重なったものです。箱を開けるか、そして中身をデコードできるか。プレーヤーはその両方に「はい」と答える必要があります。Apple標準の再生機能はほとんどのコンテナに対して1問目の時点で「いいえ」と答えるため、そのファイルは2問目で失敗するところまでたどり着くことすらありません。
知っておくべき言葉
動画ファイルにまつわる会話のほぼすべては、この5つの用語でカバーできます。10分かけて覚える価値があります。「動かない」を具体的で答えの出せる問いに変えてくれるからです。
- コンテナ
- ファイルの入れ物のことです——MP4、MKV、AVI、MOV、WebM、TS。何を収められるか(音声トラックの数、字幕が入るか、チャプターがあるか)を決めるものであり、映像の見た目のよさとは関係ありません。
- コーデック
- 実際の映像や音声を圧縮する方式です——H.264、HEVC、AV1、VP9、AAC、AC-3、DTS、FLACなど。一部はハードウェアデコードに対応していますが、残りはプロセッサーでデコードする必要があり、その分バッテリーを消費します。
- ビットレート
- ファイルが1秒あたりに使うビット数です。画質とファイルサイズの両方を左右する最大の要因で、8MbpsのビットレートのHD映画と60Mbpsの同じ映画は解像度こそ同じでも見た目はまったく違います。
- 再多重化(リマックス)
- 既存のトラックに手を加えず、別のコンテナへ移すことです。高速で劣化がなく、ライブストリームを普通のファイルに変える仕組みの正体そのものです。何も再エンコードしないので、何も失われません。
- 再エンコード(トランスコード)
- 映像を実際に別のコーデックへ作り直すことです。遅く、発熱し、バッテリーを消費し、毎回必ず劣化します。変換されたコピーは常にオリジナルより一世代劣ります。
Apple純正の再生機能が受け付けるもの
iOS 17・macOS 14時点での実用的な一覧です。「ファイル」アプリ、クイックルック、Safari、QuickTimeはすべて同じメディアスタックを共有しているため、同じルールに従います。
| コンテナ | iPhone / iPad | Mac(QuickTime) | 典型的な中身 |
|---|---|---|---|
| MP4 / M4V | 対応 | 対応 | H.264またはHEVC映像、AAC音声 |
| MOV | 対応 | 対応 | Apple独自のコンテナで、コーデックは同じ |
| MKV(Matroska) | 非対応 | 非対応 | 何でも入る、最も柔軟なコンテナ |
| AVI | 非対応 | 非対応 | 古めのDivX/Xvid素材、MP3やAC-3音声 |
| WebM | 非対応 | 非対応 | VP9またはAV1映像、OpusまたはVorbis音声 |
| FLV / WMV | 非対応 | 非対応 | 旧来のWeb動画やWindows動画 |
| TS / M2TS | 部分対応 | 部分対応 | 放送やBlu-rayのストリーム |
| HLS(.m3u8) | 対応 | 対応 | ファイルではなく、セグメントを指すプレイリスト |
対応コンテナの中であっても、コーデックが原因で拒否されることがあります。AC-3、E-AC-3、DTSの音声は映画によくあるのにシステムのプレーヤーではデコードされず、一部のMP4ファイルで映像は出るのに音声だけ出ないのはこのためです。
対応リストがこれほど短い理由
見落としではありません。Appleは対応するコーデック向けにハードウェアデコーダーを搭載しており、だからこそiPhoneは4KのHEVC映画を充電1回で何時間も再生できます——映像がメインプロセッサーに触れることすらありません。世界中のあらゆるコンテナとコーデックに対応するということは、その多くをソフトウェアでデコードすることを意味し、それに伴うバッテリー消費と発熱、さらにAppleが興味を持たない形式の特許使用料まで引き受けることになります。
その結果、iOS向けの汎用メディアプレーヤーは自前のエンジンを持ち込む必要があります。ほぼすべてのプレーヤーが同じオープンソースの基盤——ほとんどすべてのコンテナ・コーデックを理解するFFmpegとそのライブラリ——の上に作られています。サードパーティ製のプレーヤーがシステムの開かないファイルを開けるのはこれがすべてで、何か特別なことをしているわけではなく、デコード処理を自分自身で行っているだけです。
これはプレーヤー同士の違いも説明します。ソフトウェアでデコードするプレーヤーは何でも再生できますが、長い映画では発熱します。可能な限りハードウェアデコーダーに処理を任せるプレーヤーは涼しいまま長時間動きます。優れたプレーヤーは両方をこなします——できる限りハードウェアを、必要な場合だけソフトウェアを使い、ユーザーに確認を求めずに切り替えます。
iOSが拒否するファイルを見る3つの方法
時間と画質の面でのコストが小さい順に並べています。
良いプレーヤーと悪いプレーヤーを実際に分けるもの
App Storeのほぼすべてのメディアプレーヤーが「全形式対応」を謳っています。その謳い文句の先で差が出るのが、以下の点です。
- 可能な限りハードウェアデコードを使う
H.264やHEVCはCPUではなくハードウェアデコーダーに渡されるべきです。2分もあれば分かります——端末が熱くなるか、ならないかです。
- 最初の1つだけでなく、すべてのトラックを見せる
3か国語の音声と5本の字幕トラックを持つ映画なら、ファイルを開き直すことなく再生中にすべて切り替えられるべきです。
- 本当にレジュームが効く
再開位置がファイルごとに保存され、開き直しても復元され、名前を変えたり移動したりしても保たれること。意外と珍しく、失われると一番困る機能です。
- 巨大なファイルでも常識的な動作をする
20GBの再多重化されたファイルでも、シークのたびに4秒固まるのではなく滑らかにスクラブできるべきです。これはデコードではなくインデックスの問題です。
- バックグラウンド再生とピクチャー・イン・ピクチャー
画面をロックしたまま聴き続けたり、メッセージに返信する間だけ動画を隅に小さく表示したりできること。それがあって初めて、スマホでプレーヤーとして使い物になります。
- どこにも隠れた再エンコードの手順がない
アプリが再生前に数分かけてファイルを「取り込み」や「最適化」しているなら、それは変換をしているということです。画質の劣化と待ち時間がそこに伴います。
3つのデバイス間で変わらない同じファイル
iOS、iPadOS、macOSは同じメディアスタックを共有しているため、ルールはまったく同じです。違うのは、再生の周りで快適にできることです。
そこからよく生まれる疑問
MKVはMP4より画質が良いのですか?
どちらが優れているということはありません——どちらも箱であり、画質は中身のコーデックとビットレートで決まります。MKVは高ビットレートのリッピングによく使われ、MP4はストリーミングサービスがはるかに低いビットレートで配信する形式であるため、実際にはMKVのほうが良く見えることが多いだけです。同じ映像トラックを両方に入れれば、ピクセル単位で完全に同一です。
MKVをMP4に変換すると画質は落ちますか?
トラックが再エンコードされた場合だけです。中身の映像・音声コーデックがすでにMP4で扱えるものなら、再多重化はそれらをそのまま移すだけで、劣化がなく通常1分もかかりません。HEVCをH.264に、DTSをAACにする必要がある場合はそれが再エンコードにあたり、画質が落ちます。
小さいファイルは普通に再生できるのに、4Kファイルだけコマ落ちするのはなぜですか?
ハードウェアデコーダーが使えるはずのコーデックがソフトウェアでデコードされているか、ファイルが遅いストレージ上にあるかのどちらかです。ネットワーク共有や電波の弱い外付けドライブは、常に80Mbpsを供給できるとは限りません。一度ローカルにコピーして試してみてください。それで再生できるなら、デコードは問題ではありませんでした。
ライブラリを保存しておくのに最も安全な形式は?
元の素材にあったもの——複数言語の音声、字幕トラック、チャプター——をすべて残したいならMKVです。家中のあらゆるデバイスとの互換性を、追加トラックの保持より優先するならH.264かHEVCのMP4です。新しく何かを作るなら避けるべきはAVIで、現代のコーデックをまともに扱えません。
FoxDLでの扱われ方
FoxDLは自前のメディアエンジンを持っているため、コンテナの問題はそもそも発生しません。ファイルを端末に置いて開くだけです。同じエンジンが音楽の再生も担うため、映画とFLACのアルバムが1つのライブラリに収まります。
- MKV、AVI、WebM、FLV、WMV、MP4、MOV、TS、HLSを直接開けます。事前に変換も取り込みも再パッケージも不要です。
- コーデックが許す限りハードウェアデコードを使用し、それができない場合の受け皿としてソフトウェアデコードも用意しているため、普通の映画でバッテリーを余計に消費することはありません。
- AC-3、E-AC-3、DTS、FLAC、Opus、Vorbisの音声もデコードします。これが無音映画の問題を解決し、同じデコーダーがライブラリ内のFLACやALACのアルバムも再生します。
- 埋め込まれた音声・字幕トラックはすべて一覧表示され、再生中に切り替えられます。
- 再生位置はファイルごとに記憶され、名前を変えても移動しても保たれます。ライブラリはパスではなく識別子でファイルを追跡しているためです。
- ピクチャー・イン・ピクチャーとバックグラウンド再生に対応し、iPadでは外付けドライブをコピーせずその場で再生できます。
自分のファイルの再生はすべてのデバイスで無料版に含まれています。回数制限もなく、Pro機能でもありません。
よくある質問
- iPhoneやiPad、MacでMKVファイルを再生するにはどうすればいいですか?
- FoxDLはどの動画・音声フォーマットに対応していますか?
- デュアルオーディオのファイルで音声トラックを切り替えられますか?
- FoxDLはピクチャー・イン・ピクチャーとバックグラウンド再生に対応していますか?