73

I have been using Brasero to rip my DVD collection to .iso. However, I've discovered some errors in some of the DVDs through playback e.g. VLC player would just stop playing the iso file when a bad section in playback is met (half-way through a film).

The worst thing is that no errors or warnings were thrown during the ripping process - I could have . Is there a method or application that will monitor DVD/file data integrity and avoid such scenarios in the future?

Anything equivalent to Exact Audio Copier or CDparanoia for DVDs?

3
  • 3
    I believe EAC and cdparanoia are needed for music CDs because CD-Audio doesn't include the error-correction data in higher-level formats like DVD-Video. It should suffice to just copy the bits directly, as Neojames suggests. Dec 19, 2012 at 0:21
  • 2
    @Mechanicalsnail That's not correct, the encoding of a CD has functionality like parity, but there is also functionality in a drive to read a CD less accurate which EAC and cdparanoia disable or force the drive to verify the read data to get accurate results.
    – LiveWireBT
    Dec 15, 2015 at 17:31
  • off topic but cdda2wav can use paranoia and should be preferred
    – ustick
    Apr 26, 2018 at 10:07

16 Answers 16

77

I think you can use dd to copy disks well. Using

dd if=/dev/cdrom of=image_name.iso

I can confirm it works well with CDs and should work well with DVDs too.

Edit: I just used this to rip a DVD, so I can confirm it works with DVDs too.

15
  • 7
    Should the DVDs itself be faulty, I can only recommend gddrescue as it will automatically skip over unreadable sectors (the default is to try around thirty times, if I recall correctly, which just takes forever and fails if it does not succeed in reading the disk).
    – sup
    Feb 13, 2013 at 12:11
  • 9
    That did not work, failed with input/output error, though nothing seems to be wrong with the CD. Apr 11, 2014 at 18:53
  • 7
    Worked for me (for DVD), using: sudo dd if=/dev/sr0 of=image_name.iso
    – david6
    Aug 16, 2015 at 1:58
  • 22
    You should really use isoinfo -d -i /dev/cdrom to find out the logical block size (almost always 2048) and the number of blocks ("Volume size is" line) on the volume to pass as arguments to dd. Which makes the dd command look like dd if=/dev/cdrom bs=2048 count=1621535 of=filename.iso.
    – tgharold
    Sep 1, 2015 at 23:11
  • 9
    If you don't tell dd when to stop copying, it's going to copy the entire disk up to its full size. So the resulting ISO image file is going to be the same size as the media itself, not the size of the data on the media. In other words, if you have a DVD with only 1GB of data on it, your ISO file will be 4.7GB (or more) in size. If you give dd a block size and count as @tgharold mentioned, the resulting ISO file will be only as big as necessary to hold the data on the media. Oct 25, 2017 at 7:13
39

I haven't found one link that points to what I believe is a correct answer. Most just say DD the CD/DVD. But there is an extra padding at the end of the media that may cause errors.

I should also point out this will work with most, but I ran into issues with Sony CSS/CPPM Protection, which I used another program to achieve the desired results.

Any, I've found the following to work great for me.. :

  1. get the info of the CD/DVD you're copying. I haven't tried this with an audio CD because I just rip them to flac's , but the following is a test on a DVD..

    # isoinfo -d -i /dev/sr1 | grep -i -E 'block size|volume size'
    Logical block size is: 2048
    Volume size is: 2264834
    

    We use the Logical block size for the BS= variable and Volume size for the COUNT=

  2. use DD to copy the DVD to an iso:

    # dd if=/dev/sr1 of=/mnt/incoming/test.iso bs=2048 count=2264834
    2264834+0 records in
    2264834+0 records out
    4638380032 bytes (4.6 GB, 4.3 GiB) copied, 373.405 s, 12.4 MB/s
    

    To monitor dd progress one alternative is to add status=progress.

  3. Test the image against the actual DVD..

    # md5sum /mnt/incoming/test.iso 
    d3a2cdd58b8c9ade05786526a4a8eae2  /mnt/incoming/test.iso
    
    # md5sum /dev/sr1
    d3a2cdd58b8c9ade05786526a4a8eae2  /dev/sr1
    

Hope this helps someone looking for a complete answer.

2
  • 2
    isosize -x /dev/sr0 works also for getting the info
    – Tony
    Dec 31, 2018 at 16:17
  • 2
    Note to myself: to dd command line add status=progress to watch verbose progress notifications
    – Marecky
    Mar 23, 2020 at 17:03
14

Use dvdbackup.

Here's how to rip the entire DVD:

dvdbackup -i /dev/dvd -o ~ -M

That puts the DVD contents into a new subdirectory of your home directory (~). To then generate an .iso, use this command:

mkisofs -dvd-video -udf -o ~/dvd.iso ~/[movie_name]

If you want, you can alternatively only rip the main feature (see archlinux or sourceforge documentation). If you want a video file (e.g. .m4v) instead of an .iso, use handbrake after ripping the entire DVD (don't forget to install libdvdcss!).

There are ways to reduce the number of steps, but this seems to be more robust than alternatives.

I've been especially happy with the archlinux documentation.

P.S. I suspect that most of the answers were excellent at the time of writing, but I found them to be unhelpful at the time I'm writing this, so I thought I'd write an answer that works for me in case others are finding this question around the same time that I did.

1
  • dvdbackup brings errors with multiple DVDs that I tried to rip. ("libdvdread: CHECK_VALUE failed in ...". It works for some DVDs, but not all.
    – cweiske
    Jul 31, 2023 at 8:37
13

You have several options, all work well in GNOME:

  • AcidRip Install acidrip is an automated front end for MPlayer/Mencoder (ripping and encoding DVD tool using mplayer and mencoder) written in Perl, using Gtk2::Perl for a graphical interface. Makes encoding a DVD just one button click!

    sudo apt install acidrip
    
  • dvd-rip Install dvdrip is a full featured DVD copy program written in Perl i.e. front end for transcode and ffmpeg. It provides an easy to use but feature-rich Gtk+ GUI to control almost all aspects of the ripping and transcoding process.

    It uses the widely known video processing swissknife transcode and many other Open Source tools. dvd::rip itself is licensed under GPL / Perl Artistic License. You can install dvd::rip as follows under Debian / Ubuntu Linux:

    sudo apt install dvdrip
    
  • K9copy Install k9copy is a KDE DVD Backup tool. It allows the copy of a DVD9 to a DVD5. It is also known as a Linux DVD shrink. It supports the following features: The video stream is compressed to make the video fit on a 4.7GB recordable DVD. DVD Burning. Creation of ISO images. Choosing which audio and subtitle tracks are copied. Title preview (video only). The ability to preserve the original menus.

    sudo apt install k9copy
    
4
9

In case of a strong or weird anti-copy protection and the DVD is yours, you should decrypt the DVD first and then execute a fault-tolerant copy of it.

Install dependencies:

$ sudo apt install libdvd-pkg && sudo dpkg-reconfigure libdvd-pkg
$ sudo apt install mplayer gddrescue

Decrypt your DVD (assuming the device file is /dev/sr0):

$ mplayer -dvd-device /dev/sr0 dvd:// -vo null -ao null -ss 10 -endpos 1

Create the image:

$ ddrescue -n -b 2048 /dev/sr0 title.iso title.log

You can work on the image "title.iso" later on. ddrescue should have skipped garbled content if any.

2
  • This was the only answer that properly ripped a DVD with copy protection; dd and other utilities did not work correctly. I used Ubuntu 16.04 for this (yes, an old distro, but the one installed on my only device with a DVD player).
    – Taylor R
    Dec 29, 2022 at 6:22
  • I was trying to use dd and failing. Critical step is decryption with mplayer first
    – d.j.yotta
    Mar 11 at 5:19
7

Brasero will accurately copy DVDs. You must first install 'libdvdcss2' from the VLC website. This allows Brasero to defeat the 'CSS' (Content Scramble System) which is used in commercial DVDs to prevent unauthorized copying.

6
  • 3
    This may be a stupid question, but can you copy a DVD without decrypting? Essentially making a raw copy of the encrypted disc where the copy is also encrypted? Jul 21, 2016 at 5:43
  • 2
    @thomasrutter There are no stupid questions. But the answer is no. At least not without making your own DVD. A portion of the key algorithm uses information that's pre-set, even on writeable DVDs.
    – Perkins
    Dec 25, 2019 at 19:12
  • @thomasrutter, yes you can. All the bitwise copy methods listed as answers here all do just that such as dd and ddrescue.
    – Adrian
    May 28, 2020 at 3:47
  • 2
    @Adrian the comment above suggests this is impossible since the encryption is done at a lower level, and even if you could, the data would be useless since decryption requires information pre-baked into the disc which is not read or copied as part of the disc data May 29, 2020 at 14:14
  • @thomasrutter so you're saying that the bitwise copies are actually copies of the bits under the encryption?
    – Adrian
    May 29, 2020 at 18:30
4

Try using ddrescue. I was able to make a bitwise copy of my DVD with the following command with success from a cygwin command prompt:

ddrescue --no-scrape /dev/scd0 backup.iso

A similar command can be used on other variations of *inx. Of course you would have to download ddrescue for your flavour of *inx using the appropriate install app. See your *inx help pages for details.

4

Anything equivalent to Exact Audio Copier or CDparanoia for DVDs?

dvdisaster can do multiple passes if a sector is damaged, equivalently to CDparanoia. Example usage:

dvdisaster -d /dev/sr0 -i /path/to/output.iso --read-raw -r --read-attempts 5-20

It's in Ubuntu's universe repo.

3

Handbrake is in the default repositories of all currently supported versions of Ubuntu. To install it open the terminal and type:

sudo apt install handbrake  

To install the CLI version of Handbrake open the terminal and type:

sudo apt install handbrake-cli

The results of snap find handbrake will usually show that the version of handbrake-jz is the latest stable version of Handbrake. To install this handbrake snap package run these commands:

sudo snap install handbrake-jz

How to Rip DVDs Using HandBrake

  1. Open HandBrake.
  2. Choose the file you want to rip by selecting the File -> Open Single Title.
  3. Choose the destination to save the stored file by clicking the downward triangle ▼ next to To: in the lower right corner and browsing to the destination directory.
  4. Click the green Start icon at the top to begin ripping the DVD.
2
mkisofs -r -o file.iso /dev/cdrom

This is just one example, feel free to check mkisofs --help to check all the other options.

2
  • 1
    This command does not works for me. It returns: I: -input-charset not specified, using utf-8 (detected in locale settings) Total translation table size: 0 Total rockridge attributes bytes: 264 Total directory bytes: 0 Path table size(bytes): 10 Max brk space used 0 175 extents written (0 MB) Feb 12, 2015 at 17:26
  • maybe adding -l to the command can help... Jul 6, 2018 at 20:55
2

I add SimpleBurn (http://simpleburn.tuxfamily.org/ ), a minimalistic free Linux application enabling you to make ISO file from DVD disc easily and quickly. Of course, you will have to install libdvdcss2 in your Linux if you want to extract media content from the copy-protected DVD discs. For more DVD/Blu-ray digitizing tools and knowledge, visit my site at: http://dvd0101.com.

1

I have extracted to an .iso file with k3b (KDE based tool)

K3b Main Menu -> Tools -> Copy Medium

On the left, check "Create image" if not already checked and uncheck "Remove image" if it checked.

Click on the Image tab and pick a path for "Write image file to:"

E.g. "/home/me/tmp/myDvd.iso"

Click "Start"

Then just cancel the copy after the file has been extracted.

1

I used to use dd to rip my DVDs in the past, it required libdvdcss to work though.

sudo apt-get install libdvd-pkg
1

D1g1ta1's answer about using bs=# count=# at the end of the dd command successfully created 4.6GB .iso files of my 4.6GB DVD (of a Qubes OS 4.0 .iso). However upon calculating the sha256 hash, I found that the contents for some reason turned out different.

Using dd if=discDrive of=disc.iso, without parameters, works normally and produces and correct hash values. Before, my drive was acting up and it was producing the wrong hash value; in addition, before, my disc drive was not creating the full 4.6GB iso. I think my drive is just broken.

K3b is a GUI program. I found it successfully creates .iso files and the hashes calculated of the resulting .iso files are correct!

The Brasero program also works and the resulting .iso files are also correct.

0
1

There was a previous attempt to provide a "complete" answer, but it did not take CSS copy protection into account. So here's my attempt at a follow-up. I am taking the approach of trying the lightest touch first, and then moving on to increasingly aggressive approaches only as circumstances warrant.

If the DVD does not use CSS (content scramble system) encryption, then the simple dd command recommended in other answers will work.

(All code snippets are borrowed from previous answers)

# isoinfo -d -i /dev/sr1 | grep -i -E 'block size|volume size'
Logical block size is: 2048
Volume size is: 2264834

# dd if=/dev/sr1 of=backup.iso bs=[Logical Block Size from above] count=[Volume size from above]

If the disc does use CSS encryption, but no other tricks such as "fake" bad blocks, then the dd command by itself may not work. This is because the firmware inside most DVD drives will recognize the presence of CSS encryption, and will refuse to allow low-level read access to any sectors that are marked as subject to copyright protection. You must use a program which invokes the DeCSS library (or something equivalent) to "unlock" the disc in the drive's firmware first, and then the dd command can do its job. The DeCSS library is not included by default a fresh Ubuntu installation, but there are instructions in the "Restricted Formats" section of the Ubuntu Wiki to install it. Be aware that using this software may carry legal consequences in some jurisdictions.

# apt install libdvd-pkg && dpkg-reconfigure libdvd-pkg
# apt install mplayer
# mplayer -dvd-device /dev/sr0 dvd:// -vo null -ao null -ss 10 -endpos 1

Now continue with the isoinfo and dd commands above

If the disc has both CSS encryption and additional protective measures such as fake bad blocks, then just unlocking the disc in the drive's firmware is not enough. Even though it is perfectly normal for such a disc to present unrecoverable errors when you attempt to read these fake bad blocks, the video content itself is actually completely intact. However, the normal dd command would likely abort at the first such block it encounters. ddrescue would be your friend in that case.

# apt install gddrescue

Use the instructions above to use a DeCSS-enabled player app to unlock the drive's firmware. Instead of moving on to isoinfo and dd, use ddrescue:

# ddrescue --no-scrape /dev/sr0 backup.iso
0
mkisofs -pad -J -R -oDVD.iso -graft-points "/AUDIO_TS=/media/sr0/AUDIO_TS" "/VIDEO_TS=/media/sr0/VIDEO_TS"

mount -t iso9660 -o loop,ro DVD.iso /mnt

growisofs -dvd-compat -Z /dev/dvd=DVD.iso -speed=2
1
  • 13
    You may want to add exactly what this does to help the original poster in order to improve your answer.
    – Oyibo
    Sep 29, 2012 at 14:33

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .