Initial movmaker script
This commit is contained in:
commit
5b37d43665
3 changed files with 443 additions and 0 deletions
115
README.md
Normal file
115
README.md
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
# movmaker
|
||||
|
||||
Simple Python + ffmpeg movie maker.
|
||||
|
||||
Drop pictures, videos, music, and optionally one simple `data.txt` file into a single flat input directory. Then run one command to create an MP4 video.
|
||||
|
||||
No YAML. No required subdirectories.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Python 3
|
||||
- `ffmpeg`
|
||||
- `ffprobe` usually included with ffmpeg
|
||||
|
||||
Install on Debian/Ubuntu/Raspberry Pi OS:
|
||||
|
||||
```bash
|
||||
sudo apt install ffmpeg
|
||||
```
|
||||
|
||||
## Input folder
|
||||
|
||||
Example:
|
||||
|
||||
```text
|
||||
input/
|
||||
IMG_001.jpg
|
||||
IMG_002.png
|
||||
holiday_clip.mp4
|
||||
music.mp3
|
||||
data.txt
|
||||
```
|
||||
|
||||
Supported file types:
|
||||
|
||||
- Images: `.jpg`, `.jpeg`, `.png`, `.webp`, `.bmp`, `.tif`, `.tiff`
|
||||
- Videos: `.mp4`, `.mov`, `.mkv`, `.avi`, `.webm`, `.m4v`
|
||||
- Audio: `.mp3`, `.wav`, `.m4a`, `.aac`, `.flac`, `.ogg`
|
||||
- Data: `data.txt`, `info.txt`, or `title.txt`
|
||||
|
||||
Files are ordered by filename, so names like this work well:
|
||||
|
||||
```text
|
||||
001.jpg
|
||||
002.jpg
|
||||
003.mp4
|
||||
004.jpg
|
||||
```
|
||||
|
||||
## data.txt
|
||||
|
||||
`data.txt` is optional.
|
||||
|
||||
Simplest format:
|
||||
|
||||
```text
|
||||
Paris Trip
|
||||
May 2024
|
||||
Paris, France
|
||||
```
|
||||
|
||||
Those three lines mean:
|
||||
|
||||
1. title
|
||||
2. date
|
||||
3. place
|
||||
|
||||
Key/value format also works:
|
||||
|
||||
```text
|
||||
title: Paris Trip
|
||||
date: May 2024
|
||||
place: Paris, France
|
||||
```
|
||||
|
||||
Optional per-file captions may be supported, but they are not required:
|
||||
|
||||
```text
|
||||
IMG_001.jpg: Eiffel Tower
|
||||
IMG_002.jpg: Louvre
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
Basic:
|
||||
|
||||
```bash
|
||||
python3 movmaker.py input --output movie.mp4
|
||||
```
|
||||
|
||||
With options:
|
||||
|
||||
```bash
|
||||
python3 movmaker.py input \
|
||||
--output output/movie.mp4 \
|
||||
--image-duration 3 \
|
||||
--fade 1 \
|
||||
--resolution 1920x1080 \
|
||||
--fps 30
|
||||
```
|
||||
|
||||
## Current behavior
|
||||
|
||||
- scans one flat input directory
|
||||
- auto-detects media/audio/data files by extension
|
||||
- shows each image for 3 seconds by default
|
||||
- includes video clips inline
|
||||
- crossfades between media items
|
||||
- loops/trims music to match the video
|
||||
- overlays title/date/place at the beginning
|
||||
- writes an MP4 file
|
||||
|
||||
## Notes
|
||||
|
||||
This is an early version. The intended workflow is deliberately simple: dump files into one folder and run the script.
|
||||
Loading…
Add table
Add a link
Reference in a new issue