From 37aabd456e598543186a7e0fce4e9fd98a02935b Mon Sep 17 00:00:00 2001 From: hbrain Date: Mon, 25 May 2026 00:59:10 +0000 Subject: [PATCH] Simplify output directory option --- README.md | 5 +++-- movmaker.py | 5 ++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 61fb2c2..4de143d 100644 --- a/README.md +++ b/README.md @@ -157,9 +157,10 @@ python3 movmaker.py input --preview - overlays the opening title for the first 6 seconds: large title, then date/location on one line - displays optional per-file captions at bottom center; use `|` to split caption lines - adds persistent bottom-left title/date/place and bottom-right `@bubulescu` stamps -- writes safe ASCII text in rendered overlays and metadata, so special letters become readable equivalents like `Č` -> `C`, `å` -> `a`, `ø` -> `o` +- preserves special characters in rendered overlays and metadata +- uses safe ASCII only for generated filenames, so special letters become readable equivalents like `Č` -> `C`, `å` -> `a`, `ø` -> `o` - embeds MP4 metadata: title, date, location, artist, comment, and creation_time -- writes an MP4 file named like `YYYYMMDD_title.mp4` in the current directory by default +- writes an MP4 file named like `YYYYMMDD_title.mp4` in the current directory by default; use `--out-dir DIR` to choose another output directory - takes `YYYYMMDD` from the first picture/video metadata, falling back to file modification date - uses local `ffmpeg/ffmpeg` and `ffmpeg/ffprobe` when present, otherwise system tools diff --git a/movmaker.py b/movmaker.py index 14c016d..f0948e6 100755 --- a/movmaker.py +++ b/movmaker.py @@ -2,7 +2,7 @@ """Simple flat-folder photo/video movie maker using ffmpeg. Usage: - python movmaker.py input --output movie.mp4 + python movmaker.py input --out-dir . Put images, videos, audio files, and optionally data.txt in one directory. """ @@ -567,7 +567,6 @@ def build_video( def main(argv: list[str] | None = None) -> int: parser = argparse.ArgumentParser(description="Make a video from a flat folder of images/videos/audio.") parser.add_argument("input", type=Path, help="flat input directory") - parser.add_argument("--output", "-o", type=Path, help="output mp4 path; defaults to YYYYMMDD_title.mp4 in the current directory") parser.add_argument("--out-dir", type=Path, default=Path("."), help="directory for auto-named output videos") parser.add_argument("--image-duration", type=float, default=6.0, help="seconds each image is visible") parser.add_argument("--fade", type=float, default=3.0, help="crossfade duration in seconds") @@ -605,7 +604,7 @@ def main(argv: list[str] | None = None) -> int: audio_fade_in = max(0.0, args.audio_fade_in) video_fade = max(0.0, args.video_fade) - output = args.output or default_output_path(media[0].path, data, args.out_dir) + output = default_output_path(media[0].path, data, args.out_dir) # Image duration means fully visible time, not including crossfades. # Middle images need both a fade-in and fade-out added to their clip length.