From ff818836dd2221c544afe1fcc17369b17f90b0db Mon Sep 17 00:00:00 2001 From: tassaron Date: Thu, 18 May 2017 19:14:27 -0400 Subject: added ability to use an mp4 as the background might not be the best way to do this (dumping all the video frames to a temp location), but it works for clips of a few minutes or less --- main.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'main.py') diff --git a/main.py b/main.py index 121efa0..391e4f6 100644 --- a/main.py +++ b/main.py @@ -35,13 +35,13 @@ class Main(QtCore.QObject): self.previewWorker.moveToThread(self.previewThread) self.previewWorker.imageCreated.connect(self.showPreviewImage) - + self.previewThread.start() self.timer = QtCore.QTimer(self) self.timer.timeout.connect(self.processTask.emit) self.timer.start(500) - + window.pushButton_selectInput.clicked.connect(self.openInputFileDialog) window.pushButton_selectOutput.clicked.connect(self.openOutputFileDialog) window.pushButton_createVideo.clicked.connect(self.createAudioVisualisation) @@ -69,7 +69,7 @@ class Main(QtCore.QObject): window.textYSpinBox.setValue(375) titleFont = self.settings.value("titleFont") - if not titleFont == None: + if not titleFont == None: window.fontComboBox.setCurrentFont(QFont(titleFont)) alignment = self.settings.value("alignment") @@ -113,7 +113,7 @@ class Main(QtCore.QObject): fileName = QtGui.QFileDialog.getOpenFileName(self.window, "Open Music File", inputDir, "Music Files (*.mp3 *.wav *.ogg *.flac)"); - if not fileName == "": + if not fileName == "": self.settings.setValue("inputDir", os.path.dirname(fileName)) self.window.label_input.setText(fileName) @@ -123,7 +123,7 @@ class Main(QtCore.QObject): fileName = QtGui.QFileDialog.getSaveFileName(self.window, "Set Output Video File", outputDir, "Video Files (*.mkv)"); - if not fileName == "": + if not fileName == "": self.settings.setValue("outputDir", os.path.dirname(fileName)) self.window.label_output.setText(fileName) @@ -131,9 +131,9 @@ class Main(QtCore.QObject): backgroundDir = self.settings.value("backgroundDir", expanduser("~")) fileName = QtGui.QFileDialog.getOpenFileName(self.window, - "Open Background Image", backgroundDir, "Image Files (*.jpg *.png)"); + "Open Background Image", backgroundDir, "Image Files (*.jpg *.png);; Videos (*.mp4)"); - if not fileName == "": + if not fileName == "": self.settings.setValue("backgroundDir", os.path.dirname(fileName)) self.window.label_background.setText(fileName) self.drawPreview() @@ -147,7 +147,7 @@ class Main(QtCore.QObject): self.videoWorker.moveToThread(self.videoThread) self.videoWorker.videoCreated.connect(self.videoCreated) self.videoWorker.progressBarUpdate.connect(self.progressBarUpdated) - + self.videoThread.start() self.videoTask.emit(self.window.label_background.text(), self.window.lineEdit_title.text(), @@ -158,7 +158,7 @@ class Main(QtCore.QObject): self.window.textYSpinBox.value(), self.window.label_input.text(), self.window.label_output.text()) - + def progressBarUpdated(self, value): self.window.progressBar_create.setValue(value) @@ -186,7 +186,7 @@ class Main(QtCore.QObject): if __name__ == "__main__": app = QtGui.QApplication(sys.argv) window = uic.loadUi("main.ui") - + main = Main(window) atexit.register(main.cleanUp) -- cgit v1.2.3 From 898ac591e36a0d959db8c34fb6c5960a7eee9789 Mon Sep 17 00:00:00 2001 From: tassaron Date: Thu, 18 May 2017 19:48:52 -0400 Subject: added back in spaces deleted by my editor --- main.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'main.py') diff --git a/main.py b/main.py index 391e4f6..69a01dd 100644 --- a/main.py +++ b/main.py @@ -35,13 +35,13 @@ class Main(QtCore.QObject): self.previewWorker.moveToThread(self.previewThread) self.previewWorker.imageCreated.connect(self.showPreviewImage) - + self.previewThread.start() self.timer = QtCore.QTimer(self) self.timer.timeout.connect(self.processTask.emit) self.timer.start(500) - + window.pushButton_selectInput.clicked.connect(self.openInputFileDialog) window.pushButton_selectOutput.clicked.connect(self.openOutputFileDialog) window.pushButton_createVideo.clicked.connect(self.createAudioVisualisation) @@ -69,7 +69,7 @@ class Main(QtCore.QObject): window.textYSpinBox.setValue(375) titleFont = self.settings.value("titleFont") - if not titleFont == None: + if not titleFont == None: window.fontComboBox.setCurrentFont(QFont(titleFont)) alignment = self.settings.value("alignment") @@ -113,7 +113,7 @@ class Main(QtCore.QObject): fileName = QtGui.QFileDialog.getOpenFileName(self.window, "Open Music File", inputDir, "Music Files (*.mp3 *.wav *.ogg *.flac)"); - if not fileName == "": + if not fileName == "": self.settings.setValue("inputDir", os.path.dirname(fileName)) self.window.label_input.setText(fileName) @@ -123,7 +123,7 @@ class Main(QtCore.QObject): fileName = QtGui.QFileDialog.getSaveFileName(self.window, "Set Output Video File", outputDir, "Video Files (*.mkv)"); - if not fileName == "": + if not fileName == "": self.settings.setValue("outputDir", os.path.dirname(fileName)) self.window.label_output.setText(fileName) @@ -131,9 +131,9 @@ class Main(QtCore.QObject): backgroundDir = self.settings.value("backgroundDir", expanduser("~")) fileName = QtGui.QFileDialog.getOpenFileName(self.window, - "Open Background Image", backgroundDir, "Image Files (*.jpg *.png);; Videos (*.mp4)"); + "Open Background Image", backgroundDir, "Image Files (*.jpg *.png);; Video Files (*.mp4)"); - if not fileName == "": + if not fileName == "": self.settings.setValue("backgroundDir", os.path.dirname(fileName)) self.window.label_background.setText(fileName) self.drawPreview() @@ -147,7 +147,7 @@ class Main(QtCore.QObject): self.videoWorker.moveToThread(self.videoThread) self.videoWorker.videoCreated.connect(self.videoCreated) self.videoWorker.progressBarUpdate.connect(self.progressBarUpdated) - + self.videoThread.start() self.videoTask.emit(self.window.label_background.text(), self.window.lineEdit_title.text(), @@ -158,7 +158,7 @@ class Main(QtCore.QObject): self.window.textYSpinBox.value(), self.window.label_input.text(), self.window.label_output.text()) - + def progressBarUpdated(self, value): self.window.progressBar_create.setValue(value) @@ -186,7 +186,7 @@ class Main(QtCore.QObject): if __name__ == "__main__": app = QtGui.QApplication(sys.argv) window = uic.loadUi("main.ui") - + main = Main(window) atexit.register(main.cleanUp) -- cgit v1.2.3 From e77199219521ab819730574c17a819c7e2bfe84d Mon Sep 17 00:00:00 2001 From: tassaron Date: Sun, 21 May 2017 22:44:48 -0400 Subject: more loading feedback --- main.py | 4 ++++ main.ui | 5 ++++- video_thread.py | 15 ++++++++++----- 3 files changed, 18 insertions(+), 6 deletions(-) (limited to 'main.py') diff --git a/main.py b/main.py index 69a01dd..ac7acbc 100644 --- a/main.py +++ b/main.py @@ -147,6 +147,7 @@ class Main(QtCore.QObject): self.videoWorker.moveToThread(self.videoThread) self.videoWorker.videoCreated.connect(self.videoCreated) self.videoWorker.progressBarUpdate.connect(self.progressBarUpdated) + self.videoWorker.progressBarSetText.connect(self.progressBarSetText) self.videoThread.start() self.videoTask.emit(self.window.label_background.text(), @@ -163,6 +164,9 @@ class Main(QtCore.QObject): def progressBarUpdated(self, value): self.window.progressBar_create.setValue(value) + def progressBarSetText(self, value): + self.window.progressBar_create.setFormat(value) + def videoCreated(self): self.videoThread.quit() self.videoThread.wait() diff --git a/main.ui b/main.ui index 5b71d1c..c500905 100644 --- a/main.ui +++ b/main.ui @@ -386,7 +386,10 @@ 24 - false + true + + + Qt::AlignCenter diff --git a/video_thread.py b/video_thread.py index 1c466fc..bd832be 100644 --- a/video_thread.py +++ b/video_thread.py @@ -11,6 +11,7 @@ class Worker(QtCore.QObject): videoCreated = pyqtSignal() progressBarUpdate = pyqtSignal(int) + progressBarSetText = pyqtSignal(str) def __init__(self, parent=None): QtCore.QObject.__init__(self) @@ -31,6 +32,10 @@ class Worker(QtCore.QObject): xOffset, yOffset) + progressBarValue = 0 + self.progressBarUpdate.emit(progressBarValue) + self.progressBarSetText.emit('Loading background image…') + backgroundFrames = self.core.parseBaseImage(backgroundImage) if len(backgroundFrames) < 2: # the base image is not a video so we can draw it now @@ -38,9 +43,8 @@ class Worker(QtCore.QObject): else: # base images will be drawn while drawing the audio bars imBackground = None - - self.progressBarUpdate.emit(0) - + + self.progressBarSetText.emit('Loading audio file…') completeAudioArray = self.core.readAudioFile(inputFile) # test if user has libfdk_aac @@ -79,9 +83,8 @@ class Worker(QtCore.QObject): smoothConstantDown = 0.08 smoothConstantUp = 0.8 lastSpectrum = None - progressBarValue = 0 sampleSize = 1470 - + numpy.seterr(divide='ignore') bgI = 0 for i in range(0, len(completeAudioArray), sampleSize): @@ -110,6 +113,7 @@ class Worker(QtCore.QObject): if progressBarValue + 1 <= (i / len(completeAudioArray)) * 100: progressBarValue = numpy.floor((i / len(completeAudioArray)) * 100) self.progressBarUpdate.emit(progressBarValue) + self.progressBarSetText.emit('%s%%' % str(int(progressBarValue))) numpy.seterr(all='print') @@ -121,4 +125,5 @@ class Worker(QtCore.QObject): out_pipe.wait() print("Video file created") self.progressBarUpdate.emit(100) + self.progressBarSetText.emit('100%') self.videoCreated.emit() -- cgit v1.2.3