Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
dvd_trip [2019/03/11 18:29] beandog |
dvd_trip [2023/12/26 01:50] beandog removed |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== dvd_trip ====== | ====== dvd_trip ====== | ||
- | ''dvd_trip'' is a tiny DVD ripper. It is tiny because it has a subset of DVD ripper options. | + | * [[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. :) | 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. :) | ||
Line 7: | Line 66: | ||
What it does: | What it does: | ||
- | * requires no arguments, will rip the longest track to trip_encode.mkv by default | + | * requires no arguments, will rip the longest track to ''dvd_trip_##'' by default where '##' is the track number. |
* rips the video track plus one audio track | * rips the video track plus one audio track | ||
* can select audio track by language or track id | * can select audio track by language or track id | ||
Line 14: | Line 73: | ||
* .mp4 - H.264 (x264) AAC (fdk-aac) | * .mp4 - H.264 (x264) AAC (fdk-aac) | ||
* .webm - VPX9 Opus | * .webm - VPX9 Opus | ||
- | * .ogv - Theora Vorbis | ||
- | * sets output frames per second and color settings based on source (PAL / NTSC) | ||
- | * deinterlacing | ||
* detelecining | * detelecining | ||
- | * simple presets based on my preferences related to quality: low, medium, high, insane; default is medium | ||
- | What it does not do: | + | What it does **NOT** do (this is why it's a tiny ripper): |
* subtitles | * subtitles | ||
* multiple audio streams | * multiple audio streams | ||
Line 28: | Line 83: | ||
I recommend using something like [[HandBrake]] for more advanced options. | 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> |