Simplify output directory option
This commit is contained in:
parent
10e9c5fae1
commit
37aabd456e
2 changed files with 5 additions and 5 deletions
|
|
@ -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
|
- 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
|
- 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
|
- 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
|
- 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
|
- 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
|
- uses local `ffmpeg/ffmpeg` and `ffmpeg/ffprobe` when present, otherwise system tools
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
"""Simple flat-folder photo/video movie maker using ffmpeg.
|
"""Simple flat-folder photo/video movie maker using ffmpeg.
|
||||||
|
|
||||||
Usage:
|
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.
|
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:
|
def main(argv: list[str] | None = None) -> int:
|
||||||
parser = argparse.ArgumentParser(description="Make a video from a flat folder of images/videos/audio.")
|
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("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("--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("--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")
|
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)
|
audio_fade_in = max(0.0, args.audio_fade_in)
|
||||||
video_fade = max(0.0, args.video_fade)
|
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.
|
# Image duration means fully visible time, not including crossfades.
|
||||||
# Middle images need both a fade-in and fade-out added to their clip length.
|
# Middle images need both a fade-in and fade-out added to their clip length.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue