Repository navigation
Releases: midoBB/vidconv
Release list
Release v2.1.0
Release v2.1.0
Release v2.0.0
Rewritten in Rust. Still shells out to ffmpeg and ffprobe; the file command is no longer needed.
Changed
- Replacing an original now yields
<name>.mp4(an.mkv/.aviinput no longer keeps its extension while holding MP4 data); a different existing<name>.mp4is never overwritten --keepkeeps the original and writes<name>-720.mp4next to it, never overwriting existing files (-720-1, ...)- Default output is faststart MP4 (
--fragmentedrestores the old layout) - Exit code is 1 when any file failed, 130 when interrupted, 2 on usage errors; skipped files are no longer counted as successes
- Videos are detected with ffprobe and a list of video extensions when scanning directories
- Output never upscales; odd sizes are scaled to even dimensions instead of padded with black
- Only the first video and first audio stream are kept (multichannel audio is downmixed to stereo); subtitles, data streams, attachments and chapters are dropped;
creation_timeis preserved
Added
- Rotation and non-square pixel aspect ratio are honoured when choosing portrait/landscape and size
- HDR (PQ/HLG) sources are tone-mapped to SDR when ffmpeg has
zscaleandtonemap - Output is verified (decodes, duration matches) before the original is replaced; a result that is not smaller keeps the original unless
--force - Work happens in a hidden temp file that is always cleaned up, including on Ctrl-C (exit 130); a second Ctrl-C exits immediately
- Free-space and write-permission checks, a stall watchdog, and a VAAPI self-test with automatic render-node detection
- Probe failures are reported and logged instead of files silently disappearing; explicit directory arguments are scanned
- Options:
-r/--recursive,-f/--force,--output-dir,--hw auto|off|force,--vaapi-device,--height,--max-fps,--crf,--preset,--audio-bitrate,--no-sharpen,--fragmented,-q/--quiet,--json(one JSON object per file plus a summary),--completions <shell>,--version - Unit tests, golden tests that pin the ffmpeg arguments to those captured from the 1.x Python tool, and end-to-end tests against generated clips; CI runs fmt, clippy and tests
Fixed
- Filenames containing
[...], control characters or a leading-no longer break output or tool calls - Missing stream bitrate (MKV/WebM) is estimated from size and duration instead of forcing re-encode
- Probe failures (
0/0frame rate,N/Aduration, no video stream) no longer crash discovery or make files vanish silently - Progress no longer jumps to 100% after a failure
Release v1.0.17
This release contains the latest changes for vidconv executable for linux x86_64.
Release v1.0.16
This release contains the latest changes for vidconv executable for linux x86_64.
Release v1.0.15
This release contains the latest changes for vidconv executable for linux x86_64.
Release v1.0.14
This release contains the latest changes for vidconv executable for linux x86_64.
Release v1.0.13
This release contains the latest changes for vidconv executable for linux x86_64.
Release v1.0.12
This release contains the latest changes for vidconv executable for linux x86_64.
Release v1.0.11
This release contains the latest changes for vidconv executable for linux x86_64.
Release v1.0.10
This release contains the latest changes for vidconv executable for linux x86_64.