From 9a88e9ff0385f66e7c565a394908503dc6e916ad Mon Sep 17 00:00:00 2001 From: neodarz Date: Fri, 28 Apr 2017 00:30:19 +0200 Subject: Site updated at 2017-04-28T00:29:42+02:00 source branch was at: f1965c50670f611ef54f9471490d45a554f7d866 Correct a link --- ...-10-23-ripping-copy-protected-dvd-with-mpv.html | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 build/blog/2014-10-23-ripping-copy-protected-dvd-with-mpv.html (limited to 'build/blog/2014-10-23-ripping-copy-protected-dvd-with-mpv.html') diff --git a/build/blog/2014-10-23-ripping-copy-protected-dvd-with-mpv.html b/build/blog/2014-10-23-ripping-copy-protected-dvd-with-mpv.html new file mode 100644 index 00000000..db6664f0 --- /dev/null +++ b/build/blog/2014-10-23-ripping-copy-protected-dvd-with-mpv.html @@ -0,0 +1,57 @@ + + + + + + + +Ripping copy-protected DVD with mpv + + + + + + + + +
This blog has been archived.
Visit my home page at zhimingwang.org.
+ +
+
+

Ripping copy-protected DVD with mpv

+ +
+

11/02/2014 update:

+

See this post for issues, explanations, and more.

+
+

10/25/2014 update:

+

I'm such an idiot. vobcopy is the real, hassel-free way to go.

+
brew install vobcopy
+

Then, with the DVD mounted,

+
+

vobcopy without any options will copy the title with the most chapters into files of 2GB size into the current working directory.

+
+

Of course there are a ton of options, but I generally hate to browse through options unless I have to, so I'm happy with calling without argument.

+
+

Yesterday I was trying to rip a music video off a newly released DVD from Japan. I knew very little about how DRM (in this case, CSS) actually works and how to break it. I tried to operate directly on the VOB file with ffmpeg or mpv but both failed with a lot of header errors — I suppose more files than the VOB are required for authentication? Whatever, maybe I’ll learn the details in the future, but I don’t see the need since DVD is an outdated technology anyway.

+

So, can we proceed from here? Most certainly. I noticed that although mpv won’t let me play a single VOB, I can simply hand it the DVD mount point, and it will play the whole DVD seamlessly. Caution: mpv needs to be compiled with libdvdnav and libdvdread! With brew you just do

+
brew install mpv --with-libdvdnav --with-libdvdread
+

For better performance and backup, I first cloned the DVD into a .cdr image (DVD/CD-R Master Image) using Disk Utility (I've never tried creating/cloning image with diskutil CLI, so nothing to report on that). Then I mount the image, say the mount point is /Volumes/UPBX_80165. As said I can hand that mount point to mpv and it simply works, but how about extracting the MPEG-2 video stream? The --stream-capture=<filename> option is there just for you. In principle --stream-dump=<filename> should also work, but without monitoring the output and controlling where to end, I’m not sure if it will ever terminate itself when reading from a DVD (when I stream captured the DVD it just kept repeating itself until I explicitly quit with q). So that's it:

+
mpv --stream-capture=dump.mpg /Volumes/UPBX_80165
+

Then you can torture the dump.mpg with ffmpeg however you want. The most obvious thing is to cut out the music video part, and put into a new container like MPEG-TS. Or transcode it to H.264 for your iPhone. The nice thing about dump.mpg is that, unless I got it wrong, there's no quality loss here — the only thing you got rid of is that goddamn DRM.

+
+
+ + + -- cgit v1.2.1