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())
Esempio n. 2
0
    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(),
        )
Esempio n. 4
0
    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,
        )
Esempio n. 6
0
    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())