本文へスキップ
Convertube

MP4 ファイルとは:中に何が入っていて、何に変換すべきか

MP4 の実際の中身、同じ拡張子にまったく異なるコーデックが入る理由、どの変換がロスレスなのかを解説。MP4 はブラウザ内で変換でき、アップロード不要です。

概要

種類
動画
コンテナ形式
あり
拡張子
.mp4
MIME タイプ
video/mp4
主なコーデック
h264, h265, av1, aac
別名
MPEG-4 Part 14

MP4 はコーデックではなくコンテナです。この形式についてわかりにくいことのほとんどは、この 1 つの事実から生じています。ファイルは入れ子になったボックス(仕様ではボックス、古いツールではアトムと呼びます)の木構造で、ISO/IEC 14496-14 で定義されています。これ自体は、Apple が QuickTime から提供した ISO Base Media File Format のプロファイルです。実際に重要なボックスは 2 つあります。すべてのトラックを記述する索引である moov と、実際の圧縮済みフレームが詰まった中身の見えない塊である mdat です。

続きを読む

コンテナはトラックを記述するだけなので、2 つのファイルがどちらも正しい MP4 でありながら、それ以外に何の共通点もないことがあります。ある MP4 には H.264 の映像と AAC の音声が、次のものには H.265 が、その次には AV1 が入っているかもしれません。1 つ目を扱えるプレーヤーが 3 つ目では失敗しても、拡張子は同じ .mp4、MIME タイプも同じ video/mp4 です。「MP4 はここで使えるか」に一般的な答えがないのはそのためで、MP4 と MOV や MKV の間の変換がたいてい一瞬で終わるのに、WebM への変換はそうならないのもそのためです。前者は詰め直しの作業ですが、後者はすべてのフレームの再エンコードが必要です。

moov の索引は、このサイトが書き出すすべての MP4 に適用している -movflags +faststart の理由でもあります。トラックの長さはエンコードが終わるまでわからないので、エンコーダーは普通 moov をファイルの末尾に置きます。すると HTTP でストリーミングするプレーヤーは、最後のバイトが届くまで再生を始められません。faststart は索引を先頭に置いてファイルを書き直すもので、書き出し時に 1 回余分な処理がかかる代わりに、すぐに再生が始まるようになります。

名前は規則ではなく慣習です。.m4a は音声だけを格納した MP4 ファイル、.m4v は Apple の動画用の派生形、.mp4 は一般的な場合で、3 つとも同じコンテナです。名前を変えても変換にはなりません。近道にもなりません。ここで音声を M4A として抽出すると、既存の AAC トラックをそのまま移すのではなく再エンコードするので、同じコーデックの系統ではあるものの、MP3 とまったく同じく 2 世代目の非可逆圧縮になります。

MP4 を他の形式に変換

他の形式を MP4 に変換

MP4:よくある質問

MP4 は非可逆ですか?ロスレスですか?

どちらでもありません。コンテナ自体はそれを決めず、中のトラックが決めます。実際には、MP4 はほぼ常に非可逆の H.264 か H.265 の映像と非可逆の AAC の音声を格納しているので、お手元のファイルもほぼ確実に非可逆です。ただしそれはコーデックの性質であって、MP4 そのものの性質ではありません。

なぜ一部の機器で MP4 が再生できないのですか?

拡張子はプレーヤーにコーデックについて何も伝えないからです。H.265 や AV1 の映像を使ったファイルは、H.264 しかデコードできないハードウェアでは開けません。どちらのファイルも正当な MP4 であってもです。H.264 の映像と AAC の音声の MP4 に変換するのが最も互換性の高い選択肢で、このサイトが作るのもそれです。

どの MP4 変換がロスレスですか?

中のコーデックが変換先のコンテナでもそのまま使える場合の、MP4 から MOV、MKV、M4V への変換です。これらはストリームのコピーとして実行されます。圧縮済みのフレームは手を加えずに移され、映像はビット単位で同一になります。その場合は「再エンコードせずにコピー(画質の劣化なし)」という表示が出ます。MP4 から WebM や MP3 のように、コーデックが変わる変換は必ず再エンコードになります。

MP4、M4A、M4V の違いは何ですか?

同じコンテナで、慣習的な中身が違うだけです。M4A は音声のみ、M4V は Apple の動画用の派生形、MP4 は一般的な場合です。拡張子を変えてもバイトは変わらないので、何も変換されません。ただし、プレーヤーが正しく判断できなくなることはあります。

このサイトではどのくらいの大きさの MP4 まで扱えますか?

何に変換するかによります。上限は入力の大きさではなく、処理中に保持しなければならないものの大きさで決まるからです。音声の抽出では、出力が元のファイルのごく一部なので、パソコンで 2 GB まで扱えます。コンテナの入れ替えでは、出力が入力と同じ大きさになるので約 667 MB まで。スマートフォンでは、どの変換でも 512 MB が上限です。64 MB を超えるファイルは、変換エンジンが作業するメモリにコピーせず、その場で読み込みます。数 GB の入力を扱えるのはそのためです。各アップロード欄には、その組み合わせでの実際の上限が表示されています。

ここで MP4 を変換すると動画はアップロードされますか?

されません。分離もエンコードも、WebAssembly 版の ffmpeg によって、お使いのブラウザのバックグラウンドスレッドで実行されます。始める前にネットワークパネルを開いてみてください。ファイルを運ぶ通信は 1 つもありません。

なぜ MP4 から WebM への変換は、MP4 から MKV よりずっと遅いのですか?

MKV は H.264 を受け付けるので、映像トラックはコピーされ、処理は実質的にファイルの書き直しで済みます。WebM は H.264 も AAC も受け付けないので、すべてのフレームをデコードして VP8 か VP9 に再エンコードする必要があります。これは本物の圧縮作業で、お使いの CPU で行われます。

MP4 から静止画を取り出せますか?

はい。ただし、何が得られるのかは知っておく価値があります。デコードした 1 フレームを PNG か JPG として再エンコードしたものです。元のフレームがすでに非可逆なので、その PNG がロスレスなのはそのフレームに対してだけで、元の光景に対してではありません。