M4V ファイル形式
Apple の MPEG-4 動画バリアント。多くは DRM 付きの iTunes 動画です。
- MIME タイプ
- video/x-m4v
- 拡張子
- .m4v
- カテゴリ
- 動画
マジックナンバー(ファイル署名)
| 0x00000004 | 66747970 | ftyp | ISO-BMFF 'ftyp' box |
| 0x00000008 | 4D345620 | M4V | brand 'M4V ' |
M4V 形式について
M4V は、iTunes Store が配っていた形の MP4 です。コンテナは ISO base media file format、ボックスも同じボックス、映像は通常 H.264 で音声は AAC。素の .mp4 との構造上の違いは、FileTypeBox のブランド文字列と、購入コンテンツの場合はサンプル記述の中にある FairPlay の暗号化レイヤーだけです。Apple が拡張子を分けたのは、自社ソフトウェアがファイルを iTunes へ振り分けられるようにするためと、保護されたメディアとされていないメディアを一目で見分けられるようにするためでした。意味はそれだけです。保護されていない M4V は .mp4 にリネームすれば何でも再生でき、保護されたものは名前が何であれどこでも再生できません。ラベルが付いているのではなく、映像のバイトそのものが暗号化されているからです。
ヘッダーの構造(バイト単位)
| オフセット | 長さ | フィールド | 意味 |
|---|---|---|---|
| 0 | 4 | ftyp box size | FileTypeBox の長さをビッグエンディアンで表したもので、このフィールドを含みます。00 00 00 20 は 32 バイトで、メジャーブランド、マイナーバージョン、互換ブランド 3 つが収まる大きさです。Apple の書き手も ffmpeg も、この形を出力します。 |
| 4 | 4 | Box type 'ftyp' | 66 74 79 70。ISO/IEC 14496-12 がファイル先頭のボックスであることを要求しているため、ヘッダで唯一読める ASCII がオフセット 0 ではなくオフセット 4 に来ます。 |
| 8 | 4 | Major brand 'M4V ' | 4D 34 56 20。大文字 M、数字 4、大文字 V、そしてブランドの一部である ASCII スペースが 1 つ。同じ系列の音声専用の兄弟はこの同じ位置に M4A や M4B を置き、いずれも同じやり方で 4 文字に埋められています。 |
| 12 | 4 | Minor version | 規範的な意味を持たないビッグエンディアンの 32 ビット数値で、ffmpeg で remux したファイルには 00 00 02 00 が入ります。バージョンによる可否判定の材料ではなく、これを根拠にファイルを拒否してはいけません。 |
| 16 | variable | Compatible brands | ボックスの残りを 1 ブランド 4 バイトで埋めます。よくあるのは M4V を繰り返したあとに isom、iso2、avc1 が続く形です。ここに isom があるということは、素の MP4 リーダーで扱えるとファイル自身が明言しているに等しく、リネームがしばしば通用するのはそのためです。 |
| 32 | 8 | Second box header | ftyp の後ろのボックスのサイズと型で、moov・mdat・あるいはプレースホルダの free です。ftyp が 32 バイトのときに 32 に来ます。位置を信用せず、オフセット 0 から長さを読んでください。 |
似た形式との見分け方
| 紛らわしい形式 | 見分け方 |
|---|---|
| MP4 | 違うのはオフセット 8 の 4 バイトだけで、M4V か isom・mp42・avc1 かです。他は何ひとつ変える必要がなく、オフセット 16 の互換ブランド一覧にはたいてい isom が入っています。手元の M4V が本当に再生できるかを知りたいなら、ヘッダは教えてくれません。サンプル記述の中に sinf 保護ボックスがないか探してください。FairPlay のコンテンツは、コーデックのエントリを保護付きのものに置き換えます。 |
| M4A | 同じ系列の音声専用メンバーで、オフセット 8 のブランドが M4A、4D 34 41 20 です。バイト配置は他が同一なので、ヘッダだけでは映像が無いことの証明にはなりません。決定的な答えは各トラックの hdlr ボックスにあるハンドラ型で、映像なら vide、音声なら soun です。カバー画像入りの .m4a でも、トラックは音声のみです。 |
| QuickTime Movie | オフセット 8 のブランドが qt です。どちらも Apple のもので、どちらも ISO base media ファイルで、どちらも H.264 と AAC を日常的に運ぶので、人は 2 つの拡張子の間でファイルを気軽に移動させます。効いてくる違いは中身です。QuickTime は、M4V を受け取る側がまったく想定していないコーデックやトラック型を許します。 |
| 3GP | オフセット 8 のブランドが 3gp4・3gp5・3gp6 です。どちらも同じコンテナを特定の機器向けに絞ったプロファイルで、片方は携帯端末、もう片方は Apple のプレイヤー向けです。一般的なケースではどちらも H.264 と AAC を持ちます。拡張子が記録しているのは想定された届け先であって、構造上の違いではありません。 |
よくある壊れ方
- DRM を破損と取り違えるケース。購入した FairPlay 保護付きの M4V は、ヘッダも完全に無傷でボックスツリーもきれいに歩けるのに、認証された Apple のデバイス以外では再生を拒みます。修復すべきものは何もありません。サンプルデータが暗号化されているだけで、hex エディタで見れば、H.264 のスタートコードがあるはずの場所に高エントロピーのバイトが並んでいて確認できます。
- moov ボックスが書かれなかったケース。途中で中断した書き出しやダウンロードは、mdat が埋まったまま索引の無いファイルを残し、どこでも開けません。他の ISO base media ファイルと同じく、フレームは残っているので、同じエンコーダが作った健全なファイルからサンプルテーブルを組み直せば復旧できます。
- remux でブランドが書き換わったケース。FileTypeBox を保持しないままストリームをコピーするツールに M4V を通すと、オフセット 8 のバイトが isom に変わります。映像には手が付いていないので再生は問題ありませんが、iTunes をはじめブランドで振り分けるものは、これを別種のファイルとして扱います。
- 途中切れ。ヘッダは最先端にあって健全なままなので、中身の大半が欠けたファイルでもファイル形式判定は M4V と正しく報告します。露見するのはボックスを歩いたときで、最後のボックスが実際のファイルより多くのバイトを申告しています。
- 遅い回線で moov が末尾にある場合。破損ではありませんが、見ている側には区別がつきません。索引が末尾にあるので、最後の 1 バイトが届くまで何も再生されないからです。前へ移す処理はオフセットを書き換えるだけで、エンコードされた映像はそのまま残ります。
この形式の現在地
M4V に意味があったのは、人が iTunes で映画やテレビ番組を買っていた時代です。同じカタログがダウンロードではなくストリーミングで配られるようになった今、ほぼ歴史的な遺物です。それでもファイルは出てきます。古い iTunes ライブラリ、Apple のソフトウェアから書き出したホームビデオ、惰性でこの拡張子を吐く HandBrake のプリセットなど。新規に選ぶ理由はどこにもありません。MP4 なら同じコンテナで曖昧さがなく、プレイヤーもブラウザも素の拡張子のほうを好みます。手元にあるのが M4V なら、実務上の問いは保護されているかどうかだけです。保護されていなければそれは MP4 で、リネーム以外に何も要りません。保護されていれば、どんな変換ツールも助けになりません。足りないのはコーデックではなく鍵であり、そうでないと主張するツールが説明しているのは変換ではなく回避です。
M4V ファイルをこのサイトで開く
どれもブラウザ内で動きます。ファイルが端末から出ることはありません。
関連する形式
M4V と混同しやすい形式です。先頭バイトを見比べてください。
| 形式 | 先頭バイト | 拡張子 |
|---|---|---|
| MP4 | 66 74 79 70 | .mp4 |
| QuickTime Movie | 66 74 79 70 | .mov |
| M4A | 66 74 79 70 | .m4a |