def createAudioVisualisation(self): ffmpeg_cmd = self.settings.value("ffmpeg_cmd", expanduser("~")) self.videoThread = QtCore.QThread(self) self.videoWorker = video_thread.Worker(self) 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(), self.window.fontComboBox.currentFont(), self.window.label_input.text(), self.window.label_output.text())
def createAudioVisualisation(self): ffmpeg_cmd = self.settings.value("ffmpeg_cmd", expanduser("~")) self.videoThread = QtCore.QThread(self) self.videoWorker = video_thread.Worker(self) 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(), self.window.lineEdit_title.text(), self.window.fontComboBox.currentFont(), self.window.fontsizeSpinBox.value(), self.window.alignmentComboBox.currentIndex(), self.window.textXSpinBox.value(), self.window.textYSpinBox.value(), core.Core.RGBFromString(self.window.lineEdit_textColor.text()), core.Core.RGBFromString(self.window.lineEdit_visColor.text()), self.window.label_input.text(), self.window.label_output.text())
def createAudioVisualisation(self): if self.window.label_input.text() == "": self.progressBarSetText("Error: No input") return if self.window.label_output.text() == "": self.progressBarSetText("Error: No output") return if self.window.label_background.text() == "": self.progressBarSetText("Error: No background") return self.videoThread = QThread(self) self.videoWorker = video_thread.Worker(self) self.videoWorker.moveToThread(self.videoThread) self.videoWorker.videoCreated.connect(self.videoCreated) self.videoWorker.progressBarUpdate.connect(self.progressBarUpdated) self.videoWorker.progressBarSetText.connect(self.progressBarSetText) current_font = QFont() current_font.fromString(self.settings.value("titleFont")) self.videoThread.start() self.videoTask.emit( self.window.label_background.text(), self.window.lineEdit_title.text(), current_font, float(self.window.comboBox_video_fps.currentText()), self.window.alignmentComboBox.currentIndex(), self.window.textXSpinBox.value(), self.window.textYSpinBox.value(), int(self.window.lineEdit_video_res_x.text()), int(self.window.lineEdit_video_res_y.text()), core.Core.RGBFromString(self.settings.value("textColor")), core.Core.RGBFromString(self.settings.value("visColor")), self.window.label_input.text(), self.window.label_output.text(), )
def __init__(self): QtCore.QObject.__init__(self) import argparse self.parser = argparse.ArgumentParser( description='Create a visualization for an audio file') self.parser.add_argument('-i', '--input', dest='input', help='input audio file', required=True) self.parser.add_argument('-o', '--output', dest='output', help='output video file', required=True) self.parser.add_argument('-b', '--background', dest='bgimage', help='background image file', required=True) self.parser.add_argument('-t', '--text', dest='text', help='title text', required=True) self.parser.add_argument('-f', '--font', dest='font', help='title font', required=False) self.parser.add_argument('-s', '--fontsize', dest='fontsize', help='title font size', required=False) self.parser.add_argument('-c', '--textcolor', dest='textcolor', help='title text color in r,g,b format', required=False) self.parser.add_argument('-C', '--viscolor', dest='viscolor', help='visualization color in r,g,b format', required=False) self.parser.add_argument('-x', '--xposition', dest='xposition', help='x position', required=False) self.parser.add_argument('-y', '--yposition', dest='yposition', help='y position', required=False) self.parser.add_argument('-a', '--alignment', dest='alignment', help='title alignment', required=False, type=int, choices=[0, 1, 2]) self.args = self.parser.parse_args() self.settings = QSettings('settings.ini', QSettings.IniFormat) # load colours as tuples from comma-separated strings self.textColor = core.Core.RGBFromString( self.settings.value("textColor", '255, 255, 255')) self.visColor = core.Core.RGBFromString( self.settings.value("visColor", '255, 255, 255')) if self.args.textcolor: self.textColor = core.Core.RGBFromString(self.args.textcolor) if self.args.viscolor: self.visColor = core.Core.RGBFromString(self.args.viscolor) # font settings if self.args.font: self.font = QFont(self.args.font) else: self.font = QFont(self.settings.value("titleFont", QFont())) if self.args.fontsize: self.fontsize = int(self.args.fontsize) else: self.fontsize = int(self.settings.value("fontSize", 35)) if self.args.alignment: self.alignment = int(self.args.alignment) else: self.alignment = int(self.settings.value("alignment", 0)) if self.args.xposition: self.textX = int(self.args.xposition) else: self.textX = int(self.settings.value("xPosition", 70)) if self.args.yposition: self.textY = int(self.args.yposition) else: self.textY = int(self.settings.value("yPosition", 375)) ffmpeg_cmd = self.settings.value("ffmpeg_cmd", expanduser("~")) self.videoThread = QtCore.QThread(self) self.videoWorker = video_thread.Worker(self) self.videoWorker.moveToThread(self.videoThread) self.videoWorker.videoCreated.connect(self.videoCreated) self.videoThread.start() self.videoTask.emit(self.args.bgimage, self.args.text, self.font, self.fontsize, self.alignment, self.textX, self.textY, self.textColor, self.visColor, self.args.input, self.args.output)
def __init__(self): QObject.__init__(self) import argparse self.parser = argparse.ArgumentParser( description="Create a visualization for an audio file") self.parser.add_argument("-i", "--input", dest="input", help="input audio file", required=True) self.parser.add_argument("-o", "--output", dest="output", help="output video file", required=True) self.parser.add_argument( "-b", "--background", dest="bgimage", help="background image file", required=True, ) self.parser.add_argument("-t", "--text", dest="text", help="title text", required=True) self.parser.add_argument("-f", "--font", dest="font", help="title font", required=False) self.parser.add_argument( "-r", "--resolution", dest="resolution", help="video resolution (WxH, e.g. 1280x720)", required=False, ) self.parser.add_argument("--fps", dest="fps", help="frames per second", required=False) self.parser.add_argument("-s", "--fontsize", dest="fontsize", help="title font size", required=False) self.parser.add_argument( "-c", "--textcolor", dest="textcolor", help="title text color in r,g,b format", required=False, ) self.parser.add_argument( "-C", "--viscolor", dest="viscolor", help="visualization color in r,g,b format", required=False, ) self.parser.add_argument( "-x", "--xposition", dest="xposition", help="text x position", required=False, ) self.parser.add_argument( "-y", "--yposition", dest="yposition", help="text y position", required=False, ) self.parser.add_argument( "-a", "--alignment", dest="alignment", help="title alignment", required=False, type=int, choices=[0, 1, 2], ) self.args = self.parser.parse_args() self.settings = QSettings("settings.ini", QSettings.IniFormat) # load colours as tuples from comma-separated strings self.textColor = core.Core.RGBFromString( self.settings.value("textColor", "255, 255, 255")) self.visColor = core.Core.RGBFromString( self.settings.value("visColor", "255, 255, 255")) if self.args.textcolor: self.textColor = core.Core.RGBFromString(self.args.textcolor) if self.args.viscolor: self.visColor = core.Core.RGBFromString(self.args.viscolor) # font settings if self.args.font: self.font = QFont(self.args.font, self.fontsize) else: self.font = QFont() self.font.fromString(self.settings.value("titleFont")) if self.args.fontsize: self.font.setPointSize(self.fontsize) if self.args.alignment: self.alignment = int(self.args.alignment) else: self.alignment = int(self.settings.value("alignment", 0)) if self.args.fps: self.fps = float(self.args.fps) else: self.fps = float(self.settings.value("fps", 30)) if self.args.resolution: x, y = self.args.resolution.split("x") self.resX = int(x) self.resY = int(y) else: self.resX = int(self.settings.value("xResolution", 1280)) self.resY = int(self.settings.value("yResolution", 720)) if self.args.xposition: self.textX = int(self.args.xposition) else: self.textX = int(self.settings.value("xPosition", 0)) if self.args.yposition: self.textY = int(self.args.yposition) else: self.textY = int(self.settings.value("yPosition", 0)) self.videoThread = QThread(self) self.videoWorker = video_thread.Worker(self) self.videoWorker.moveToThread(self.videoThread) self.videoWorker.videoCreated.connect(self.videoCreated) self.videoThread.start() self.videoTask.emit( self.args.bgimage, self.args.text, self.font, self.fps, self.alignment, self.textX, self.textY, self.resX, self.resY, self.textColor, self.visColor, self.args.input, self.args.output, )
def __init__(self, window): QtCore.QObject.__init__(self) # print('main thread id: {}'.format(QtCore.QThread.currentThreadId())) self.window = window self.core = core.Core() self.settings = QSettings('settings.ini', QSettings.IniFormat) # load colors as tuples from a comma-separated string self.textColor = core.Core.RGBFromString( self.settings.value("textColor", '255, 255, 255')) self.visColor = core.Core.RGBFromString( self.settings.value("visColor", '255, 255, 255')) self.previewQueue = Queue() self.previewThread = QtCore.QThread(self) self.previewWorker = preview_thread.Worker(self, self.previewQueue) 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) #window.pushButton_selectBackground.clicked.connect(self.openBackgroundFileDialog) print("5") fileName = "siraj.mp3" if not fileName == "": #self.settings.setValue("inputDir", os.path.dirname(fileName)) self.window.label_input.setText(fileName) fileName = "siraj.mkv" if not fileName == "": #self.settings.setValue("outputDir", os.path.dirname(fileName)) self.window.label_output.setText(fileName) fileName = "siraj.jpg" if not fileName == "": #self.settings.setValue("backgroundDir", os.path.dirname(fileName)) self.window.label_background.setText(fileName) #window.pushButton_createVideo.clicked.connect(self.createAudioVisualisation) window.progressBar_create.setValue(0) window.setWindowTitle("Audio Visualizer") window.pushButton_selectInput.setText("Select Input Music File") window.pushButton_selectOutput.setText("Select Output Video File") window.pushButton_selectBackground.setText("Select Background Image") window.label_font.setText("Title Font") window.label_alignment.setText("Title Options") window.label_colorOptions.setText("Colors") window.label_fontsize.setText("Fontsize") window.label_title.setText("Title Text") window.label_textColor.setText("Text:") window.label_visColor.setText("Visualizer:") #window.pushButton_createVideo.setText("Create Video") window.groupBox_create.setTitle("Create") window.groupBox_settings.setTitle("Settings") window.groupBox_preview.setTitle("Preview") window.alignmentComboBox.addItem("Left") window.alignmentComboBox.addItem("Middle") window.alignmentComboBox.addItem("Right") window.fontsizeSpinBox.setValue(35) window.textXSpinBox.setValue(70) window.textYSpinBox.setValue(375) window.lineEdit_textColor.setText('%s,%s,%s' % self.textColor) window.lineEdit_visColor.setText('%s,%s,%s' % self.visColor) window.pushButton_textColor.clicked.connect( lambda: self.pickColor('text')) window.pushButton_visColor.clicked.connect( lambda: self.pickColor('vis')) btnStyle = "QPushButton { background-color : %s; outline: none; }" % QColor( *self.textColor).name() window.pushButton_textColor.setStyleSheet(btnStyle) btnStyle = "QPushButton { background-color : %s; outline: none; }" % QColor( *self.visColor).name() window.pushButton_visColor.setStyleSheet(btnStyle) titleFont = self.settings.value("titleFont") if not titleFont == None: window.fontComboBox.setCurrentFont(QFont(titleFont)) alignment = self.settings.value("alignment") if not alignment == None: window.alignmentComboBox.setCurrentIndex(int(alignment)) fontSize = self.settings.value("fontSize") if not fontSize == None: window.fontsizeSpinBox.setValue(int(fontSize)) xPosition = self.settings.value("xPosition") if not xPosition == None: window.textXSpinBox.setValue(int(xPosition)) yPosition = self.settings.value("yPosition") if not yPosition == None: window.textYSpinBox.setValue(int(yPosition)) window.fontComboBox.currentFontChanged.connect(self.drawPreview) window.lineEdit_title.textChanged.connect(self.drawPreview) window.alignmentComboBox.currentIndexChanged.connect(self.drawPreview) window.textXSpinBox.valueChanged.connect(self.drawPreview) window.textYSpinBox.valueChanged.connect(self.drawPreview) window.fontsizeSpinBox.valueChanged.connect(self.drawPreview) window.lineEdit_textColor.textChanged.connect(self.drawPreview) window.lineEdit_visColor.textChanged.connect(self.drawPreview) #self.drawPreview() ffmpeg_cmd = self.settings.value("ffmpeg_cmd", expanduser("~")) self.videoThread = QtCore.QThread(self) self.videoWorker = video_thread.Worker(self) 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(), self.window.lineEdit_title.text(), self.window.fontComboBox.currentFont(), self.window.fontsizeSpinBox.value(), self.window.alignmentComboBox.currentIndex(), self.window.textXSpinBox.value(), self.window.textYSpinBox.value(), core.Core.RGBFromString(self.window.lineEdit_textColor.text()), core.Core.RGBFromString(self.window.lineEdit_visColor.text()), self.window.label_input.text(), self.window.label_output.text())