History#
0.2.0 (2026-08-09): Big overhaul#
Breaking changes:
Everything is muxed to mkv (fixes recurring failures on avi/wmv/flv/mp4 sources: subtitle conversion, no more codec/container mismatches). Files already compliant are never touched.
The per-directory
.keepfiles (dill) are replaced by a central JSON failure log under the user data dir; runrcomp cleanuponce to remove old.keep.The CLI is now a command group:
rcomp TARGETstill works (routed torcomp run), plusrcomp config,rcomp cleanup,rcomp remote status,rcomp remote purge. Booleans are real flags (--replace/--no-replace).Python >= 3.11; packaging moved from Poetry to uv + hatchling.
New:
Persistent preferences: TOML file (
rcomp config --init), named presets, resolution order defaults < config < preset < explicit flags.Quality options exposed:
--crf,--ffmpeg-preset, free--codecchoice,--height 0to disable downscaling.Robust remote: single SSH connection per batch,
.rcompworkspace created automatically, ffmpeg checked at connection, all file operations over SFTP (Windows servers now supported), patient reconnection with re-attachment to the orphan encode after a connection loss.Automatic local mode when the hostname resolves to this machine.
Workspace inspection and purge (
rcomp remote status/purge), plus a conservative auto-purge (7 days) at connection time.Progress bars (tqdm) fed by ffmpeg
-progress, proper logging with--verbose/--quiet, end-of-batch summary; a failing file no longer stops the batch (with a circuit breaker after repeated failures).Rotation-aware sizing:
heightcaps the display definition (short side), so phone portrait videos are no longer over-shrunk.Encoder availability checked at connection time (a build without libx265 fails with a clear message instead of per-file errors), and
remote_ffmpegconfig key for servers whose non-interactive PATH misses ffmpeg.rcomp failureslists and clears the failure log; one debug log file is written per run (parallel-run safe), old ones purged after 30 days; the failure log merges on save so parallel batches no longer overwrite each other’s entries.Odd-dimension sources (e.g. 360x221 msmpeg4 rips) are cropped by one pixel instead of crashing the x265 open; PowerShell’s trailing-backslash quoting accident on path arguments is repaired; default extensions now include
.mov,.mpg,.mpeg,.m2ts,.mtsand.3gp.Interlaced sources (DVD, AVCHD 1080i…) are deinterlaced automatically (
bwdif, driven by the probed field order) when they get transcoded.-D user@aliasdestinations are accepted; a server refusing SFTP (Synology ships with the service disabled) now yields a clear message with the remedy instead of a raw paramiko traceback;remote_workdirandremote_workdir_sftpconfig keys for servers where the shell and SFTP see different trees (Synology chroots SFTP into the share tree: pair the default.rcompwithremote_workdir_sftp = "/home/.rcomp").Many bug fixes: crash after a failed compression, unchecked replacement of sources in the default mode, POSIX-only local probe,
scaleidiom, ssh configPortignored, paramiko output deadlock on long encodes…
0.1.5 (2025-02-21): Local mode added#
Set hostname to
localto use local ffmpegOther default extensions added
0.1.4 (2025-02-01): Default extensions expanded#
TODO: add cli interface for extensions
0.1.3 (2024-12-16): New working directory#
Default server working directory switched to
.rcompUpdate dependencies
0.1.1 (2024-03-30): Increased timeout#
The three timeout parameters of Paramiko have been increased.
0.1.0 (2024-03-22): First release#
First release on PyPI.