Differences

This shows you the differences between two versions of the page.

Link to this comparison view

dvd_rip [2023/12/26 01:50] (current)
beandog created
Line 1: Line 1:
 +====== dvd_rip ======
  
 +  * [[dvd_info]] - main package
 +
 +''​dvd_rip''​ is a tiny DVD ripper that is part of [[https://​github.com/​beandog/​dvd_info|dvd_info]]. It is tiny because it has a subset of major DVD ripper options.
 +
 +A man page is included with the install (man dvd_rip).
 +
 +See also ''​--help''​ output:
 +
 +<​code>​
 +dvd_rip - a tiny DVD ripper
 +
 +Usage:
 +  dvd_rip [path] [options]
 +
 +  -o, --output <​filename> ​      Save to filename (default: dvd_track_##​.mkv)
 +
 +Track selection:
 +  -t, --track <#> ​         Encode selected track (default: longest)
 +  -c, --chapter <#>​[-#​] ​        ​Encode chapter number or range (default: all)
 +
 +Language selection:
 +      --alang <​language> ​       Select audio language, two character code (default: first audio track)
 +      --aid <#> ​                ​Select audio track ID
 +      --slang <​language>​ Select subtitles language, two character code (default: none)
 +      --sid <#> ​                ​Select subtitles track ID
 +
 +Encoding options:
 +
 +  -v, --vcodec <​x264|x265|vpx>​ Video codec (defaut: x265)
 +  -q, --crf <#>​ Video encoder CRF (default: use codec baseline)
 +  -a, --acodec <​aac|opus>​ Audio codec (default: AAC)
 +  -d, --detelecine Detelecine video
 +  -e, --deinterlace Deinterlace video
 +
 +Defaults:
 +
 +By default, dvd_rip will encode source to H.264 video with AAC audio in an
 +MP4 container. If an output filename is given with a different extension,
 +it will use the default settings. for those instead. In each case, the default
 +presets are used as selected by the codecs as well. Note that mpv must already
 +be built with support for these codecs, or dvd_trip will quit.
 +
 +See the man page for more details.
 +
 +  .mkv - HEVC video, AAC audio
 +  .mp4 - H.264 video, AAC audio
 +  .webm - VPX9 video, Opus audio
 +
 +Other:
 +  -h, --help ​                   Show this help text and exit
 +      --version ​                Show version info and exit
 +
 +DVD path can be a device name, a single file, or directory (default: /dev/sr0)
 +
 +dvd_trip reads a configuration file from ~/​.config/​dvd_rip/​mpv.conf
 +
 +See mpv man page for syntax and dvd_rip man page for examples.
 +</​code>​
 +
 +==== Features ====
 +
 +I originally wrote it as a proof-of-concept and a way to use libmpv'​s backend for coding. It's good to use if you want to see what a DVD track would look like with some generic settings for encoding, a quick way to get in and out. If you like the way it works, awesome. :) 
 +
 +What it does:
 +
 +  * requires no arguments, will rip the longest track to ''​dvd_rip_##''​ by default where '##'​ is the track number.
 +  * rips the video track plus one audio track
 +  * can select audio track by language or track id
 +  * one fixed output based on output filename extension
 +  * .mkv - H.265 (x265) AAC (fdk-aac)
 +  * .mp4 - H.264 (x264) AAC (fdk-aac)
 +  * .webm - VPX9 Opus
 +  * detelecining
 +
 +What it does **NOT** do (this is why it's a tiny ripper):
 +  * subtitles
 +  * multiple audio streams
 +  * auto-cropping
 +  * add specific codec parameters
 +  * pass video or audio through
 +
 +I recommend using something like [[HandBrake]] for more advanced options.
 +
 +
 +==== x265 Encoding ====
 +
 +CRF for x265 ranges from 0 to 51, with the default being 28.
 +
 +In x265, changing the encoder speed is relative to filesize, not quality. In these presets, however, both CRF and encoding speed are adjusted for each level.
 +
 +==== x264 Encoding ====
 +
 +CRF for x264 ranges from 0 to 51, with the default being 23.
 +
 +In x264, changing the encoder speed is relative to quality, not filesize. In these presets, however, both CRF and encoding speed are adjusted for each level.
 +
 +==== VPX Encoding ====
 +
 +The WebM project recommends doing a two-pass encode as the default options for creating video. I prefer doing a one-pass with a good CRF instead, and that is what's used here.
 +
 +VPX doesn'​t have a '​CRF'​ in the same sense that x264 and x265 do. Instead, you can set minimum and maximum quality scale levels. The lowest being 0, and the highest 63 (rc_min_quantizer and rc_max_quantizer).
 +
 +The values cannot be set to each other in an attempt to "​force"​ a specific quality level. The library requires that there be a minimium difference of 8 between the two values.
 +
 +In addition to setting the ranges, the rate control method is set to '​quality'​. The other options being VBR, CBR, and constrained quality.
 +
 +The default settings using libvpx as a one-pass, with no quality scales set is generally low-quality,​ with lots of blockiness, and so is used for the "​low"​ preset. Depending on your source, you may or may not get a good encode out of it, but setting it to defaults means you could get anything. The other presets set a minimum quality level.
 +
 +Using vpxenc, here is what the settings would look like for the low preset:
 +
 +<​code>​
 +vpxenc --end-usage=q --passes=1 --webm -o vpxenc.webm source.y4m
 +</​code>​

Navigation