Table of Contents
WackyPyWebM is a tool that allows you to create WebM videos with changing aspect ratios.
This is a Python implementation of OIRNOIR's WackyWebM in hopes of making the tool more accessible.
The current implementation is 5-10% faster then its javascript counterpart.
If you don't want to use console commands skip this part and go to Usage.
Install required python packages by running this command:
pip install -r requirements_no_term.txt
You can also install requirements.txt
instead if you plan on running Terminal UI in the future
Note: Using a virtual environment is highly recommended.
You can use this tool in two different ways.
You can run Terminal UI by running one of the run
scripts. If you are on Windows double-click run.bat
. Otherwise, type bash run.sh
or sh run.sh
in the terminal.
If you want full control, console commands are the way to go about using WackyPyWebM.
-
Create a webm with the
bounce
effect applied to it.python wackypywebm.py path/to/video.mp4
-
Create a webm with the
shrink
effect applied to it.python wackypywebm.py path/to/video.mp4 shrink
-
Create a webm with the
shutter
andaudiobounce
effects applied to it.python wackypywebm.py path/to/video.mp4 shutter+audiobounce
-
Create a webm with the
rotate
effect applied to it, rotating 50 degrees per second.python wackypywebm.py path/to/video.mp4 rotate --angle 50
-
Create a webm with the
bounce
effect applied to it, bouncing with a speed of 3, outputting the video to a custom path and using 8 threads in the process.python wackypywebm.py path/to/video.mp4 --tempo 3 --output path/to/output/video.webm --threads 8
-
Create a webm with the
keyframes
effect applied to it, using the keyframes from the provided file.python wackypywebm.py path/to/video.mp4 keyframes --keyframes path/to/keyframes.txt
Note: Run python wackypywebm.py --help for a full list of options.
bounce
(Default): The video's height periodically increases and decreases.shutter
: The video's width periodically increases and decreases.sporadic
: The video glitches and wobbles randomly.shrink
: The video shrinks vertically from full height to just one pixel over its entire duration.audiobounce
: The video's height changes relative to the current audio level compared to the highest within the video.audioshutter
: The video's width changes relative to the current audio level compared to the highest within the video.keyframes
: The video's height and width change based on a number of keyframes outlined in the file given as an argument. The format for said file is Described Here.
Reach out by opening a support question at GitHub issues
If you want to say thank you or/and support active development of WackyPyWebM star the project.
First off, thanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are greatly appreciated.
Please read our contribution guidelines, and thank you for being involved!
The original setup of this repository is by Nikola Damjanović.
For a full list of all authors and contributors, see the contributors page.
This project is licensed under the GPL-3.0 license.
See LICENSE for more information.
OIRNOIR's WackyWebM - The original tool on which this one is based on, with personal touches and improvements.