需要创建目录结构:
bin/ffmpeg.exe
myVideo
mygui.py

mygui.py文件代码如下:

import os
import time
import subprocess
from tkinter import *
import psutilLOG_LINE_NUM = 0class MyGui(object):def __init__(self, init_window_name):self.init_window_name = init_window_nameself.myVideo_path = os.path.abspath('myVideo')def set_init_window(self):self.init_window_name.title("屏幕录制软件 v0.1")  # 窗口名self.init_window_name.geometry('360x240+720+360')# 按钮self.init_start_bt = Button(self.init_window_name, text="开始", width=10, command=self.start)self.init_start_bt.grid(row=1, column=0, pady=10)self.init_start_bt['state'] = NORMALself.init_stop_bt = Button(self.init_window_name, text="结束", width=10, command=self.stop)self.init_stop_bt.grid(row=1, column=3, pady=10)self.init_stop_bt['state'] = DISABLED# 日志self.log_data_Text = Text(self.init_window_name, width=48, height=12)self.log_data_Text.grid(row=12, column=0, padx=10, columnspan=4)def get_cmd(self):ffmpeg_exe = os.path.abspath('bin/ffmpeg.exe')input = "-f gdigrab -i desktop -framerate 29 -vcodec h264"output = time.strftime("myVideo/%Y%m%d_%H%M%S.mpg", time.localtime())cmd = "{} {} {}".format(ffmpeg_exe, input, output)return cmddef start(self):self.write_log_to_Text("录屏开始")self.init_start_bt['state'] = DISABLEDself.init_stop_bt['state'] = NORMALcmd = self.get_cmd()self.write_log_to_Text(cmd)subprocess.Popen(cmd, shell=True)def stop(self):pids = psutil.pids()for pid in pids:p = psutil.Process(pid)if p.name() == 'ffmpeg.exe':cmd = 'taskkill /F /IM ffmpeg.exe'subprocess.Popen(cmd, shell=True)self.write_log_to_Text("录屏结束")self.init_stop_bt['state'] = DISABLEDself.init_start_bt['state'] = NORMALsubprocess.Popen("explorer.exe {}".format(self.myVideo_path))# 获取当前时间def get_current_time(self):current_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))return current_time# 日志动态打印def write_log_to_Text(self, logmsg):global LOG_LINE_NUMcurrent_time = self.get_current_time()logmsg_in = str(current_time) + " " + str(logmsg) + "\n"  # 换行if LOG_LINE_NUM <= 5:self.log_data_Text.insert(END, logmsg_in)LOG_LINE_NUM = LOG_LINE_NUM + 1else:self.log_data_Text.delete(1.0, 2.0)self.log_data_Text.insert(END, logmsg_in)def gui_start():init_window = Tk()  # 实例化出一个父窗口ZMJ_PORTAL = MyGui(init_window)# 设置根窗口默认属性ZMJ_PORTAL.set_init_window()init_window.mainloop()  # 父窗口进入事件循环,可以理解为保持窗口运行,否则界面不展示gui_start()

使用python+ffmpeg桌面录制软件相关推荐

  1. python实现屏幕录制_使用python调用ffmpeg的录制项目总结

    录制项目终于做完,不用总是提醒自己抓紧时间这样来想问题了. 在完成之后带着一些满足感,回头看看哪些地方是需要改进的,哪些地方又是有更好的替代方案,自己又有哪些不足. 下面按照软件的各部分分别做作总结: ...

  2. python做桌面软件 代码隐藏_桌面杂乱?教你50行Python代码一键整理桌面!

    我们每天上班会有很多文件来不及处理,全部都在桌面上堆放在了一起,久而久之,就造成了桌面非常的混乱,如下图所示: 乱糟糟的桌面,让心情也会潜移默化的变得烦躁,更重要的是,它会让我们的工作效率变的非常的低 ...

  3. python制作电脑软件_利用PYTHON制作桌面版爬虫软件(二)

    今天继续新的专题.主要讲解[利用PYTHON制作桌面版爬虫软件]下的如何实现界面功能(一).该讲主要包括以下三个内容:掌握如何编写主函数,运行界面. 了解pywin32模块. 如何用python识别Q ...

  4. python制作电脑软件_利用PYTHON制作桌面版爬虫软件(一)

    抱歉,对长沙房地产数据的挖掘与分析[三],想了蛮久,觉得对自己的分析结果不是很理想.等我完善好了,我再发出来吧.今天继续开启新的一专题.主要讲解如何用PYTHON实现简单的桌面软件的制作. 题外话,我 ...

  5. 如何用Python进行屏幕录制?

    文章目录 引言 gpt3.5给出的代码 更换截图函数--ImageGrab.grab 禁用imshow解决递归现象 摄像头录制代码 后期需求 引言 关于屏幕录制这个功能需求,之前用过基于ffmpeg的 ...

  6. 基于python的接口录制平台的设计与开发

    背景: 要写论文,我选择的题目是"基于python的应用研究与开发",我打算把公司的hrun-接口录制平台,从设计,到技术分析,到代码实现,进行系统的总结下. (继续完善中...) ...

  7. python需要下载哪些插件,python需要安装的软件

    python中用到哪些软件 一.Python代码编辑器1.sublime Textsublime Text是一款非常流行的代码编辑器,支持Python代码编辑,同时兼容所有平台,并且丰富的插件扩展了语 ...

  8. python能做软件开发吗-python代码能做成软件吗

    我们首先还是使用pip进行安装: pip install PyInstaller 安装完成后,直接打开命令行,输入pyinstaller,如果显示如下界面,说明安装成功. 然后就可以进行我们小程序的封 ...

  9. python编程需要什么软件-《》 学习python编程需要安装哪些软件?

    python安装教程有没有?最好是视频的 廖雪峰的python教程这里有教程,还是不错的. 学Python要安装哪些软件? 一. 安装python 1. 从python下载相应的python安装包,打 ...

最新文章

  1. 测试晶面间距软件_超逼真动图解析常用15大分析测试仪器,必收藏!SEM, 红外,紫外,核磁,质谱,TEM,ICP等...
  2. 一文读懂 volatile 关键字
  3. JZOJ 5050. 【GDOI2017模拟一试4.11】颜色树
  4. js时间戳转成日期格式
  5. 工作57:element格式化内容
  6. python list存储对象_《python解释器源码剖析》第4章--python中的list对象
  7. [******] java多线程连续打印abc
  8. Excel 中的日期格式变成时间戳
  9. Go 1.5交叉编译
  10. springMVC使用HandlerMethodArgumentResolver 自定义解析器实现请求参数绑定方法参数
  11. C++实现设计模式——Builder模式
  12. 我的公司不是家 【联想员工亲历联想大裁员】
  13. C语言中返回的0和1
  14. 论文投稿指南——中国(中文EI)期刊推荐(第6期)
  15. Linux搜索查找命令【详细整理】
  16. 哪些赛道适合程序员创业?
  17. STM32--学习笔记 常用协议总结
  18. TinyMCE 的音乐插件/mp3 music insert plugin
  19. python 处理数据类型data_python数据类型之pandas—DataFrame
  20. matlab 仿真元件封装,利用M文件与封装模块简化Simulink仿真模型.pdf

热门文章

  1. wireshark常见协议包分析1
  2. C语言如何清除控制台特定的一行,及'\b'字符的使用
  3. adb remount 失败
  4. jQuery判断email地址 邮箱地址 email regex
  5. 美通社企业新闻汇总 | 2019.2.27 | 中国大学名次在世界大学排名中继续攀升;吉利2021年发布支持5G量产车型...
  6. sqlplus 中的spool命令
  7. 炎炎夏日,深夜详谈nginx的配置中location和rewrite的语法规则(从入门到高手的第六步)
  8. css实现聚光灯特效
  9. 【转自D8】女神的QQ动了,我大喜,点开后默泪了,狠狠的吸了口烟。。。
  10. win10台式机 更换蓝牙模块后配对过的蓝牙设备无法连接 且删除失败解决方法