Remote Compression
rcomp compresses videos in batch with ffmpeg — on this machine, or on a remote
server over SSH.
- Free software: MIT license
- Documentation: https://balouf.github.io/remote-compression/.
Features
- Batch: point it at a directory, it recursively finds the videos worth compressing (already-compliant files are left alone) and shows progress bars.
- Everything comes out as mkv: subtitles and odd containers (avi, wmv, flv...) stop breaking conversions; text subtitles are converted when needed.
- Local or remote:
-D my_servercompresses on a server (Linux or Windows) through a single SSH connection for the whole batch;-D local(or a hostname that resolves to this machine) runs locally. - Robust remote: the workspace is created automatically, ffmpeg is checked at connection time, a lost connection is patiently re-established and the running encode is re-attached instead of relaunched.
- Persistent preferences: a TOML file managed with
rcomp config, with named presets; command-line flags always win. - Failure log: corrupt and non-profitable files are remembered (centrally,
no droppings in your video folders) and skipped on the next runs; inspect it
with
rcomp failures. - Rotation-aware: phone videos with rotation metadata are sized by their display definition — a 1080x1920 portrait is 1080p, not "1920 tall".
- Old-source friendly: interlaced material (DVD, AVCHD) is deinterlaced automatically, and odd-dimension oddities no longer break the encoder.
Requirements
ffmpegandffprobein the local PATH.- For remote compression:
- an entry in
~/.ssh/configfor the server (private key;ProxyJumpsupported);-D user@aliasis accepted too, - the SFTP service enabled on the server (Synology DSM ships with it disabled: Control Panel > File Services > FTP > SFTP),
ffmpegin the PATH of the server (checked at connection, with a clear error message otherwise). The.rcompworkspace is created automatically.
- an entry in
Usage
$ rcomp movies/ # compress a directory on the default host
$ rcomp -D nas -P hard movies/ # named preset on a specific server
$ rcomp -D local -n movies/ # local dry-run: show what would be done
$ rcomp config --init # create the configuration template
$ rcomp remote status # inspect the server workspace
$ rcomp remote purge --older-than 7d
$ rcomp failures # see why files are being skipped
$ rcomp cleanup movies/ # remove legacy .keep files (rcomp < 0.2)
$ rcomp --help
Configuration lives in a TOML file whose location is shown by rcomp config
(platform-dependent, e.g. %LOCALAPPDATA%/rcomp on Windows,
~/.config/rcomp on Linux). Notable keys: hostname (your default server),
codec, crf, ffmpeg_preset, height, replace, extensions,
remote_ffmpeg (explicit server-side binary path, when the non-interactive
PATH misses it or the stock build lacks encoders — both typical on Synology),
remote_workdir/remote_workdir_sftp (the workspace as seen by the shell
and by SFTP respectively — Synology chroots SFTP into the share tree, so pair
the default .rcomp with remote_workdir_sftp = "/home/.rcomp"), and
[preset.X] tables for your own presets. Each run also writes a full debug log under the
directory shown by rcomp config.
Note: rcomp TARGET is a shortcut for rcomp run TARGET; a target literally
named config, cleanup, failures, remote or run must therefore be
written rcomp run <target>.
Credits
This package was created with Cookiecutter and the Package Helper 3 project template.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file remote_compression-0.2.0.tar.gz.
File metadata
- Download URL: remote_compression-0.2.0.tar.gz
- Upload date:
- Size: 947.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c739b0cc36dd4adbb832dbfbff21f8dfbe3142b320cc5c687ee67717b42760f1
|
|
| MD5 |
84af02939d1c26e06d08a1a29204ba09
|
|
| BLAKE2b-256 |
ccecf9e1e64885b49b2806d175bd5775be9468425d9bcff50e691dd258dc3445
|
File details
Details for the file remote_compression-0.2.0-py3-none-any.whl.
File metadata
- Download URL: remote_compression-0.2.0-py3-none-any.whl
- Upload date:
- Size: 44.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
849551893f03650801cbaaa6c69fe7736272d8281e75797aaccd950d1b6308d7
|
|
| MD5 |
42dc8ac9c6576f487ccf2a7205c5d9f2
|
|
| BLAKE2b-256 |
cd058a8085f9b97850db7d622bbbe57586893c3a9f948c9552dcf3ac2e7ceee9
|