古いBD-Rから動画ファイル等を救出する 2026年4月17日更新

 

ハードディスク上のBDAVフォルダーをPCで再生する」に書いたような劣化したBD-Rからファイルを救出するためのプログラムがありそうでないので簡単なものを自作した。レコーダーで録画したBD-RではDRMを解除できる DVDFab Passkey のようなプログラムは必要。

そのままエクスプローラでコピーできるファイルも多かったが途中でエラーになってしまうと何も残らない。FastCopy 等のコピー用プログラムでも同じ。レコーダーで録画した *.m2tsファイルは途中で切れてもそこまでは再生できるので何もないよりまし。

自作コマンドラインプログラム(Free Pascal Compilerソースとバイナリー)はエラーになった箇所までのファイルをコピー先に残し、好きなだけリトライしてコピー先ファイルにデータを追加していくことができる。同じドライブでもリトライの効果はあるが、別の性能のよいドライブを使えば更によい結果となるかもしれない。

コマンドラインパラメーターは、

CopyUntilError.exe <コピー元ファイル> <コピー先ファイル> <バッファーバイト数 (K・M付加可・最大1024M)>

としてある(パラメーターなしや不足で実行すると上記が表示される)。バッファーバイト数は大きい方が速いが、書き込みはバッファー単位で行なうので、たとえばバッファの90%でエラーが発生したらその90%はコピー先に書き込まれず、1つ前のバッファーまでしか書き込まれない。また、バッファーサイズが小さい方が救出されやすいようである。と言ってもBD-Rのエラー補正(ECC)は32KB単位なので小さくし過ぎても無意味。

たとえば10GB超のファイルであれば1回目は100M、2回目は10M、3回目は1M・・・というようにやってみるとか。

コピーのエラーにより DVDFab Passkey の再マウントが発生してしまうことがある。そうなると
「ドライブが切断されたため増加バイト数の確認に失敗しました」
というエラーが出たり、同じコマンドラインで続行しても「コピー元ファイルがありません」となる。そうなったらドライブからBD-Rを取り出し、 タスクバーの DVDFab Passkey アイコンでそれを終了し、ドライブにBD-Rを入れ直してマウントさせ、DVDFab Passkey も再起動してマウントさせればよい。

コピー中にBDドライブが数分黙り込んでしまうことがあるが、この時ドライブは必死にエラー訂正をしようとしていて、ドライブへの負荷は正常な書き込みよりもかなり大きい状態で、ドライブの寿命を縮めるとのこと。あきらめてCtrl+Cを押しで終了させればコピー先に救出できたデータは残る。Ctrl+Cを押してから終了するまでは少し時間がかかることがあるが、コマンドプロンプトを閉じて終了させるのは不可。

*.m2ts や *.mkvはファイルは途中で切れてしまってもそこまでは再生できるが *.mp4 は再生できなくなるのでしかるべき方法で修復する必要がある(成功するとは限らない)。

 

戻る