diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 30 |
1 files changed, 23 insertions, 7 deletions
@@ -21,6 +21,8 @@ replaces the original atomically on success. - **Size report** (`-s`) — print per-file size feedback, show a batch summary, and write a status TSV log for encoded, skipped, and failed files. - **Dry-run** (`-n`) — preview what would happen without touching any files. +- **Backup original** (`--backup-dir DIR`) — copy originals to an existing + backup directory before replacing them. - **Nice** — runs ffmpeg at niceness 19 by default to avoid starving other processes; configurable with `-N`. - **Respects [NO\_COLOR](https://no-color.org/)**. @@ -140,8 +142,9 @@ unparseable file is a hard error. Requires `tomlq` when the file is present. ```toml [encoding] -preset = "av1" -nice = 10 +preset = "av1" +nice = 10 +backup_dir = "backups" [skip] codecs = ["av1", "hevc"] @@ -157,15 +160,16 @@ quiet = false | Section | Key | Type | CLI equivalent | |---------|-----|------|----------------| -| `[encoding]` | `preset` | string | `-p` | +| `[encoding]` | `backup_dir` | string | `--backup-dir` | +| `[encoding]` | `hwaccel` | string or boolean | `--hwaccel` / `--no-hwaccel` | | `[encoding]` | `nice` | integer | `-N` | +| `[encoding]` | `preset` | string | `-p` | | `[encoding]` | `verify_output` | boolean | `--verify-output` | -| `[encoding]` | `hwaccel` | string or boolean | `--hwaccel` / `--no-hwaccel` | -| `[skip]` | `codecs` | array of strings | `-S` (merged with CLI) | +| `[output]` | `quiet` | boolean | `-q` | +| `[output]` | `verbose` | boolean | `-v` | | `[size_report]` | `enabled` | boolean | `-s` / `--no-size-report` | | `[size_report]` | `file` | string | `--size-report-file` | -| `[output]` | `verbose` | boolean | `-v` | -| `[output]` | `quiet` | boolean | `-q` | +| `[skip]` | `codecs` | array of strings | `-S` (merged with CLI) | > **Note:** `[skip] codecs` from the config file and `--skip-codec` from the > CLI are **merged** — both sources contribute to the skip list. @@ -174,6 +178,9 @@ quiet = false > or a method string such as `"vaapi"` or `"cuda"`. CLI `--hwaccel`/`--no-hwaccel` > always takes precedence. +> **Note:** `[encoding] backup_dir` must point to an existing directory. CLI +> `--backup-dir` always takes precedence. + ### Codec skip list (deprecated) The legacy `skip.conf` file is no longer read. If it still exists, a @@ -195,6 +202,7 @@ transcode.sh [OPTION] [--] FILE... | `--config-file FILE`, `--config-file=FILE` | Load configuration from FILE instead of the default path | | `-f PATH`, `--encode-file PATH`, `--encode-file=PATH` | Read file list from PATH (one per line) | | `-n`, `--dry-run` | Show what would be done; don't run ffmpeg | +| `--backup-dir DIR`, `--backup-dir=DIR` | Copy originals to an existing backup directory before replacing them | | `-N VALUE`, `--nice VALUE`, `--nice=VALUE` | Nice adjustment for ffmpeg (default: 19) | | `--hwaccel [METHOD]`, `--hwaccel=METHOD` | Enable hardware acceleration; METHOD defaults to `auto` if omitted (e.g. `cuda`, `vaapi`, `videotoolbox`); enabled by default | | `--no-hwaccel` | Disable hardware acceleration (omit `-hwaccel` from ffmpeg invocation) | @@ -224,6 +232,9 @@ transcode.sh --size-report --encode-file list.txt # Dry-run with verbose output to inspect detected formats transcode.sh --dry-run --verbose my_movie.mkv +# Keep originals in an existing backup directory after successful encodes +transcode.sh --backup-dir ~/transcode-backups *.mp4 + # Use a custom preset, only keep result if smaller, skip AV1 inputs transcode.sh --preset av1_fast --only-if-smaller --skip-codec av1 /media/films/*.mkv @@ -234,6 +245,11 @@ transcode.sh --nice 10 --continue *.mp4 transcode.sh --config-file ~/profiles/fast.toml input.mp4 ``` +When `--backup-dir` is used, the directory must already exist. Backups preserve +the source file's absolute path below that directory and existing backup files +are not overwritten; numeric suffixes such as `.1` and `.2` are appended when +needed. + ## Size report TSV When `--size-report` is enabled, the TSV log uses this schema: |
