add setup.py, automatic discovery for avconv/ffmpeg, add installation help to readme
This commit is contained in:
parent
88105403e9
commit
38cfae0b4e
|
@ -1,2 +1,3 @@
|
|||
__pycache__
|
||||
settings.ini
|
||||
settings.ini
|
||||
build/*
|
19
README.md
19
README.md
|
@ -13,6 +13,25 @@ Dependencies
|
|||
------------
|
||||
You need Python 3, PyQt4, PIL (or Pillow), numpy and the program ffmpeg, which is used to read the audio and render the video.
|
||||
|
||||
Installation
|
||||
------------
|
||||
### Manual installation on Ubuntu
|
||||
* Get all the python stuff: `sudo apt-get install python3 python3-pyqt4 python3-pil python3-numpy`
|
||||
* Get ffmpeg/avconv:
|
||||
You can either use `avconv` from the standard repositories (package `libav-tools`) or get `ffmpeg` from the [website](http://ffmpeg.org/) or from a PPA (e.g. [https://launchpad.net/~jon-severinsson/+archive/ubuntu/ffmpeg](https://launchpad.net/~jon-severinsson/+archive/ubuntu/ffmpeg). The program does automatically detect if you don't have the ffmpeg binary and tries to use avconv instead.
|
||||
|
||||
Download audio-visualizer-python from this repository and run it with `python3 main.py`.
|
||||
|
||||
### Manual installation on Windows
|
||||
* Download and install Python 3.4 from [https://www.python.org/downloads/windows/](https://www.python.org/downloads/windows/)
|
||||
* Download and install PyQt4 for Python 3.4 and Qt4 from [http://www.riverbankcomputing.co.uk/software/pyqt/download](http://www.riverbankcomputing.co.uk/software/pyqt/download)
|
||||
* Download and install numpy from [http://www.scipy.org/scipylib/download.html](http://www.scipy.org/scipylib/download.html). There is an installer available, make sure to get the one for Python 3.4
|
||||
* Download and install Pillow from [https://pypi.python.org/pypi/Pillow/2.7.0](https://pypi.python.org/pypi/Pillow/2.7.0)
|
||||
* 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 your system PATH environment variable.
|
||||
|
||||
Download audio-visualizer-python from this repository and run it from the command line with `C:\Python34\python.exe main.py`.
|
||||
|
||||
Example
|
||||
-------
|
||||
You can find an example video here:
|
||||
|
|
14
core.py
14
core.py
|
@ -1,4 +1,4 @@
|
|||
import sys, io
|
||||
import sys, io, os
|
||||
from PyQt4 import QtCore, QtGui, uic
|
||||
from PyQt4.QtGui import QPainter, QColor
|
||||
from os.path import expanduser
|
||||
|
@ -13,10 +13,18 @@ class Core():
|
|||
self.lastBackgroundImage = ""
|
||||
self._image = None
|
||||
|
||||
self.FFMPEG_BIN = self.findFfmpeg()
|
||||
|
||||
def findFfmpeg(self):
|
||||
if sys.platform == "win32":
|
||||
self.FFMPEG_BIN = "ffmpeg.exe"
|
||||
return "ffmpeg.exe"
|
||||
else:
|
||||
self.FFMPEG_BIN = "ffmpeg" # on Linux and Mac OS
|
||||
try:
|
||||
with open(os.devnull, "w") as f:
|
||||
sp.check_call(['ffmpeg', '-version'], stdout=f, stderr=f)
|
||||
return "ffmpeg"
|
||||
except:
|
||||
return "avconv"
|
||||
|
||||
def drawBaseImage(self, backgroundImage, titleText, titleFont):
|
||||
|
||||
|
|
2
main.py
2
main.py
|
@ -109,6 +109,8 @@ class Main(QtCore.QObject):
|
|||
self.drawPreview()
|
||||
|
||||
def createAudioVisualisation(self):
|
||||
ffmpeg_cmd = self.settings.value("ffmpeg_cmd", expanduser("~"))
|
||||
|
||||
self.videoThread = QtCore.QThread(self)
|
||||
self.videoWorker = video_thread.Worker(self)
|
||||
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
from cx_Freeze import setup, Executable
|
||||
|
||||
# Dependencies are automatically detected, but it might need
|
||||
# fine tuning.
|
||||
buildOptions = dict(packages = [], excludes = [
|
||||
"apport",
|
||||
"apt",
|
||||
"ctypes",
|
||||
"curses",
|
||||
"distutils",
|
||||
"email",
|
||||
"html",
|
||||
"http",
|
||||
"json",
|
||||
"xmlrpc",
|
||||
"nose"
|
||||
], include_files = ["main.ui"])
|
||||
|
||||
import sys
|
||||
base = 'Win32GUI' if sys.platform=='win32' else None
|
||||
|
||||
executables = [
|
||||
Executable('main.py', base=base, targetName = 'audio-visualizer-python')
|
||||
]
|
||||
|
||||
setup(name='audio-visualizer-python',
|
||||
version = '1.0',
|
||||
description = 'a little GUI tool to render visualization videos of audio files',
|
||||
options = dict(build_exe = buildOptions),
|
||||
executables = executables)
|
Reference in New Issue