FixMyVideos

#「入力処理中に無効なデータが見つかりました」— FFmpegビデオエラー

これは、FFmpegの最も役に立たないエラーメッセージの1つです。また、最も一般的なものの1つでもあります。メッセージは、FFmpegがファイルを回復できないと判断したかのように読めますが、根本的な意味はより具体的です。FFmpegのパーサーは、予想していたファイル形式と調整できない一連のバイトに遭遇しました。

これは、6つの異なる意味を持つ可能性があります。そのほとんどは回復可能です。

FFmpegが実際に伝えていること

FFmpegはファイルを段階的に解析します。まず、コンテナ(MP4、MOV、MKV、AVIなど)を識別します。次に、コンテナのインデックスを読み取ってストリームを見つけます。次に、個々のストリームパケットを解析します。「入力の処理中に無効なデータが見つかりました」とは、そのパイプラインのどこかで解析ステップが失敗したことを意味します。エラーは、どのステップであるかを示しません。

一般的な根本的な原因:

  1. コンテナヘッダーは正常ですが、コーデックヘッダーが破損しています。 FFmpegはそれがMP4であることを認識しています。MOOVを読み取ります。H.264ストリームパケットの読み取りを開始しようとすると、H.264 NAL構文と一致しないバイトが見つかります。コーデックパラメータセットが破損しています。
  2. コンテナのタイプが間違っています。 実際には内部がMKVの「.mov」ファイル、または実際には破損したMP4の「.avi」。FFmpegは拡張子(またはヘッダースニッフィング)でパーサーを選択し、間違ったパーサーを取得します。
  3. ファイルはフレームの途中で切り捨てられています。 FFmpegは切り捨てポイントまで正常に読み取り、フレームの中央でEOFに達し、次のデコード不可能なバイトを無効として報告します。
  4. **MOOVアトムが完全に欠落しています。**あまり一般的ではありません— FFmpegは通常、「moov atom not found」と具体的に返します。しかし、特定の不正な形式のコンテナでは、FFmpegは一般的な無効データメッセージにフォールバックします。
  5. コーデックストリームのビットフリップ。 'mdat'内の少数のバイトが変更されました(ファイルシステムエラー、不良セクター)。FFmpegのデコーダーは不正なパケットを検出し、処理を中止します。

どれに該当するかを判断する方法

詳細なログを使用してFFmpegを実行します。

ffmpeg -v debug -i broken.mp4 -f null -

通常、冗長出力には、一般的な無効データエラーの前により具体的なメッセージが表示されます。次のメッセージを探してください。

  • "moov atom not found" → MOOVページを参照してください。 -「invalid NAL unit size」→ H.264/H.265のコーデックヘッダーの損傷。 -「Truncated stream」→ ファイルがフレームの途中で切断されています。 -「no audio stream」→オーディオメタデータが破損しています。ビデオはまだ救済可能かもしれません。
  • 'stco'や'stsz'などの特定のアトム名 → MOOVは存在しますが、不正な形式です。

詳細モードで解決しない場合は、「ffprobe」を試してみてください。

ffprobe -v error -show_format -show_streams broken.mp4

'ffprobe'がストリームに関する有用な情報を返す場合、ファイルはFFmpegエラーが示唆するよりも良好な状態です。

自分で試せること

再エンコードなしの再マルチプレクシング

ffmpeg -err_detect ignore_err -i broken.mp4 -c copy out.mp4

'-err_detect ignore_err' フラグは、FFmpegに、中止するのではなく、過去のマイナーなストリームエラーをスキップするように指示します。厳密な解析に失敗した場合でも、再生可能な出力を生成することがよくあります。構造的な問題は修正されません (MOOVの欠落、コンテナタイプの誤り) が、多くの「ビットフリップ」のケースを解決します。

別のコンテナを試す

ffmpeg -i broken.mp4 -c copy out.mkv

MKVはMP4よりも寛容なコンテナです。コーデックデータが損なわれていない場合、MKVへの再マルチプレクシングにより、多くの場合、どこでも再生できるファイルが生成されます。

MOOVが欠落している場合の「untrunc」

詳細ログに「moov atom not found」と表示されている場合は、MOOVリカバリガイドに従ってください

別のプレーヤー

VLC、IINA、mpvはすべて、内部でFFmpegを使用していますが、デコードの厳密さの設定は異なります。「ffmpeg -i」でエラーになるファイルがVLCで正常に再生されることがあります。つまり、VLCの正常な再生からトランスコードすることができます。

当社のリカバリによる「無効なデータ」ケースの処理方法

アップロード時の診断は、これらのファイルにとって最も重要なステップです。当社のパイプラインは次のように実行されます。

  • FFmpegのみに依存しない6パス診断 — FFmpeg、MediaInfo、および独自のバイトレベルヘッダープローブを並行して実行し、結果を調整します。
  • 宣言されたファイル形式に依存しないコンテナスキャン。アトムは拡張子ではなく、シグネチャによって検出されます。
  • フレームレベルのコーデック検出は、コーデックヘッダーが損傷している場合でも機能します。最初の完全なフレームからパラメーターを再導出します。
  • ファイルがフレームの途中で終了する場合、安全なテールトリムによる切り捨て処理

実際には、「入力の処理中に無効なデータが見つかりました」は、当社が目にする大部分のファイルで回復可能なケースになります。対応できないケース:コーデックデータ内部の破損(圧縮フレーム内のビットフリップ)で、影響を受ける範囲が大きい場合。

あなたが行うこと

  1. ファイルをアップロード。最大50GB。
  2. 約1分後、診断結果と、該当する場合は無料の5秒間のプレビューが表示されます。診断では、根本的な原因が何であるかがわかります。
  3. 復元が可能な場合は、プレビューを行い、復元が成功した場合にのみお支払いの上、ダウンロードしてください。そうでなければ、数分と0ドルの費用で済みます。

FAQ

[特定のカメラ]からのファイルでFFmpegがこのエラーを出しました。カメラは重要ですか? エラーパターンよりも重要ではありません。詳細ログから何が問題なのかがわかります。そこからの回復パスは、カメラに関係なく同じです。特定のカメラのページを参照してください:Sony A7S IIICanon R5GoPro Hero 12DJI Mavic 3Atomos Ninja

自分でFFmpegでファイルを変換しようとした後にエラーが発生しました。 重要な質問:元のファイルはまだありますか?ある場合は、そのファイルを使用してください。FFmpeg出力のみの場合(失敗した変換で不完全に書き込まれている可能性があります)、元のファイルが回復可能なファイルです。

エラーは、最初の20秒間再生されたファイルの途中で表示されます。 ファイル中間の構造的な問題。不良セクションをトリミングすることで回復できる場合もあれば、無傷のヘッドのみを回復する場合もあります。アップロード時の診断でわかります。

私のファイルは厳密には「.mp4」ですが、カメラはMOVのようなデータを書き込んでいます。 これは実際にあるカテゴリです。診断は拡張子ではなくコンテンツによってコンテナを識別するため、不一致を識別します。

復元中、私の映像は安全ですか? フランスにあるサーバーで、48時間後に自動削除され、トレーニングや共有には一切使用されません。プライバシーポリシー

関連項目

ファイルをアップロード →

無料プレビュー · 義務はありません

動画を復元する準備はできましたか?

ファイルをアップロードしてください。約1分で5秒間の無料プレビューをご覧いただけます。プレビューが正しいと思える場合にのみお支払いください。

動画をアップロード →