10年以上前からHDD/DVDレコーダーを使っていましたが、何枚か再生できなくなったDVD-RAMがあります。
Windowsでいくつかあるフリーのディスク修復ツールを試してみてもダメだったので、自分でなんとかすることにしました。
OS Xのddコマンドでディスクをあちこち読んでみると、先頭付近でまだらにエラーが出るディスクばかりでした。
こんな状態では通常の手順ではアクセスできないので、ディレクトリ等が読めなくてもUDFのファイルエントリとファイルの中身さえ無事なら
ファイルを取り出すプログラムを作りました。
はじめはOS X用に作り始めたのですが、Macにつないでいる安物ドライブよりWindowsマシンに入れてあるパイオニアBDR-S08Jの方が
読み取り性能が良さそうなのでWindows用になりました。
読み取り性能が良さそうというのは、同じDVD-RAMを2回読んでコンペアしたとき、安いドライブでは3枚に1枚くらい不一致になるのですが、
パイオニアの方はほとんどの場合一致したので、そう判断しました。
プログラムは以下のものです。うちではVisual C++ 2008 Express Editionでビルドしました。

salvage.c

UDFについてはせんべえ焼き、もしくはコースターメーカーを参考にさせていただきました。
このプログラムは、ディスクの先頭32Mバイトを粘り強く読んで、ファイルエントリが見つかったらアロケーション情報に従ってファイルの中身を読み出します。
かなり時間はかかりますが、終了後に実行したディレクトリ下のDVD_RTAVディレクトリ内にVR_MANGR.IFOとVR_MOVIE.VROができていればOKです。
録画したのがアナログ放送ならそのままDVD-RWなどに焼いてレコーダーで見ることができました。
ディスクはいつか消えるものと考え、ファイルのままHDDに入れておいて、さらにバックアップを取っておくのが一番いいかもしれません。

ダウンロードしたプログラムにより何らかの損害を受けたとしても、作者はその責を負いません。