ホーム > 備忘録:PC・ソフト > 【備忘録:PC・ソフト】誤削除したmicroSDカードの動画の復元とバッチファイル

【備忘録:PC・ソフト】誤削除したmicroSDカードの動画の復元とバッチファイル

microSDカード上のドライブレコーダー( Kenwood DRV-630)のファイルを過って削除したので、復旧を試みました。

削除したファイルを取り出す作業自体はソースネクストの「救出®ファイル復元」でたやすく終わりました、、、と思ったら、MP4ファイルが開けません(NMEAの方は問題ありませんでした)。その理由は分かりませんが、「MP4 修復」で検索したらいくつか情報が見つかったので、複数のサイトで言及されていた下記の方法を試したら、動画ファイルは無事に開けました。なお、私はMP4の修復に使いましたが、MP4 / AVI / H264 / H265 に対して有効であるようです。

https://tehnoblog.org/video-repair-guide-corrupted-mp4-avi-h264-file-fix/

(上記を日本語で解説したサイトもありましたが、元ネタの方を掲載しています。)

ところが、上記の説明は1つのファイルの復旧についてなので、ドライブレコーダーのように数十個以上あるような場合にひとつひとつファイル名を打ち込みながら復旧するのは苦痛です。

そこで、いつものようにMS-DOSコマンドとExcelを使ってバッチファイルを作りました。

私はffmpeg自体の細かいことが分からないので上記のHPの通りにやりましたが、STEP 8,9あたりは他のやり方(=オプションの使い方)があるかもしれません。

またバッチファイルのループ処理が分かっている人にとってはExcelは不要です。というか、そもそもこのブログの情報も不要ですね。だから、以下はバッチファイルを扱ったことのない人向けの説明です。

※バッチファイルの説明は「知識ゼロからのwindowsバッチファイル超入門」が分かりやすいです。興味あれば検索してみてください。

以下の手順は、削除して復旧したMP4ファイル群に限った方法ではなく、たんに開けなくなったMP4ファイル群に対しても使えます。またExcelがインストールされていて、かつ、拡張子CSVがExcelに関連づけられていることを前提としています(普通にExcelをインストールしたら勝手にそうなっています)。

【手順】

  1. 上記のHPのSTEP 7までを実行します。
  2. STEP 7で用いる健全なMP4ファイルは同じドライブレコーダーで録画した過去の動画を使いましょう。具体的には「recover_mp4.exe good.mp4 analyze」の「good.mp4」の代わりに自分の動画ファイル名を使うということです。また、上記のHPの説明は修復したい動画ファイルをffmpeg/binフォルダに入れた場合なので、手動で修復したい動画ファイルをffmpeg/binフォルダにコピーしておきます。
  3. コマンドプロンプトを開き、復元した動画ファイルのフォルダに移動します。たとえば、動画をE:\ffmpeg/binに入れていたら、コマンドプロンプトで「CD  E:\ffmpeg/bin <enter>」、「E: <enter>」のように入力します。なお、「E:\」の「\」(バックスラッシュ)は、フォントの都合でバックスラッシュに見えると思いますが、キーボードで半角の円マークを打ち込んでください(以下同様)。
  4. この状態で、「dir /b *.mp4 > aaaa.csv <enter>」と入力し、ファイル名リストを作成します。

    ファイル名のaaaaの部分は任意です。一過性のファイルなので、aaaaのように意味のないファイル名にしています。また、この作業の後、マンドプロンプトのウィンドウを閉じてもOKですが、やり直す場合のことを考慮してそのままにしておきましょう。

  5. エクスプローラーでaaaa.csv をダブルクリックするとExcelが開いて、A列にファイル名一覧が表示されます。
  6. B1に拡張子を取り除いたファイル名を入れるために、計算式「=LEFT(A1,17)」を入力します。(2つめのパラメータ「17」はDRV-630 などKenwood製品の場合であって、使用するドライブレコーダーがどのようなファイル名を付けるかによって、異なる数値になります。)
  7. C1に上記のHPのSTEP 8「recover_mp4.exe bad.mp4 recovered.h264 recovered.aac」に相当するコマンドを作るために下記のように入力します。

    =CONCATENATE(“recover_mp4.exe “,A1,B1,”.h264 “,B1,”.aac”)」

  8. D1に上記のHPのSTEP 9「ffmpeg.exe 30 i recovered.h264 i recovered.aac bsf:a aac_adtstoasc c:v copy c:a copy recovered.mp4」に相当するコマンドを作るために、下記のように入力します。

    =CONCATENATE(“ffmpeg.exe -r 30 -i “,B1,”.h264 -i “,B1,”.aac -c:v copy -c:a copy “,A1)

    Excelの計算式の最後の「A1」についてですが、「A1」と書くと元ファイルと同じファイル名で修復されます。それが困る場合は「A1」ではなく「”recovered_”,B1,”mp4″」のように記すと、元ファイル名の先頭に「recoverd_」が追加されたファイル名になります。

    それから、私はドライブレコーダーの音声録音をオフにしているので上記ではエラーになりました。そこで、音声に関わる部分を除いたコマンドを作りました。

    =CONCATENATE(“ffmpeg.exe -r 30 -i “,B1,”.h264 -c:v copy “,A1)

  9. B1~D1セルをドラッグして選択し、D1セルの右下の■をドラッグして、A1の最下行に至るまでずるずるっとコピーします。(下画像のようになります。)
    2019-10-22_105734.png
  10. メモ帳などのテクストエディタを起動します。
  11. Excel表の最上部のCをクリックしてC列すべてを選択して、Ctrl+Cでコピーし、メモ帳に移ってCtrl+Vで貼り付けます。
  12. メモ帳の「名前を付けて保存」で保存ダイアログを表示し、下部の「ファイルの種類」を「すべてのファイル」に変更してから、その上の「ファイル名」に「recover_all.bat」と入力して保存します。

    保存ファイル名に関して重要なのは、拡張子「bat」です。上の例の「recover_all」の部分は何でもかまいませんが、必ず「.bat」を付けてください。「bat」はバッチファイルを示す拡張子なので、間違えると動きません。

  13. 手順11,12と同様に、D列の内容をメモ帳にコピーし、「remake_all.bat」のようなファイル名で保存します。
  14. ここまでできたらExcelを閉じてもOKです。適当なファイル名を付けて保存してから終了します。
  15. エクスプローラーで、12で作成した「recover_all.bat」をダブルクリックします。勝手にコマンドプロンプトのウィンドウが開いて処理が始まります。
  16. 手順15が終了してコマンドプロンプトのウィンドウが自動的に閉じられたら、修復前のMP4ファイルをどこか適当なフォルダに移動させるか、削除します。(手順8のところで、元ファイルと異なるファイル名で修復するようにした場合は、移動や削除は不要です。)
  17. 手順13で作成した「remake_all.bat」をダブルクリックします。再びコマンドプロンプトのウィンドウが開いて処理が始まり、終わると勝手に閉じます。
  18. 以上で修復できているはずです。できあがった動画ファイルを確認しましょう。また修復前のファイルが不要であれば削除しましょう。

以上です。

さて、話をmicroSDカードで誤削除した動画の復元に戻すと、すべてのファイルを復元できたのですが、異なるファイル名で同じ内容の動画ができたりしていたので、無事に復元できたのは一部だけでした。誤削除した後、microSDカードは手つかずのまま復元作業を開始したのですべて無事に復元できると考えていましたが、残念な結果に終わりました。

そこで、ソースネクストの「救出®ファイル復元」以外(※)のファイル復元ソフト、たとえばGlary Undelete で試しましたが、結果は同様でした。つまり、ファイル復元ソフトの性能ではなく、microSDの状態そのものが復元できないファイルがあった原因でしょう。microSDについては詳しくないし、とくに調べる気もないので、原因は分からずじまいです。

(※)私が使っているソースネクストの「救出®ファイル復元」はO&O社のOEMなのでO&O社以外のものです。また「救出®ファイル復元」はバージョンによってOEM元が異なるかもしれないので、「救出®ファイル復元」だからといってO&O社であるとは限りません。

*

ところで、Excelでコマンド文字列を作る作業はsedでも可能です。頻繁に同様の処理が必要になる場合はsedの方がスマートでしょう。

*

VLC Media Playerで修復できるという情報もありましたが、私の場合はできませんでした。面倒くささから言えば、まずVLC Media Playerで試みて、だめなら上記の方法を使う手順の方がよいだろうと思います。

カテゴリー: 備忘録:PC・ソフト
  1. コメントはまだありません。
  1. トラックバックはまだありません。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。