Easily create a video montage (either a sequence or a grid of videos)
Install:
pip install video_montage
Before running, you must have a prepare an input video folder with videos the following structure, eg.
<INPUT_VIDEO_FOLDER_PATH>
βββ <video1>.mp4
βββ <video2>.mp4
βββ ...
video_grid_montage
: Create a grid of videos (all playing at the same time)
video_grid_montage --help
usage: video_grid_montage --input_video_folder_path INPUT_VIDEO_FOLDER_PATH
[--output_video_folder_path OUTPUT_VIDEO_FOLDER_PATH]
[--output_video_filename OUTPUT_VIDEO_FILENAME]
[--max_n_videos MAX_N_VIDEOS]
[--max_duration_seconds MAX_DURATION_SECONDS]
[--fps FPS] [--num_per_row NUM_PER_ROW]
[--overlay_filename] [-h]
optional arguments:
--input_video_folder_path INPUT_VIDEO_FOLDER_PATH
(Path, required)
--output_video_folder_path OUTPUT_VIDEO_FOLDER_PATH
(Path, default=.)
--output_video_filename OUTPUT_VIDEO_FILENAME
(str, default=2023-10-20_00-16-32_video_grid_montage.mp4)
--max_n_videos MAX_N_VIDEOS
(Union[int, NoneType], default=None)
--max_duration_seconds MAX_DURATION_SECONDS
(Union[int, NoneType], default=None)
--fps FPS (Union[int, NoneType], default=None)
--num_per_row NUM_PER_ROW
(Union[int, NoneType], default=None)
--overlay_filename (bool, default=False)
-h, --help show this help message and exit
video_sequence_montage
: Create a sequence of videos (playing one at a time sequentially)
video_sequence_montage --help
usage: video_sequence_montage --input_video_folder_path INPUT_VIDEO_FOLDER_PATH
[--output_video_folder_path OUTPUT_VIDEO_FOLDER_PATH]
[--output_video_filename OUTPUT_VIDEO_FILENAME]
[--max_n_videos MAX_N_VIDEOS] [--fps FPS]
[--overlay_filename] [-h]
optional arguments:
--input_video_folder_path INPUT_VIDEO_FOLDER_PATH
(Path, required)
--output_video_folder_path OUTPUT_VIDEO_FOLDER_PATH
(Path, default=.)
--output_video_filename OUTPUT_VIDEO_FILENAME
(str, default=2023-10-20_00-17-06_video_sequence_montage.mp4)
--max_n_videos MAX_N_VIDEOS
(Union[int, NoneType], default=None)
--fps FPS (Union[int, NoneType], default=None)
--overlay_filename (bool, default=False)
-h, --help show this help message and exit
(video_montage_env) β video_montage git:(main) β tree openai_rubiks_cube
openai_rubiks_cube
βββ 2023-10-07_20-04-36_openai_rubiks_cube.gif
βββ 2023-10-07_20-05-13_openai_rubiks_cube.gif
βββ 2023-10-07_20-05-48_openai_rubiks_cube.gif
βββ 2023-10-07_20-07-27_openai_rubiks_cube.gif
βββ 2023-10-07_20-08-02_openai_rubiks_cube.gif
βββ 2023-10-07_20-11-18_openai_rubiks_cube.gif
0 directories, 6 files
(video_montage_env) β video_montage git:(main) β video_grid_montage --input_video_folder_path openai_rubiks_cube
Moviepy - Building video 2023-10-07_20-16-08_video_grid_montage.mp4.
Moviepy - Writing video 2023-10-07_20-16-08_video_grid_montage.mp4
Moviepy - Done !
Moviepy - video ready 2023-10-07_20-16-08_video_grid_montage.mp4
You can also add the --overlay_filename
argument to add the clip's filename to each video clip.