First commit
This commit is contained in:
commit
c2361ac703
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# IDE files
|
||||||
|
.idea/
|
62
program.py
Normal file
62
program.py
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
import os
|
||||||
|
import re
|
||||||
|
from PyQt5 import QtWidgets, uic, QtCore
|
||||||
|
import sys
|
||||||
|
from PyQt5.QtGui import QIcon
|
||||||
|
import ffmpeg
|
||||||
|
from PyQt5.QtWidgets import QFileDialog
|
||||||
|
|
||||||
|
|
||||||
|
class Ui(QtWidgets.QWidget):
|
||||||
|
def __init__(self):
|
||||||
|
super(Ui, self).__init__()
|
||||||
|
uic.loadUi('userinterface.ui', self)
|
||||||
|
|
||||||
|
self.file_path = ""
|
||||||
|
|
||||||
|
self.setWindowIcon(QIcon('icon.png'))
|
||||||
|
self.setWindowTitle("Videoconverter")
|
||||||
|
self.setStyleSheet("background-color:#3D3D3D;")
|
||||||
|
self.convertPB.hide()
|
||||||
|
|
||||||
|
|
||||||
|
def onConvertBtnClicked():
|
||||||
|
self.convertPB.hide()
|
||||||
|
self.setCursor(QtCore.Qt.WaitCursor)
|
||||||
|
#self.setEnabled(False)
|
||||||
|
file_folder = re.split(os.sep, self.file_path[::-1])
|
||||||
|
file_folder.pop(0)
|
||||||
|
file_folder = "/".join(file_folder)
|
||||||
|
file_folder = file_folder[::-1]
|
||||||
|
if str(self.OutputTypeCB.currentText()) != "Output type":
|
||||||
|
ffmpeg.input(self.file_path).output(file_folder + os.sep + str(self.outputFileNameLE.text()) + "." + str(self.OutputTypeCB.currentText())).run()
|
||||||
|
else:
|
||||||
|
print("CHOOSE AN OUTPUT TYPE!\n\n")
|
||||||
|
self.setEnabled(True)
|
||||||
|
self.fileInputBtn.setEnabled(True)
|
||||||
|
self.setCursor(QtCore.Qt.ArrowCursor)
|
||||||
|
|
||||||
|
|
||||||
|
def onFileInputBtnClicked():
|
||||||
|
fileDialog = QFileDialog()
|
||||||
|
self.file_path, _ = fileDialog.getOpenFileName(self, "Open Media File", os.environ['HOME'] + os.sep + "Videos", "*.webm *.mp4 *.mkv *.mpg *.mpeg *.mp3 *.m4a *.wav")
|
||||||
|
#self.file_path = fileDialog.getExistingDirectory(self)
|
||||||
|
print(self.file_path)
|
||||||
|
filename = re.split(os.sep, self.file_path[::-1])
|
||||||
|
filename = filename[0][::]
|
||||||
|
filename = filename[::-1]
|
||||||
|
self.fileInputBtn.setText("Get Input File – " + filename)
|
||||||
|
#self.fileInputBtn.setEnabled(False)
|
||||||
|
|
||||||
|
self.convertBtn.clicked.connect(onConvertBtnClicked)
|
||||||
|
self.fileInputBtn.clicked.connect(onFileInputBtnClicked)
|
||||||
|
|
||||||
|
self.dragL.dragEnterEvent = lambda e: print(e.mimeData().data())
|
||||||
|
self.dragL.dropEvent = lambda e: print(self.dragL.setText(e.mimeData().data()))
|
||||||
|
self.dragL.hide()
|
||||||
|
|
||||||
|
self.show()
|
||||||
|
|
||||||
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
|
window = Ui()
|
||||||
|
app.exec_()
|
149
userinterface.ui
Normal file
149
userinterface.ui
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>Form</class>
|
||||||
|
<widget class="QWidget" name="Form">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>747</width>
|
||||||
|
<height>318</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Form</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="titleLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string><html><head/><body><p align="center"><span style=" font-size:18pt; font-weight:600; color:#8ae234;">FFmpeg </span><span style=" font-size:18pt; font-weight:600; color:#729fcf;">video converter</span></p></body></html></string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="dragL">
|
||||||
|
<property name="acceptDrops">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::Box</enum>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Drag your file here</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QGridLayout" name="gridLayout"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="fileInputBtn">
|
||||||
|
<property name="text">
|
||||||
|
<string>Get Input File</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="OutputTypeCB">
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Output type</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>mov</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>webm</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>mp4</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>mkv</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>mpg</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>mp3</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>m4a</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="outputFileNameLE">
|
||||||
|
<property name="placeholderText">
|
||||||
|
<string>Output filename (without extension)</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="convertBtn">
|
||||||
|
<property name="text">
|
||||||
|
<string>Convert!</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QProgressBar" name="convertPB">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="cursor">
|
||||||
|
<cursorShape>WaitCursor</cursorShape>
|
||||||
|
</property>
|
||||||
|
<property name="toolTipDuration">
|
||||||
|
<number>4</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="textVisible">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="invertedAppearance">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="textDirection">
|
||||||
|
<enum>QProgressBar::TopToBottom</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
Loading…
Reference in New Issue
Block a user