いっしきまさひこBLOG

AI・機械学習関連、Web制作関連、プログラミング関連、旅行記録などなど。一色政彦。

壊れた動画ファイル(moov atom not found)の修復例

録画した動画の保存に失敗して壊れた.mp4ファイルができたのですが、試行錯誤して何とか修復できたので、万が一もう一度起きたときのための備忘録です。Windows 10で修復しました。

他の皆さんでも同様の問題があれば参考になるかもしれません。ただし、同じ手順を実行した場合のいかなる結果も保証しませんのであくまで完全に自己責任で行ってください。

動画の保存に失敗した

わたしの場合、動画の保存中にアプリがフリーズして、中途半端な状態で終わりました。いろいろと調べた結果、コマンドラインツールのFFmpegというツールで壊れた内容を取得できることをつかみました。なお、そのことが分かる前に5個ぐらいいろいろな修復アプリを試しましたが、全部ダメでした...。

FFmpegのダウンロード

FFmpegは聞いたことあるような気がしますが、これを使ったことによる責任は一切おえませんのでご了承ください。Wikipedia「FFmpeg - Wikipedia」にも情報があるので、たぶん安全ではなかろうかと自分は判断しました。

ちなみにわたしの場合、上記のサイトのここからダウンロードしました:

f:id:misshiki:20201015203749p:plain
FFmpegのダウンロード

上記のリンクを開くとGitHubリポジトリ(=ソースコードが置いてある場所)に到達します。どれを選べばよいのかは私には分かりませんでしたが、次の画像に示すものをダウンロードしてみました。

f:id:misshiki:20201015203951p:plain
FFmpegコマンドラインツールを含む.zipファイル

ダウンロードした.zipを展開してbinフォルダー内のffmpeg.exeをコマンドプロンプトで呼び出して使いました。コマンドラインを使うので一般の人には比較的高度な作業になってしまうかもしれません。

FFmpegによる診断

入力したコマンドは、ffmpeg -i <ファイル名>.mp4です。入力前に、cd <フォルダーパス名>で現在のパスを移動しておく必要があります。

f:id:misshiki:20201015204728p:plain
FFmpegコマンドによる情報取得の結果

コマンドを実行した結果、次のように表示されました。

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000017769bb44c0] moov atom not found
rokuga.mp4: Invalid data found when processing input

moov atom not foundというエラーが出た場合、untruncコマンドで修復できるという情報がGoogle検索で何件かヒットしました。同名のエラーであれば、わたしと同じように修復できる可能性があります。

ただしいずれの参考情報もLinuxなどを使っていてWindowsでは難しいなどと書かれていました(それもこの記事をわざわざ書いた理由です)。ちなみにuntruncのソースコードは次のリンク先にあります。

そこで「untrunc windows」で検索したところ、「MP4 Repair Untrunc-w GUI」(以下、untrunc-gui)というツールがヒットしました。

untrunc-guiのダウンロード

  • MP4 Repair 0.9.0 Free Download for Windows

  • CodecPack.Co | Download Audio Video Software」というサイトで開発&配布されています。えー、このサイトってウィルスとか大丈夫なのとは思いましたので、これを使うかどうかは繰り返しになりますが自己責任でお願いします。わたし自身は、Facebookなどの公式ファンページを運用されていたりするし、サイトの作りに歴史を感じるし、真面目なサイトみたいなので大丈夫だろうと判断しましたが、人にお勧めできるほどの自信はありませんので。念のため自分でウイルスチェックなどは行ってください(Window Defenderではチェックして問題なかったです。先ほどのffmepgも)。使い終わったら完全に削除しておくとより安心ですね。

[Untrunc GUI 64-bit]リンクから.zipファイルをダウンロード後、展開してuntrunc-gui.exeをダブルクリックするなどして画面を起動してください。untruncはコマンドラインツールですが、untrunc-guiはWindowアプリ(GUIツール)です。

untrunc-guiによる修復

untrunc-guiの使い方は説明が不要なくらい簡単です。

まず準備として壊れた動画ファイル(reference file)だけでなく、壊れたファイル(truncated file)を作成した録画ツールで適当に録画した正常な動画ファイルを用意します。これは壊れたものと正常を比較しながら修復するためです。

f:id:misshiki:20201015210624p:plain
untrunc-gui

untrunc-guiに2つのファイルパスを入力して[Repair]ボタンを押せば完了です。動画の長さによると思いますが、実行は数分で終わりました。

同一フォルダー内に「_fixed-」という名前の付いたファイルを再生してみてください。わたしの場合は無事に再生できました!(ただし恐らくハングアップしたところまでと思いますが途中で切れていましたが) 同じように試した皆さんがうまくいくことを祈ります。