破損したMP4の修復 recover_mp4

AGDRec で画面録画したまま休止かスリープに入ったのか
記録中のMP4が尻切れトンボになった影響でしょう
再生出来ない。。。

修復なり処理するなりのオプションも見当たらないので、自前で修復してみる事に。
真空波動研は固まり、VLCの変換もダメ。
昔から使ってる ffmpeg の -vcodec mpeg4 もダメ
記録途中で打ち切られ再生出来なくなったMP4の状態がよく分からない。

recover_mp4.exe を使ってみた。

再生できないダメな子と、同じ条件で撮影した再生できる子を用意する。(ファイル名は適時変更してね

recover_mp4.exe OK.mp4 --analyze

分析後の末尾に以下の表記
*****************************************************************************************
Now run the following command to start recovering:
recover_mp4.exe corrupted_file result.h264 result.aac –ext

Then use ffmpeg to mux the final file:
ffmpeg.exe -r 30000/1001 -i result.h264 -i result.aac -bsf:a aac_adtstoasc -c:v
copy -c:a copy result.mp4
*****************************************************************************************
英語なんてよく分からないけど手順が示されてる様子。
示された通り result.h264 と result.aac を生成してみる

recover_mp4.exe NG.mp4 result.h264 result.aac --ext

ドババババーとなって result.h264 と result.aac が吐き出された。
そこそこのファイルサイズなので正常っぽい。
これで破損ファイルを修復できるようなので指示通りに通してみる
今度は ffmpeg で

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

result.mp4 が出来上がってくるはずなのに。。。素通りしてしまう。
ファイルサイズ 0KB なので開くまでもなく。。。

なので音声は無しでやってみる

ffmpeg.exe -r 30000/1001 -i result.h264 result.mp4

どうやら処理が進み、まともな result.mp4 が生成されたっぽい
ここらへんの判断はファイルサイズを見て一喜一憂してる。

けど再生できない。。。(後に別ファイルで試行したモノは再生できました)
生成された result.mp4 はゴミだ

んーーー
result.h264 こいつさえ再生できれば良さそうなのに。。。
いま一度、result.h264 を昔ながらのffmpeg変換に通す

ffmpeg -y -i “%~1” -vcodec mpeg4

オプションは好き好きで
640MBのMP4が1GB超えになったけど無事再生されました。

参考
https://shimesan.com/2018/09/22/how-to-repair-mp4-movie-free/