Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
dvd_trip [2021/10/17 17:44] beandog |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== dvd_trip ====== | ||
- | * [[dvd_info]] - main package | ||
- | |||
- | ''dvd_trip'' 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_trip). | ||
- | |||
- | See also ''--help'' output: | ||
- | |||
- | <code> | ||
- | dvd_trip - a tiny DVD ripper | ||
- | |||
- | Usage: | ||
- | dvd_trip [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_trip will encode source to HEVC video with AAC audio in a | ||
- | Matroska 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_trip/mpv.conf | ||
- | |||
- | See mpv man page for syntax and dvd_trip 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 ''trip_encode.mkv'' by default | ||
- | * 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: | ||
- | * 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> |