"Invalid data found when processing input"

これは、ffmpegがファイルを開けたものの、その構造を理解できなかったことを伝えています。十中八九、動画そのものはまだそこにあります。失敗したのは、パーサーが最初に読み込む地図(マップ)であって、その地図を作り直すのに映像をアップロードする必要はありません。

ファイルがデバイスから出ることはありません — 修復はブラウザ内で実行されます。アップロードは 0 バイトです。

Your data is the big block — usually intact. What breaks is the small index. Repair rebuilds it.

Drop a file here or browseTap to choose a file

ZIP · Office · PDF · video · JPG · PNG · RAR/7z · SQLite — repaired right here in your browser. Nothing is uploaded

0 bytes uploadedFree: 3 repairs/day — up to 500 MB video, 100 MB docs & archives, 50 MB photos. Free download. Single repair €5.90. No account required.

今すぐ修復

  1. ファイルをドロップ
  2. 修復はローカルで実行
  3. 結果をダウンロード

ほぼすべての動画プレーヤーやコンバーターはffmpegを土台にしているため、そのエラーはいたるところで顔を出します。多くの場合、「[mov,mp4,m4a,3gp,3g2,mj2 @ ...] moov atom not found」に続いて「Invalid data found when processing input」と表示されます。このメッセージは意図的に汎用的です。内部的には AVERROR_INVALIDDATA であり、デマルチプレクサ(demuxer)が、期待していた形式に合わないバイト列に行き当たったことを意味します。上のエリアにファイルをドロップすれば、ツールはブラウザ内でコンテナの構造を読み取り、動画ストリームが生き残っているかを見きわめ、プレーヤーが開けるきれいなファイルを再構築します。クリップがデバイスから出ていくことは一切ありません。

映像は無事なのにパーサーがファイルを拒む理由

MP4やMOVのファイルは、ボックス(アトムとも呼ばれます)のツリーです。各ボックスは4バイトのサイズと4バイトのタイプで始まります。ftyp はブランドを宣言し、mdat は生の音声・映像サンプルを保持し、moov はインデックス、すなわちどのフレームがどこにあり、どのコーデックでデコードされ、どのタイムスタンプで再生されるかを示すサンプルテーブルです。ffmpegはファイルを開くと、このツリーをたどります。整合の取れた moov が見つからない、あるボックスがファイルの末尾をはみ出すサイズを宣言している、あるいはボックスヘッダーがあるはずの場所のバイトがゴミである、といった場合、ffmpegは処理を止めて「Invalid data found when processing input」と報告します。

そして肝心なのは、重いデータ、つまりあなたの実際の映像が入った mdat は、これが起きているあいだも完全に無事でありうる、ということです。パーサーが失敗しているのはインデックスであって、映像そのものではありません。だからこそ、「有効なデータがない」とされる同じファイルが、正しく記述してくれるコンテナを待つ、状態のよいフレームで満たされていることがあるのです。これは古典的な 「moov atom not found」 のケースと大きく重なります。カメラが moov を書き込む前に中断された録画は、まさにこの特徴を残します。

もう一度再生できるようにコンテナを再構築する

サンプルは生き残ったのに地図が壊れている場合、直し方はリマックス(remux)です。生き残ったストリームデータを走査し、コンテナが必要とするサンプルテーブルを再構築し、同じ映像の周囲に、きちんと整った新しいMP4を書き出します。再エンコードは行われないため、画質の劣化はありません。フレームは元のフレームのままで、ただ正しくインデックスし直されるだけです。moov がまるごと欠けている場合は、メディアストリームの構造からツールがそれを再構築し、プレーヤーが探していたフレームの地図を用意します。

もう一つのよくある引き金は、拡張子の不一致転送の中断です。.mp4 という名前なのに実際には別のコンテナとして保存されたファイルや、ダウンロードが途中で止まったクリップは、いずれもffmpegを予期しないバイトでつまずかせます。ツールは、ファイルが本当は何であるかを名前ではなくボックスのシグネチャ(署名)で確かめ、届いた分を救出します。これらはすべてブラウザ内で実行されます。ffmpegのインストールも、コマンドラインも不要で、いかなるサーバーも動画を受け取ることはありません。

本当に直せないとき

コンテナの再構築は、問題がコンテナにあるときにだけ効きます。その下にあるメディアデータそのものが破壊されたり上書きされたりしている場合、たとえばゼロを返したカード、故障しかけたドライブに壊されたファイル、カメラが上から録り直してしまった録画などでは、インデックスし直す良好なフレームがなく、ディスク上にない映像を再構築できるツールは存在しません。まずストレージから生のバイトを復旧し、そのうえで修復してください。

正直に言えば、もう一つの見込みのないケースは、実は動画ではないファイルです。ドキュメント、画像、あるいはたまたま .mp4 の拡張子を持っている切り詰められた断片などです。そこでは「Invalid data」は文字どおり本当のことで、メディアではないファイルを、どんなリマックスでも再生できるクリップに変えることはできません。とはいえ、映像が実際に存在するときには、ブラウザ内だけで完結する方式は、証拠映像、個人的な動画、未公開の作品といった機微な録画を、どこにもコピーせずに修復できることを意味します。「Network」タブ(ネットワークタブ)を開けば、クリップのバイトが0しか送信されていないことを確認できます。

修復できるものとできないもの

修復できる

  • moovインデックスが欠けているか壊れている一方で、mdatの映像は生き残っているMP4/MOVファイル
  • カメラがコンテナを最終処理する前に中断された録画(「moov atom not found」と重なります)
  • デマルチプレクサを止めてしまう、壊れたサンプルテーブル、誤ったオフセット、不正なタイムスタンプ
  • 拡張子が一致しないクリップで、本当のコンテナをツールがシグネチャで検出できるもの
  • 中断されたダウンロードや転送のうち、実際に届いた部分

修復できない

  • メディアデータそのものが上書きされたか、ゼロとして返されたファイル。インデックスし直すフレームがありません
  • 動画の拡張子をまとった、メディアではないファイル(ドキュメント、画像、断片)
  • 故障したドライブやカードによって物理的に失われた映像(まず生のバイトを復旧してから修復してください)
  • 鍵のない、暗号化またはDRM保護されたストリーム

修復が失敗した場合、その理由(データの欠落か構造の破損か)をお伝えします。失敗した修復に料金が請求されることはありません。

よくある質問

「Invalid data found when processing input」は、私の動画が失われたという意味ですか?

たいていは違います。これは汎用的なパーサーのエラーで、ffmpegがファイルの構造を読めなかったことを意味します。最も多いのは、壊れたか欠けた moov インデックスです。mdat にある実際の映像はしばしば無事で、その周囲にコンテナを再構築すればまた再生できます。

これは「moov atom not found」とどう違うのですか?

同じ問題を二つの角度から見たものです。「moov atom not found」は、欠けている具体的なインデックスを名指しします。「Invalid data found when processing input」は、ffmpegがコンテナを解析できないときに報告する、より広い失敗であり、その正体はごく多くの場合、同じく欠けているか壊れた moov です。

ファイルを再構築すると再圧縮されて画質が落ちますか?

いいえ。この修復は再エンコードではなくリマックスします。インデックスを再構築し、元のフレームの周囲にきれいなコンテナを書き出します。映像と音声のサンプルは、あなたが録画したものとバイト単位で同一で、何も再圧縮されません。

映像は機微なものです。修復のためにアップロードされますか?

いいえ。ファイルはディスクから読み込まれ、ブラウザのタブ内で再構築されます。何も送信されません。「Network」タブ(ネットワークタブ)で0バイトしか出ていかないことを確認できます。証拠映像、個人的な録画、見知らぬサーバーには渡したくないものにこそ欲しい性質です。

関連: MP4を修復する · "moov atom not found" · 動画を修復する(あらゆる形式) · アップロードゼロの約束を検証する