aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: abb9a73f533507abe1f4fe3969347d93c79cd1fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# audio-visualizer-python
**We need a good name that is not as generic as "audio-visualizer-python"!**

This is a little GUI tool which creates an audio visualization video from an input audio file. Different components can be added and layered to change the resulting video and add images, videos, gradients, text, etc. Encoding options can be changed with a variety of different output containers.

Projects can be created from the GUI and used in commandline mode for easy automation of video production. For more information use `avp --help` or for help with a particular component use `avp -c 0 componentName help`.

The program works on Linux, macOS, and Windows. If you encounter problems running it or have other bug reports or features that you wish to see implemented, please fork the project and submit a pull request and/or file an issue on this project. To gather extra information to help us debug the problem, run `avp -t` and include the text file it creates.


# Examples
## What the app creates
* **[YouTube: A day in spring](https://www.youtube.com/watch?v=-M3jR1NuJHM)**

## Graphical version demo
* [YouTube: Audio Visualizer demonstration](https://www.youtube.com/watch?v=EVt2ckQs1Yg)

## Commandline snippets
* Create a simple visualization: `avp -c 0 classic -i something.mp3 -o output.mp4`
* Create the same visualization but with split layout and more extreme fluctuations: `avp -c 0 classic layout=split scale=40 -i something.mp3 -o output.mp4`
* Create a template project named `template` with your typical visualizers and watermarks using the GUI, then add text to the top layer from commandline: `avp template -c 99 text "title=Episode 371" -i /this/weeks/audio.ogg -o out`


# Dependencies
* Python 3.10
* FFmpeg 4.4.1
* PyQt5 (Qt v5.15.3)
* Pillow
* NumPy
* Pytest


# Installation
## Manual installation on Linux (tested on Ubuntu 22.04)
* Install ffmpeg: `sudo apt install ffmpeg`
* Install pip: `sudo apt install python3-pip`
* Download this repo and run `pip3 install --user .` in this directory
* Run the program with `avp` or `python3 -m avp`
* **Sidenote:** If using a Python virtual environment, `pip3 install --system-site-packages --copies` may be useful to copy system packages when installing. This can be useful if you have difficulty installing PyQt5 using pip or wish to use the distro's package manager instead.


## Manual installation on Windows
* Install Python from the Windows Store
* Add Python to your system PATH (it should ask during the installation process)
* Download this repo
* Open command prompt, `cd` into the repo directory, and run: `pip install --user .`
* Download and install ffmpeg from [https://www.ffmpeg.org/download.html](https://www.ffmpeg.org/download.html). You can use the static builds.
* Add ffmpeg to the system PATH as well, or copy ffmpeg.exe into the directory with the rest of the app
* Now run `avp` from a command prompt window to start the app


## Manual installation on macOS
* **[Outdated]**: No one has updated these instructions for a while.
* Install [Homebrew](http://brew.sh/)
* Use the following commands to install the needed dependencies:
```
brew install python3
brew install ffmpeg --with-fdk-aac --with-ffplay --with-freetype --with-libass --with-libquvi --with-libvorbis --with-libvpx --with-opus --with-x265
brew install qt
brew install sip --with-python3
brew install pyqt --with-python3
pip3 install --upgrade pip
pip3 install pillow
pip3 install numpy
```
Download audio-visualizer-python from this repository and run it with `python3 main.py`.


# Faster Export Times
* [Pillow-SIMD](https://github.com/uploadcare/pillow-simd) may be used as a drop-in replacement for Pillow if you desire faster video export times, but it must be compiled from source. For help installing dependencies to compile Pillow-SIMD, see the [Pillow installation guide](http://pillow.readthedocs.io/en/3.1.x/installation.html).
* **Warning:** [Compiling from source is difficult on Windows](http://pillow.readthedocs.io/en/3.1.x/installation.html#building-on-windows).


# License
audio-visualizer-python is licensed under the MIT license.