GoProの壊れたMP4データを復旧する

FPVドローンレーサーにGoProを装着して撮影をしている人は、クラッシュなどにより予期せぬGoProの電源オフを経験したことがあるかと思います

その場合は、撮影データは破損してしまい再生できない状態になってしまっているかと思います

何故ならMP4のヘッダデータは撮影が終わってから書き出されるため記録途中に中断してしまうとヘッダデータが破損しているからです

何度かこの作業を行う必要があったため、備忘録を兼ねて復旧方法を紹介します

いくつか方法があるようですが、自分が試した中で一番簡単だった方法はrecover_mp4というコマンドとffmpegを使う方法です

recover_mp4

ffmpeg

recover_mp4はWindows用のコマンドのため、Windowsマシンが必要になります

ffmpegはWindowsもMacも対応しているのでどちらでも大丈夫です。私は既にMacにffmpegをインストールしているので、ffmpegの処理はMacで行なっています

まず、記録データの解析をします。これには、破損していない記録データが必要です。再生できる適当なファイルで問題ないです。もちろん、同じ録画機器(私の場合はGoPro)のファイルを使います


recover_mp4.exe in_good_similar.mp4 --analyze

正しく実行されれば、次に実行するべきコマンド2つが出力されますので、その通り行います。これらのコマンドはサンプルなのか?実際に解析した結果による最適化されたコマンドなのかは明らかではないですが、とりあえず出力された通りに実行するとファイルが復旧されました

まずは再度recover_mp4


recover_mp4.exe corrupted_file result.h264 result.aac --ambarella

最後にffmpeg


ffmpeg -r 60000/1001 -i result.h264 -i result.aac -bsf:a aac_adtstoasc -c:v copy -c:a copy result.mp4

これで再生可能な result.mp4 が出来上がります

ただ最後数秒は失われるようなので、肝心なクラッシュ時の映像はサルベージできないようです。これはおそらくそもそも記録媒体に無いデータですよね?GoProが録画データをある間隔で記録媒体に移していると思うので

それではサルベージしたクラッシュログをお楽しみください

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です