[FFmpeg-user] Rip DVD with ffmpeg

Steve Boyer steveboyer85 at gmail.com
Wed Feb 21 18:27:29 EET 2018

On Wed, Feb 21, 2018 at 10:06 AM, Adi Marvillo <adi5 at gmx.at> wrote:

> Hello everyone - I am trying hard to rip my own DVD collection onto my
> fileserver but it doesn't work properly.
> Input-streams are:
> Stream #0:0: Data: dvd_nav_packet
> Stream #0:1: Video: mpeg2video (Main), yuv420p(tv, top first), 720x576
> [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 90k tbc
> Stream #0:2: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
> I made a list of the biggest files on the DVD which are supposed to be
> the entire film if concatenated.
> files adi at HOST ~/Videos $ cat mylist.txt
> file '/media/cdrom/video_ts/vts_09_1.vob'
> file '/media/cdrom/video_ts/vts_09_2.vob'
> file '/media/cdrom/video_ts/vts_09_3.vob'
> file '/media/cdrom/video_ts/vts_09_4.vob'
> file '/media/cdrom/video_ts/vts_09_5.vob'
> file '/media/cdrom/video_ts/vts_09_6.vob'
> DVDs do have copy-protection. In my experience, some DVDs will rip well
with the CLI tool "dvdbackup," however I've had significant issues when
coming to backing up D!sn3y discs. My preferred way is to use MakeMKV
(there's a linux version available), decrypt to the local HDD, then run
FFmpeg on the resulting single file (which does still contain chapter
information). It looks like you are reading directly from the CD, so that
could be part of the issue there.

> the command to start ripping is this one:
> avconv -safe 0 -f concat -i mylist.txt -g 25 -keyint_min 3 -aspect
> "16:9" -map 0:1 -c:v libx264 -map 0:2 -c:a copy ~/Videos/testvideo.mkv
> My CLI for ripping DVD's is roughly:
ffmpeg -i movie.mkv -vf crop=NumbersHere,fieldmatch,decimate -c:a
libfdk_aac -b:a 384k -c:v libx264 -preset veryfast -crf 18 -tune film
-movflags +faststart movie.mp4

*I compile FFmpeg from source, and include the FDK AAC codec. Unless you
compile, you won't get this encoder option.
*CRF 18 I've found to be a good balance of filesize/quality for DVD
material. For Blu-Ray rips, I'll downscale to 720p and use CRF 21.
*Crop values I get from doing: ffmpeg -ss 25:00 -i movie.mkv -vf cropdetect
-t 10 -f null /dev/null" and taking the spit-out crop values and plugging
them in directly.
*For IVTC, I'll either use combo of fieldmatch,decimate or
fps=fps=24000/1001 (depending on what works best and source material).
*movflags +faststart does a second pass after encoding is done and moves
the MOOV header to the front of the file, allowing you to start watching
before the download is completed.

> Error message after half an hour:
> Non-monotonous DTS in output stream 0:1; previous: 17992, current:
> 17960; changing to 17992. This may result in incorrect timestamps in the
> output file.
> ...

> adi at HOST ~/Videos $ avconv -safe 0 -f concat -i mylist.txt -ss 00:18:15
> -t 00:00:30 -g 25 -keyint_min 3 -vf
> "crop=x=22:out_w=in_w-52:y=4:out_h=in_h-6" -aspect "16:9" -map 0:1 -c:v
> libx264 -map 0:2 -c:a ac3_fixed ~/Videos/testvideo.mkv
> ffmpeg version 3.2.10-1~deb9u1 Copyright (c) 2000-2018 the FFmpeg
> developers
>   built with gcc 6.3.0 (Debian 6.3.0-18) 20170516

Also, why are you invoking it via avconv vs. ffmpeg? it looks like the
version is indeed FFmpeg and is just aliased ("Copyright (c) 2000-2018 the
FFmpeg developers")


More information about the ffmpeg-user mailing list