
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?
Previously.
I rip with Mac DVD Ripper Pro and then transcode with Handbrake. I could never make Handbrake do the whole process reliably.
I use MacDVDRipper Pro. Price is fair for how idiot proof they make everything,
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
Another vote for Mac DVD Ripper Pro.
So a friend told me. You know.
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.
That seems to be working, thanks!
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.
I use Handbrake multiple times a week.
This is on 10.14.6, I've not had trouble with it though I'm not sure about the region encoding (these are all standard commercial release movies)
Cool story bro.
"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.
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.
DVD subtitles are stored as bitmaps ?! Makes no sense at all (but I know what you mean).
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.
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.
It also allowed ADV to implement their "Jiggle Counter"™ (one shown here; Burn-Up Excess has 4 going at once):
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…)
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
Yes. Note that closed captions often have far less detail than subtitles for the same film.
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"
else
name=`df | grep "$id" |grep -o /Volumes.* | awk -F "Volumes\/" '{print $2}' | sed 's/ /_/g'`
fi
name=`df | grep "$id" |grep -o /Volumes.* | awk -F "Volumes\/" '{print $2}' | sed 's/ /_/g'`
dir="$name-$timestamp"
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}
do
if [ $title -gt $maxtitle ]
then
chmod -R 775 /Volumes/Filestore/dvdrip-output/$dir
sleep 3
drutil tray eject
exit 0
fi
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
done
chmod -R 775 /Volumes/Filestore/dvdrip-output/$dir
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.
Maybe try running Handbrake in a
chroot
or Docker container, so you can redirect/usr/lib/
to somewhere where you have write access?