Skip to main content

A script to cut a directory of clips to music.

Project description

mvmake

This script takes a music file and a directory of videos (clips) then creates a music video.

Installation

The script is pypi available. You can install via pip.

python3 -m pip install mvmake

Usage

Simple example

mvmake --music ./my_new_song.wav --clips ./path/to/clips my_music_video.mp4

Help output

$ mvmake --help

usage: mvmake [-h] --music MUSIC --clips CLIPS [--extensions EXTENSIONS]
              [--method [{onset,beat,union}]] [--width WIDTH]
              [--height HEIGHT]
              output

Snap some clips to music. This script takes an audio file and a directory
where video clips are located then tries to match the given clips to the given
audio.

positional arguments:
  output                The name of the output file.

optional arguments:
  -h, --help            show this help message and exit
  --music MUSIC         Path to the music file.
  --clips CLIPS         Path to the directory containing the clips. All the
                        clips will be read from the directory recursively.
  --extensions EXTENSIONS
                        The enabled extensions of the clips. Files with other
                        extensions will not be used. (default: ['mp4', 'avi',
                        'mov'])
  --method [{onset,beat,union}]
                        Select to what to snap the clips. Currently there are
                        three methods supported: onset (snap clips to the
                        starting of each note), beat (snap clips to each
                        beat), union (snap clips to both of these) (default:
                        onset)
  --width WIDTH         The width of the output. If given without height, the
                        clips aspect ratio will be kept. (default: None)
  --height HEIGHT       The height of the output. If given without width, the
                        clips aspect ratio will be kept. (default: None)

Samples

Sample 1: Fall In Love

This sample is constructed from DigEx - Fall In Love and clips from Beeple-Crap - übersketch.
The default onset detection method was used. (--method onset)

https://user-images.githubusercontent.com/20663815/158896029-0c74840e-c5bd-4fcd-89ad-8f33d66c8ace.mp4

Licenses

Song: DigEx - Fall In Love [NCS Release]
Music provided by NoCopyrightSounds
Free Download/Stream: http://NCS.io/FallInLove
Watch: http://youtu.be/

VJ Loops: Beeple-Crap - übersketch
https://www.beeple-crap.com/vjloops

Sample 2: Talk

This sample is constructed from Beave - Talk and clips from Beeple-Crap - four.color.process.
The beat detection method was used. (--method beat)

https://user-images.githubusercontent.com/20663815/158896309-87955912-f3b9-47c1-9c2e-a29a9b80ef51.mp4

Licenses

Song: Beave - Talk [NCS Release]
Music provided by NoCopyrightSounds
Free Download/Stream: https://ncs.io/Talk
Watch: https://youtu.be/uZi8_rnqgHg

VJ Loops: Beeple-Crap - four.color.process
https://www.beeple-crap.com/vjloops

Changelog

Learn about the latest improvements.

Contributing

Contributing Guidelines

Read through our contributing guidelines to learn about our submission process, coding rules and more.

Want to Help?

Want to report a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues labeled as help wanted or good first issue.

License

The project is licensed under MIT License. Read more here.

Shoutout to these guys 🎉💖

This project is based on the following packages, check them out!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mvmake-1.0.0.tar.gz (5.7 kB view hashes)

Uploaded Source

Built Distribution

mvmake-1.0.0-py3-none-any.whl (6.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page