toolsmith

アップロードなし · すべてブラウザ内で処理

コーデックとは何か — MP4とはどう違うのか

動画ファイルで分かりにくいことは、ほぼすべて一つの区別から来ています。拡張子は箱の名前であって、中身の名前ではありません。この二つを切り離せば、残りの多くは謎ではなくなります。

更新

箱と中身

コンテナ(MP4・MOV・WebM・MKV)は、ファイルの中身がどう配置されているかを決めます。映像の流れがどこにあり、音がどこにあり、二つが時間的にどう噛み合い、索引がどこにあるか。

コーデック(映像側はH.264・HEVC・VP9・AV1、音側はAAC・Opus・MP3)は、その中身がそもそもどう圧縮されたかです。

ですから `.mp4` は箱の形だけを教え、中に入っているものはほとんど教えません。同じく `.mp4` で終わる二つのファイルがまったく別のコーデックを収めていることがあり、片方が問題なく開く機器でもう片方が開かないことがあります。

だから、ある変換はただで、ある変換はそうではありません

MOV → MP4 はほぼただです。両者は同じ形式の系列で、MOVの中の映像はたいてい既にH.264 — MP4がそのまま受け取るコーデックです。ですから圧縮されたデータをそのまま移し、その周りに新しい索引を書くだけ。デコードも再圧縮もありません。無劣化でほぼ即座に終わります。これをリマックスと呼びます。

MP4 → WebM は正反対です。WebMはH.264を受け付けないので、すべてのフレームをデコードしてVP9で圧縮し直し、音もOpusで圧縮し直す必要があります。実時間がかかり、画質が一世代下がります。

この二つは「変換」という言葉以外に共通点がありません。当サイトの変換ツールが押す前にどちらなのかを伝える理由です。

コーデックなしでできることが意外に多くあります

たとえば切り出しは、既に圧縮された標本のどれを残すか選ぶだけの作業です。デコードがないので画質はビット単位で同じで、ほぼ即座に終わります。

代償が一つあり、それは圧縮の仕組みからそのまま出てきます。開始点はキーフレームにしか置けません。キーフレームは単独で描けるフレームで、その間のフレームは前のフレームとの差として書かれています。その鎖の途中で切ると、最初の数秒は参照先がなく壊れて出てきます。

そこで指定された地点の手前にある最も近いキーフレームまで引き戻し、実際にどこで切れるかを見せます。正確にそのフレームで切るには先頭を再エンコードする必要があり、画質が落ちます — どちらを取るかは黙って差し替えるのではなく、使う人の選択であるべきです。

音をM4Aで取り出すのも同じ手口です。圧縮されたAACのデータに触れずに新しい箱へ持ち上げます。

対応可否は拡張子ではなくコーデック単位です

ある機器がMP4を再生できないと言うとき、問題がコンテナであることはまずありません。たいていは中のコーデックが非対応という意味です。`.mp4` の中のHEVCが最もよくある例で、新しいスマートフォンがそれで撮り、古いソフトがそれを拒みます。

名前を変えても何も起きない理由も同じです。`.mov` を `.mp4` に直すのは箱に貼った札を変えるだけで、箱も中身もそのままです。

私たちの限界もここから来ます

当サイトのデマルチプレクサはMP4・MOV・M4Vが属するISOBMFF系列を読みます。WebMが載っているMatroskaを開くコードはありません。ですから「WebM → MP4」は一覧にありません — 既にやっていることの逆に聞こえますが、載せれば持っていない能力を持っていると言うことになります。

エンコードは私たちではなくブラウザの仕事です。何をエンコードできるかは機械と基本ソフトによって違います。ですから品書きを並べて途中で失敗する代わりに、ブラウザに直接尋ね、できると答えたものだけを出します。

アップロードせずに、いま試す

.mp4なのにこの機器で再生できません。

たいていはコンテナではなく中のコーデックが原因です。MP4の中のHEVCがよくある例で、新しいスマートフォンがそれで撮り、古い再生機がデコードできません。H.264に再エンコードすれば直りますが、名前を変えても直りません。

拡張子を変えれば変換になりますか。

なりません。拡張子は札であって形式ではありません。名前を変えると再生機が本来なら飛ばすファイルを開こうとすることはありますが、中のバイトはそのままなので、本当に読めなければ失敗します。

MOVをMP4にすると画質は落ちますか。

中の映像が既にH.264なら落ちません。たいていはそうです。圧縮されたデータに触れずに新しい箱へ移すので、同じ絵が別の箱に入って出てきます。

読んでおくと役に立つ記事