VLCや他のプレーヤーがクラッシュしないように、ffmpegで不良ファイルとストリームを修正します


17

破損したビデオファイルで終わることが何度もありました。

  • 公式のソースからダウンロードされたがトレント付きのビデオ。何らかの理由で、すべてのピースが.mkv、.ts、または.mp4にあるわけではありません
  • 特定の時点でデータが欠落している.ts形式のレコード
  • 破損したセクターのある古いハードドライブからビデオをコピーしました

このビデオをVLCまたは他のプレーヤーで再生すると、特定のポイントまで再生し、すぐに終了します。悪い部分をスキップしようとすることもありますが、別の不良セクターに出会って再び終了することができます。

質問:

この問題(ストリームとキーフレームに関連すると思われます)をffmpegで、おそらく-cコピー形式で修正できるので、すべてを再圧縮する必要はありませんか?

私が達成したいのは、不足している部分がスキップされる完全な長さのビデオです。ビデオがクラッシュするよりもグリッチが好きです。


回答:


26

ファイルの一部が物理的に不良なセクターにある場合、または何らかの理由でOSがファイル全体をFFmpegに提供できない場合、当然FFmpegはそれについて何もできません。これらの部分を無視し、救助可能な部分をddrescueなどの新しいファイルに書き込むことができるユーティリティを入手する必要があります。

ここで、ファイルプロトコルがエラーの原因でない場合は、試すことができます

ffmpeg -err_detect ignore_err -i video.mkv -c copy video_fixed.mkv

1
これは機能しますが、なしでは失敗します-c copy。再コーディング中に機能しないことは驚くべきことです。
直観

それにもかかわらず、私はまだ得ていますInvalid data found when processing input-そして、ffmpegはあきらめます。
ミハイルT.

良い解決策...(MP4ファイル上の)moovアトムがまだどこかに存在する場合。そこにない場合はどうなりますか?
グウィネスLlewelyn

それは私の最後に驚くほどの良さで動作します:)
1

5

より良い答えを探す場合、考えられる方法は次のとおりです。

ffmpeg -i video.mkv -c copy video_fixed.mkv

しかし、結果をさらに良くすることができる追加のオプションがあると確信しています。


1
メタデータ、タイムスタンプ、またはコンテナ情報に何らかの問題があるたびに私のために動作します。そして、それは非常に速く、通常は400倍の再生速度よりも高速です。
user24601

率直に言って、このコマンドは私の尻を救った。
-neverMind9
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.