使用python工具自动识别视频文件中的高潮部分(第1集)

界面设计

在这里插入图片描述

主要界面代码

# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    try:
        # 创建一个App实例
        app = QApplication(sys.argv)
        # 创建一个主窗口
        mainWin = QMainWindow2()
        # 使用我们生成的UI窗口实例
        ui = mainMain(mainWin)
        mainWin.init(ui)    
        # 显示
        mainWin.show()
        # 主循环       
        sys.exit(app.exec_())
    except Exception as e:
        print(str(e))

窗口界面代码:

class QMainWindow2(QMainWindow):
    def init(self, v_obj):
        self.v_obj = v_obj
        self.removeToPos()

    def closeEvent(self, *args, **kwargs):  # real signature unknown
        # self.obj.fn_log_write()
        print("QMainWindow close")
        self.v_obj.close_win()

    def removeToPos(self):
        # 获取屏幕坐标系
        from PyQt5.QtWidgets import QDesktopWidget
        screen = QDesktopWidget().screenGeometry()
        # 获取窗口坐标系
        # size = self.geometry()
        # print(size.width(), size.height())
        # print(screen.width(), screen.height())
        newLeft = (screen.width() - screen_w) / 2
        newTop = (screen.height() - screen_h) / 2
        # print(newLeft, newTop)
        self.setFixedWidth(screen_w)
        self.setFixedHeight(screen_h)
        self.move(int(newLeft), int(newTop))

    def mySize(self):
        return self.geometry().width(), self.geometry().height()

UI界面代码:
mainMain对UI界面代码做一次封装。

class mainMain(Ui_mainmovie):
    def logger(self, msg):
        if msg:
            self.te_msg.appendPlainText(msg)
            self.te_msg.moveCursor(QTextCursor.End)

    def logger_clean(self):
        self.te_msg.clear()

Ui_mainmovie代码:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'ui_movie.ui'
#
# Created by: PyQt5 UI code generator 5.6
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_mainmovie(object):
    def setupUi(self, mainmovie):
        mainmovie.setObjectName("mainmovie")
        mainmovie.setWindowModality(QtCore.Qt.NonModal)
        mainmovie.setEnabled(True)
        mainmovie.resize(1189, 762)
        font = QtGui.QFont()
        font.setPointSize(11)
        mainmovie.setFont(font)
        mainmovie.setAutoFillBackground(True)
        self.centralwidget = QtWidgets.QWidget(mainmovie)
        self.centralwidget.setObjectName("centralwidget")
        self.tv_1 = QtWidgets.QTreeWidget(self.centralwidget)
        self.tv_1.setGeometry(QtCore.QRect(5, 80, 300, 141))
        self.tv_1.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
        self.tv_1.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
        self.tv_1.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContentsOnFirstShow)
        self.tv_1.setHorizontalScrollMode(QtWidgets.QAbstractItemView.ScrollPerPixel)
        self.tv_1.setObjectName("tv_1")
        self.tv_1.headerItem().setText(0, "1")
        self.btn_select = QtWidgets.QPushButton(self.centralwidget)
        self.btn_select.setGeometry(QtCore.QRect(250, 50, 50, 25))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.btn_select.setFont(font)
        self.btn_select.setObjectName("btn_select")
        self.le_path = QtWidgets.QLineEdit(self.centralwidget)
        self.le_path.setGeometry(QtCore.QRect(5, 10, 280, 31))
        self.le_path.setObjectName("le_path")
        self.btn_play = QtWidgets.QPushButton(self.centralwidget)
        self.btn_play.setGeometry(QtCore.QRect(311, 500, 40, 25))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.btn_play.setFont(font)
        self.btn_play.setObjectName("btn_play")
        self.btn_pause = QtWidgets.QPushButton(self.centralwidget)
        self.btn_pause.setGeometry(QtCore.QRect(361, 500, 40, 25))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.btn_pause.setFont(font)
        self.btn_pause.setObjectName("btn_pause")
        self.btn_stop = QtWidgets.QPushButton(self.centralwidget)
        self.btn_stop.setGeometry(QtCore.QRect(410, 500, 40, 25))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.btn_stop.setFont(font)
        self.btn_stop.setObjectName("btn_stop")
        self.PlaySlider = QtWidgets.QSlider(self.centralwidget)
        self.PlaySlider.setGeometry(QtCore.QRect(470, 500, 141, 25))
        self.PlaySlider.setOrientation(QtCore.Qt.Horizontal)
        self.PlaySlider.setObjectName("PlaySlider")
        self.label_play_pos = QtWidgets.QLabel(self.centralwidget)
        self.label_play_pos.setGeometry(QtCore.QRect(620, 510, 91, 25))
        font = QtGui.QFont()
        font.setPointSize(9)
        self.label_play_pos.setFont(font)
        self.label_play_pos.setObjectName("label_play_pos")
        self.btn_trans = QtWidgets.QPushButton(self.centralwidget)
        self.btn_trans.setGeometry(QtCore.QRect(810, 500, 60, 25))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.btn_trans.setFont(font)
        self.btn_trans.setObjectName("btn_trans")
        self.btn_video_cut = QtWidgets.QPushButton(self.centralwidget)
        self.btn_video_cut.setGeometry(QtCore.QRect(620, 590, 100, 25))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.btn_video_cut.setFont(font)
        self.btn_video_cut.setObjectName("btn_video_cut")
        self.btn_clear = QtWidgets.QPushButton(self.centralwidget)
        self.btn_clear.setGeometry(QtCore.QRect(900, 670, 50, 25))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.btn_clear.setFont(font)
        self.btn_clear.setObjectName("btn_clear")
        self.btn_flash = QtWidgets.QPushButton(self.centralwidget)
        self.btn_flash.setGeometry(QtCore.QRect(180, 50, 50, 25))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.btn_flash.setFont(font)
        self.btn_flash.setObjectName("btn_flash")
        self.comboBox_1 = QtWidgets.QComboBox(self.centralwidget)
        self.comboBox_1.setGeometry(QtCore.QRect(670, 500, 50, 25))
        self.comboBox_1.setObjectName("comboBox_1")
        self.comboBox_2 = QtWidgets.QComboBox(self.centralwidget)
        self.comboBox_2.setGeometry(QtCore.QRect(750, 500, 50, 25))
        self.comboBox_2.setObjectName("comboBox_2")
        self.label_convert = QtWidgets.QLabel(self.centralwidget)
        self.label_convert.setGeometry(QtCore.QRect(730, 500, 21, 25))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.label_convert.setFont(font)
        self.label_convert.setObjectName("label_convert")
        self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
        self.groupBox.setGeometry(QtCore.QRect(370, 20, 461, 251))
        self.groupBox.setAutoFillBackground(False)
        self.groupBox.setStyleSheet("background-color:rgb(255, 255, 255)")
        self.groupBox.setObjectName("groupBox")
        self.widget = QVideoWidget(self.groupBox)
        self.widget.setGeometry(QtCore.QRect(90, 50, 221, 131))
        self.widget.setFocusPolicy(QtCore.Qt.ClickFocus)
        self.widget.setAutoFillBackground(False)
        self.widget.setObjectName("widget")
        self.btn_test = QtWidgets.QPushButton(self.centralwidget)
        self.btn_test.setGeometry(QtCore.QRect(870, 590, 61, 25))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.btn_test.setFont(font)
        self.btn_test.setObjectName("btn_test")
        self.comboBox_3 = QtWidgets.QComboBox(self.centralwidget)
        self.comboBox_3.setGeometry(QtCore.QRect(1040, 510, 71, 25))
        self.comboBox_3.setObjectName("comboBox_3")
        self.tv_2 = QtWidgets.QTreeWidget(self.centralwidget)
        self.tv_2.setGeometry(QtCore.QRect(0, 240, 300, 121))
        self.tv_2.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
        self.tv_2.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
        self.tv_2.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContentsOnFirstShow)
        self.tv_2.setHorizontalScrollMode(QtWidgets.QAbstractItemView.ScrollPerPixel)
        self.tv_2.setObjectName("tv_2")
        self.tv_2.headerItem().setText(0, "1")
        self.btn_wonderful = QtWidgets.QPushButton(self.centralwidget)
        self.btn_wonderful.setGeometry(QtCore.QRect(509, 590, 100, 25))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.btn_wonderful.setFont(font)
        self.btn_wonderful.setObjectName("btn_wonderful")
        self.tv_3 = QtWidgets.QTreeWidget(self.centralwidget)
        self.tv_3.setGeometry(QtCore.QRect(0, 420, 300, 171))
        self.tv_3.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
        self.tv_3.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
        self.tv_3.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContentsOnFirstShow)
        self.tv_3.setHorizontalScrollMode(QtWidgets.QAbstractItemView.ScrollPerPixel)
        self.tv_3.setObjectName("tv_3")
        self.tv_3.headerItem().setText(0, "1")
        self.btn_comb = QtWidgets.QPushButton(self.centralwidget)
        self.btn_comb.setGeometry(QtCore.QRect(720, 590, 100, 25))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.btn_comb.setFont(font)
        self.btn_comb.setObjectName("btn_comb")
        self.btn_split_audio = QtWidgets.QPushButton(self.centralwidget)
        self.btn_split_audio.setGeometry(QtCore.QRect(400, 590, 100, 25))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.btn_split_audio.setFont(font)
        self.btn_split_audio.setObjectName("btn_split_audio")
        self.te_msg = QtWidgets.QPlainTextEdit(self.centralwidget)
        self.te_msg.setGeometry(QtCore.QRect(330, 640, 651, 71))
        self.te_msg.setObjectName("te_msg")
        self.te_msg.raise_()
        self.tv_1.raise_()
        self.btn_select.raise_()
        self.le_path.raise_()
        self.btn_play.raise_()
        self.btn_pause.raise_()
        self.btn_stop.raise_()
        self.PlaySlider.raise_()
        self.label_play_pos.raise_()
        self.btn_trans.raise_()
        self.btn_video_cut.raise_()
        self.btn_flash.raise_()
        self.comboBox_1.raise_()
        self.comboBox_2.raise_()
        self.label_convert.raise_()
        self.groupBox.raise_()
        self.btn_test.raise_()
        self.comboBox_3.raise_()
        self.tv_2.raise_()
        self.btn_wonderful.raise_()
        self.tv_3.raise_()
        self.btn_comb.raise_()
        self.btn_split_audio.raise_()
        self.btn_clear.raise_()
        mainmovie.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(mainmovie)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1189, 23))
        self.menubar.setObjectName("menubar")
        mainmovie.setMenuBar(self.menubar)

        self.retranslateUi(mainmovie)
        QtCore.QMetaObject.connectSlotsByName(mainmovie)

    def retranslateUi(self, mainmovie):
        _translate = QtCore.QCoreApplication.translate
        mainmovie.setWindowTitle(_translate("mainmovie", "视频剪辑"))
        self.btn_select.setText(_translate("mainmovie", "选择"))
        self.btn_play.setText(_translate("mainmovie", "播放"))
        self.btn_pause.setText(_translate("mainmovie", "暂停"))
        self.btn_stop.setText(_translate("mainmovie", "停止"))
        self.label_play_pos.setText(_translate("mainmovie", "0/0"))
        self.btn_trans.setText(_translate("mainmovie", "转换格式"))
        self.btn_video_cut.setText(_translate("mainmovie", "3:切分视频"))
        self.btn_clear.setText(_translate("mainmovie", "清理"))
        self.btn_flash.setText(_translate("mainmovie", "刷新"))
        self.label_convert.setText(_translate("mainmovie", "转"))
        self.groupBox.setTitle(_translate("mainmovie", "xx"))
        self.btn_test.setText(_translate("mainmovie", "test"))
        self.btn_wonderful.setText(_translate("mainmovie", "2:识别精彩片段"))
        self.btn_comb.setText(_translate("mainmovie", "4:最后组合"))
        self.btn_split_audio.setText(_translate("mainmovie", "1:分离音频"))

from PyQt5.QtMultimediaWidgets import QVideoWidget

代码设计架构

待续下一集,后续会发完整的源码。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jimn2000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值