VariaReEncoder / CHANGELOG.md
1 contributor
61 lines | 2.97kb

Changelog

All notable changes to garmin_varia_transcode.sh are documented here. Format follows Keep a Changelog.


[Unreleased]

Changed

  • --move-source renamed to --delete-source (old name kept as alias)
  • --continue-on-error renamed to --keep-going (old name kept as alias)
  • --unattended automatically enables input staging when --staging-dir is set
  • Source and destination preflight checks now fail before staging/scanning when source or destination NFS/autofs mounts are unreadable or unwritable ### Added
  • --unattended preset (--delete-source + --keep-going) for long unattended runs
  • --staging-dir DIR to place intermediate transcoding temp files on a fast local path, with automatic fallback to destination temp files when staging is unavailable or lacks sufficient free space for the current file
  • --stage-input to copy each source video to staging before encoding, which avoids long ffmpeg reads directly from flaky NAS/autofs mounts
  • automatic RAM disk creation on macOS when --staging-dir points to a missing /Volumes/<Name> path, configurable with --staging-ramdisk-mb N
  • --debug-timing N to stop after N video files and print timing statistics for quick profiling

  • cleanup_garmin_varia_media_folder.sh helper for media-folder hygiene (import + transcoded output): removes AppleDouble artifacts (._*), removes zero-size MP4 files, and normalizes single-suffix duplicate timestamp names

Behavior

  • Import cleanup returns exit code 1 when duplicate groups are blocked and need manual review

[1.0.0] — 2026-05-04

Initial release.

Added

  • Batch HEVC transcoding with hevc_videotoolbox, libx265, or libx264
  • Encoding modes: hardware, auto, quality, compat
  • Default mode: hardware (hevc_videotoolbox on macOS)
  • Recursive directory traversal (default on)
  • Directory structure preservation at destination
  • Per-file audio detection via ffprobe; AAC 128k output when audio present
  • HEVC outputs tagged hvc1 for Apple Photos / QuickTime compatibility
  • -map_metadata 0 and -movflags +faststart
  • Source file timestamp preservation via touch -r
  • --move-source: delete source only after codec + duration validation
  • --no-overwrite: skip existing output files
  • --no-recursive: restrict to top-level directory
  • --dry-run: print actions without writing files
  • --verbose: full per-operation logs and ffmpeg/ffprobe output
  • --crf: override CRF value for software modes
  • --extensions: configurable video extension list
  • Auto single-file mode when --source is a file path
  • Quiet default output: one progress line per file with elapsed seconds
  • Summary line with counts and timing after each run
  • Destination-inside-source guard (hard error)
  • At-least-one-of --source/--destination requirement
  • Fail-fast: encoding chain stops on first ffmpeg error
  • Bash 3.2 compatible (macOS system bash)