How does one rip a DVD on a Mac these days?

I haven't needed to do this in years, but now I find myself in possession of a couple of commercial, protected, region 1 NTSC DVDs. Handbrake 1.3.3 takes forever to read the indexes and then writes MP4 files with glitchy audio and no video at all. I've installed libdvdcss 1.4.2 into /opt/local/lib and /usr/local/lib, but I don't know whether Handbrake actually sees that. Since this is macOS 10.14.6, /usr/lib is unwritable.

What's the done thing?


Tags: , , , , , ,

24 Responses:

  1. Jason Edward Wright says:

    I rip with Mac DVD Ripper Pro and then transcode with Handbrake. I could never make Handbrake do the whole process reliably.

  2. Don says:

    I use MacDVDRipper Pro. Price is fair for how idiot proof they make everything,

    • Don says:

      Oh, and I just use the all in one process it has for making mp4s. I’m sure a finessed handbrake does a better job but I just don’t see the difference personally. If I ever care that much about quality I’ll rip a Blu-ray or just buy a 4K digital version

    • Elusis says:

      Another vote for Mac DVD Ripper Pro.

      So a friend told me. You know.

  3. R says:

    MakeMKV to get it off the disc and then Handbrake for compression was what I was doing a few years back on MacOS, and occasionally doing now on Windows.

  4. Johanna says:

    Use makemkv, which rips directly to mkv without format conversion. And it is completely free for DVDs.

    Afterwards, if you want to compress it differently, use handbrake on th mkv file.

  5. Rev Matt says:

    I use Handbrake multiple times a week.

  6. David Glover says:

    "MakeMKV" seems to be the canonical way these days. It's a paid product, but the trial is fully functional. It rips the DVD and places the titles you choose into an MKV file without transcoding.

    You can then drop the MKV into Handbrake for further compression, if so desired.

    • This is the same approach I take.

      The only other MakeMKV->Handbrake annoyance is the subtitles. They get stored in the mkv file in some weird state that means that Handbrake can only "hard code" them (that is, burn them directly into the video where they can't get turned off). Personally, I see that as a bug in Handbrake but after multiple releases I haven't seen it fixed.

      I haven't had issues with Handbrake and libdvdcss. I have libdvdcss installed in /usr/local/lib (/opt/local/lib), probably through macports but I've forgotten how long ago I did that.

      • David Glover says:

        Subtitles on DVDs are stored as images, not text. You can passthrough the subtitle track if you desire, but your playback software than has to understand DVD's bitmap subtitle format.

        To convert them into "real" subtitles, some kind of OCR software must be used. It's not a bug.

        • Makes sense. thanks.

          • the hatter says:

            DVD subtitles are stored as bitmaps ?! Makes no sense at all (but I know what you mean).

            • Glaurung says:

              The DVD spec is from 1995. An image layer that you could turn on and off with subtitles on it was extremely sophisticated tech for the hardware of the time.

              • Landa says:

                Well, it allowed supporting basically any writing system long before unicode was widespread enough (and without requiring all the fonts) as well as (slightly) coloured text without in-band coding.

                • formant says:

                  It also allowed ADV to implement their "Jiggle Counter"™ (one shown here; Burn-Up Excess has 4 going at once):

                  • bibulb says:

                    Goddamn, I suddenly feel very, very old.

                    I am also reminded of things like the first Ghostbusters DVD that used the subtitle track for a faux-MST3K animated silhouette. (Or the His and Her Circumstances discs that used them for things like on-screen text and sound effects, and skirted JUST close enough to the edges of the spec (and alternate angle spec, too) that they failed playback on some dodger players…)

        • Robert says:

          The MPEG2 video stream on DVDs supports closed captioning, and if present, this data can be transcoded into a subtitle stream, and/or extracted as plain text.

          Can ffmpeg extract closed caption data - Stack Overflow

          • Andrew Klossner says:

            Yes. Note that closed captions often have far less detail than subtitles for the same film.

  7. xrayspx says:

    It seems like you have a solution with MakeMKV, and I'm definitely going to look into that, what I'm doing is a bit different, and pretty easy to automate across multiple trays. We've been buying a lot of complete TV series box sets and I needed something that would output lots of files with somewhat rational and manageable names, so I could tell what they are and rename them all later.

    This script is for a Mac, but I've got pretty much the same workflow on Linux with a few changed commands. Again, ugly but it works, though I feel like it could rip faster, I dunno, I just keep adding DVD trays to overcome the speed with parallel ripping.

    The meat of it is:
    /Applications/mencoder dvd://$title -alang en -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate="1200" -vf scale -zoom -xy 640 -oac mp3lame -lameopts br=128 -o /Volumes/Filestore/dvdrip-output/$dir/$title.avi

    That is a "slice chicken neck, drizzle on ground while dancing" incantation, but it works well enough.

    I attempt to name the file something sensible, and in the case of movies, usually succeed. In the case of TV shows things get kind of weird, and I've got separate scripts for each. I recently bought FileBot, which...seems to help, somewhat, in mass file renaming to get to a naming scheme of your choice. The TV shows script looks like the below garbage, the movies one is similar but I'm only ripping the first title, which is generally the movie. In practice I just use the TV one for everything:

    #! /bin/bash

    timestamp=`date +%m%d%Y%H%M`
    pid=`ps -A | grep dvd-rip-tvshows | awk '{print $1}'`
    caffeinate -w $pid

    id=$(drutil status |grep -m1 -o '/dev/disk[0-9]*')
    if [ -z "$id" ]; then
    echo "No Media Inserted"
    name=`df | grep "$id" |grep -o /Volumes.* | awk -F "Volumes\/" '{print $2}' | sed 's/ /_/g'`

    name=`df | grep "$id" |grep -o /Volumes.* | awk -F "Volumes\/" '{print $2}' | sed 's/ /_/g'`

    mkdir /Volumes/Filestore/dvdrip-output/$dir

    echo $dir

    maxtitle=`/Applications/mencoder dvd://100 -o bob | grep "titles on this DVD" | awk '{print $3}'`

    for title in {1..100}
    if [ $title -gt $maxtitle ]
    chmod -R 775 /Volumes/Filestore/dvdrip-output/$dir
    sleep 3
    drutil tray eject
    exit 0
    echo "CURRENTLY RIPPING TITLE #$title"
    /Applications/mencoder dvd://$title -alang en -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate="1200" -vf scale -zoom -xy 640 -oac mp3lame -lameopts br=128 -o /Volumes/Filestore/dvdrip-output/$dir/$title.avi
    chmod -R 775 /Volumes/Filestore/dvdrip-output/$dir

  8. Zach Fine says:

    I use makemkv to rip with no transcoding, then various ffmpeg incantations to get the file into the desired codec and container. I wrote this up a while back. Some of the arguments for installing ffmpeg have changed since, but the rest should still apply.

  9. Keith says:

    Maybe try running Handbrake in a chroot or Docker container, so you can redirect /usr/lib/ to somewhere where you have write access?

  • Previously