I had a thought regarding discs that are damaged. Usually one has to buy a replacement disc, but what if the replacement disc is itself damaged, but in a different place? Scratches are unlikely to be in the exact same place on two identical discs. Could there be an option to pause reading a disc where it has a problem, swap it out for another, and resume ripping from that point? Or perhaps by using two (or more) drives, having copies mounted simultaneously and switching between them in case of any errors are detected?
This of course would not help in most cases of mastering errors as all discs would likely have the same error in the same place, but it could help for out-of-print titles for which the used market is only available for alternate copies.
My apologies if this has been rehashed before; I’m new here.
Feature Request: Scanning Redundant Media
Re: Feature Request: Scanning Redundant Media
Ever heard of something called the Domesday Duplicator? (https://www.youtube.com/watch?v=QDlbwl3f39Q) It is for laser discs, but has similar ideas.
As for something like that in MakeMKV, lots of people have made similar suggestions.
https://forum.makemkv.com/forum/viewtopic.php?f=10&t=38554
The program's author, Mike, has spoken about a feature like that in the past. I don't know if such a feature will ever ship though.
As for something like that in MakeMKV, lots of people have made similar suggestions.
https://forum.makemkv.com/forum/viewtopic.php?f=10&t=38554
The program's author, Mike, has spoken about a feature like that in the past. I don't know if such a feature will ever ship though.
Re: Feature Request: Scanning Redundant Media
You could use the software ISOBuster to do that. You will fist have to disable bus encryption by reading the disc in with Makemkv. If the copy based on the two discs is successful you will have an AACS encrypted ISO copy you can then decrypt with Makemkv.
Re: Feature Request: Scanning Redundant Media
I would really like to see a feature like this. I've had multiple times when a disc wouldn't rip properly but I had access to another copy that also failed. It would be nice if makemkv could just rip all the data it can from a disc and later you could "plug the holes" by inserting another copy and pointing it to the incomplete file.
Re: Feature Request: Scanning Redundant Media
Claude should be able to help you set this up. If you need it more often it can even make you a script to automate.
Re: Feature Request: Scanning Redundant Media
The first thing to note is that both discs must be the same pressing, or at least use the same unit keys and have the clips laid out at exactly the same spot on the disc. Otherwise, the bytes you retrieve from the second disc aren't what is supposed to fill in the hole from the first disc.
The second thing to note is that if your drive supports LibreDrive, and the disc enables bus encryption (all UHD I've seen; not sure if any HD Blu-rays do) or you aren't sure, you should attempt to open the disc with MakeMKV before reading from it with another tool, as Coopervid notes. This will enable LibreDrive, defeating the bus encryption. LibreDrive only stays active until you eject the disc or power-cycle the drive, so make sure to enable it every session. It's okay if MakeMKV can't completely open the disc due to errors, it just has to get as far as "Using LibreDrive mode[…]Using direct disc access mode". If your drive doesn't support LibreDrive and your disc enables bus encryption, you're reasonably out of luck. (I think it might be technically possible to use some software to capture the RDK and remove bus encryption from the image after the fact, but I have no knowledge or experience with how one might do that.)
For the actual reading, I use ddrescue to read the disc to an image file, keeping a map of the successfully read clusters:
Replace /dev/sr0 with whatever is appropriate for your operating system. (-d enables direct access, -b sets the block size (see below), -n skips the scraping phase (not worth the drive wear if you have another copy of the disc on hand). If you're lucky, it will manage to read everything. If not, put the other copy, open it with MakeMKV to enable LibreDrive, and then run:
(-MA tell it to retry everything that failed or was skipped on the first try, now that you have the other disc in place.)
You can also run the second command with the first disc still inserted to see if ddrescue can get any more data with a second attempt, or even put the same disc in a different drive if you have one, since often drives have slightly different optical pickups and can read slightly different subsets. (Remember to reenable LibreDrive as needed.)
Opening an encrypted disc image in MakeMKV
To open a disc, MakeMKV need certain data from the disc that is not included as part of the disc image. To actually make MKVs from the rescued encrypted disc image, you need to provide MakeMKV with that data:
On the ddrescue block size: a lot of examples use "-b 2048", since Blu-rays (like all optical discs) use 2048-byte sectors. However, Blu-rays perform error correction in blocks of 64KiB (65536 bytes), so almost always the drive will either successfully read enough data to error correct and return all 64KiB, or the whole cluster will fail to read. Setting the ddrescue block size to 65536 ensure that on the try where reading the cluster succeeds, it will capture all of it at once.
On misbehaving drives: some drives (all of my LG UHD-capable drives do this on occasion) will erroneously report a read as successful that in fact failed, returning zeros or a stale buffer rather than real data. ddrescue relies on the drive telling the truth about whether a read was successful, and will write those bytes to the image, leaving you with a corrupted backup. I'm working on a simple tool to catch this via the aacs content hashes so the bad clusters can be retried, but no promises on when that might be ready for public consumption.
On creating an encrypted folder for MakeMKV to open: Instead of copying the files out of the image, it should be possible to mount the image and create symlinks to the top level folders from next to the discatt.dat file. How to do this varies by OS and is left as an exercise for the reader.
The second thing to note is that if your drive supports LibreDrive, and the disc enables bus encryption (all UHD I've seen; not sure if any HD Blu-rays do) or you aren't sure, you should attempt to open the disc with MakeMKV before reading from it with another tool, as Coopervid notes. This will enable LibreDrive, defeating the bus encryption. LibreDrive only stays active until you eject the disc or power-cycle the drive, so make sure to enable it every session. It's okay if MakeMKV can't completely open the disc due to errors, it just has to get as far as "Using LibreDrive mode[…]Using direct disc access mode". If your drive doesn't support LibreDrive and your disc enables bus encryption, you're reasonably out of luck. (I think it might be technically possible to use some software to capture the RDK and remove bus encryption from the image after the fact, but I have no knowledge or experience with how one might do that.)
For the actual reading, I use ddrescue to read the disc to an image file, keeping a map of the successfully read clusters:
Code: Select all
ddrescue -d -b 65536 -n -v /dev/sr0 Disc.iso Disc.iso.mapCode: Select all
ddrescue -d -b 65536 -n -v /dev/sr0 Disc.iso Disc.iso.map -MAYou can also run the second command with the first disc still inserted to see if ddrescue can get any more data with a second attempt, or even put the same disc in a different drive if you have one, since often drives have slightly different optical pickups and can read slightly different subsets. (Remember to reenable LibreDrive as needed.)
Opening an encrypted disc image in MakeMKV
To open a disc, MakeMKV need certain data from the disc that is not included as part of the disc image. To actually make MKVs from the rescued encrypted disc image, you need to provide MakeMKV with that data:
- Insert the first disc (the one used to make the majority of the disc image) into your drive.
- Click "Backup" in MakeMKV.
- Make sure "Decrypt video files" is unchecked.
- Select a location and start the backup.
- Let the backup run just long enough to write discatt.dat to the backup folder. (It's the first thing that gets written, so as soon as MakeMKV starts actually copying files, you can stop it.)
- Copy the contents of your disc image (mount it with your OS or use something like 7-Zip) to the same folder. BDMV, AACS, et cetera should be right next to discatt.dat.
- In MakeMKV, click "Open files" and then select the discatt.dat.
- Make your MKVs
On the ddrescue block size: a lot of examples use "-b 2048", since Blu-rays (like all optical discs) use 2048-byte sectors. However, Blu-rays perform error correction in blocks of 64KiB (65536 bytes), so almost always the drive will either successfully read enough data to error correct and return all 64KiB, or the whole cluster will fail to read. Setting the ddrescue block size to 65536 ensure that on the try where reading the cluster succeeds, it will capture all of it at once.
On misbehaving drives: some drives (all of my LG UHD-capable drives do this on occasion) will erroneously report a read as successful that in fact failed, returning zeros or a stale buffer rather than real data. ddrescue relies on the drive telling the truth about whether a read was successful, and will write those bytes to the image, leaving you with a corrupted backup. I'm working on a simple tool to catch this via the aacs content hashes so the bad clusters can be retried, but no promises on when that might be ready for public consumption.
On creating an encrypted folder for MakeMKV to open: Instead of copying the files out of the image, it should be possible to mount the image and create symlinks to the top level folders from next to the discatt.dat file. How to do this varies by OS and is left as an exercise for the reader.