-
Notifications
You must be signed in to change notification settings - Fork 0
Disc Capture
CDs, DVDs, and Blu-ray discs require different forms of capture and fall in a grey area between digital and video. They are on what we would think of as an analog carrier, as it is a physical item that plays in a linear fashion, but are a digital file (or multiple files). We capture these in slightly different ways:
Workflow: ddrescue โ hdiutil โ MakeMKV โ FFmpeg
This guide covers the process of extracting data from physical DVDs (including damaged discs), decrypting the content, and transcoding it into a professional archival-standard master file.
Unlike standard copying tools, ddrescue does not stop when it hits a read error. It maps the disc and recovers as much data as possible.
Find the identifier for your DVD drive (e.g., /dev/disk4):
diskutil listUsing the mount location you found in the last step (e.g., /dev/disk6):
diskutil unmountDisk /dev/disk6Copy the "easy" data first and create a mapfile to track progress.
ddrescue -n -b 2048 /dev/diskN /output/path/uniqueID.img /output/path/uniqueID.mapRetry the difficult or damaged sectors identified in the mapfile. Note: Paths must stay the same here, as ddrescue will reference the files from the fast pass.
ddrescue -d -r3 -b 2048 /dev/diskN /output/path/uniqueID.img /output/path/uniqueID.map-
-d: Direct disc access (bypasses kernel cache) -
-r3: Retries bad sectors 3 times before giving up
DVD images are encrypted with CSS if they are from copy-protected sources. You must remux the data to decrypt the video and audio streams.
hdiutil attach uniqueID.imgVerify the mount path, usually /Volumes/[DISC_NAME].
Use the command-line interface to extract all titles into decrypted MKV files.
makemkvcon mkv file:/Volumes/[DISC_NAME]/VIDEO_TS all /output/path/This produces files like title_t00.mkv, title_t01.mkv, etc.
The final step moves the decrypted media into the FFV1 video codec and PCM audio format. This matches our preservation standards for lossless, intra-frame video.
| Component | Specification | FFmpeg Flag |
|---|---|---|
| Video Codec | FFV1 version 3 | -c:v ffv1 -level 3 |
| GOP | Intra-frame only | -g 1 |
| Bit Depth | 10-bit | -pix_fmt yuv422p10le |
| Error Control | 24 Slices + CRC | -slices 24 -slicecrc 1 |
| Audio Codec | PCM (Uncompressed) | -c:a pcm_s24le |
| Sample Rate | 48,000 Hz | -ar 48000 |
ffmpeg -i title_t00.mkv \
-map 0:v:0 -map 0:a:0 \
-c:v ffv1 -level 3 -coder 1 -context 1 -g 1 -slices 24 -slicecrc 1 \
-pix_fmt yuv422p10le \
-c:a pcm_s24le -ar 48000 \
-sn \
"uniqueID.mkv"To process all extracted titles in a directory:
for f in /output/path/title_t*.mkv; do
ffmpeg -i "$f" \
-map 0:v:0 -map 0:a:0 \
-c:v ffv1 -level 3 -coder 1 -context 1 -g 1 -slices 24 -slicecrc 1 \
-pix_fmt yuv422p10le -c:a pcm_s24le -ar 48000 \
"/output/path/preservation-files/$(basename "$f" .mkv)_pres.mkv"
done-
Missing Video: If FFmpeg reports "none" for a codec, ensure you used MakeMKV first. Raw
.imgfiles fromddrescueare encrypted and cannot be read directly by FFmpeg. -
Aspect Ratio: If the video appears "squashed" (DVDs use non-square pixels), add
-aspect 4:3or-aspect 16:9before the output filename.