我用python做了个录屏软件

共 920字,需浏览 2分钟

 ·

2021-06-14 21:48

最近碰到了很多录屏的需求,剪了好多视频。一直苦于网络上的录屏软件如“爱拍”、“爱剪辑”等,没充会员就有水印,限制分辨率等。而window10自带的录屏软件又只能录“一个软件”。




身为白嫖党的我,怎么可以忍受充钱呢!!!所以我决定自己写一个录屏软件,用到的库为:

  • PyQt5 制作GUI页面

  • QThread 多线程

  • Pillow  获取屏幕

  • Pyaudio 获取录音数据

  • Pynput 获取鼠标位置

  • Opencv 写入视频

  • Wave 写入音频



#Q1 加载页面

首先是加载页面,这里使用了PyQt5中的QSplashScreen,用来在启动软件的时候给出进度提示,而不需要干等。



#Q2 主页面

接着是主界面,用到了PyQt5中的QWidget,然后只有4个按钮,是不是非常简洁?从左到右功能分别是:

  • 开始录制

  • 结束录制

  • 是否录音

  • 选择保存目录



#Q3 录屏选中框

接着是录屏选中框了,它的主体就是 那4个小三角形,别看它很简单,它的实现代码可是占了全部的30%,涉及到了以下知识:

  • 窗口去边框

  • 鼠标事件重写(按下、释放、移动)

  • 画布

  • 窗口缩放

  • 窗口移动

  • 鼠标图标设置

  • 窗口透明





#Q4 录制结果保存

接下来就是录制结果了,按照按钮的功能来录制,录制结束后,右上角会有提示框:


点击提示框即可呼出视频保存目录下的资源管理器,如果是录屏+录音的话会同时保存.mp4文件以及.wav文件。如果没有选择录音的话只会保存视频文件。



#Q5 剪辑

最后一步当然是剪辑了,我用的比较多的达芬奇,把视频和音频都拉进资源管理器就可以愉快的剪辑啦!


不过目前还有一个bug,就是我发现录制后的 视频和音频文件不等长,即使用了线程同步也是一样 又是一个新坑。不过做完这个我的目的也已经达到了,就是学习PyQt5(没错,这才是我的目的)!喜欢的记得关注一下噢。说不定后续我优化一下又开源了呢


浏览 49
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报