我用python做了个录屏软件
最近碰到了很多录屏的需求,剪了好多视频。一直苦于网络上的录屏软件如“爱拍”、“爱剪辑”等,没充会员就有水印,限制分辨率等。而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(没错,这才是我的目的)!喜欢的记得关注一下噢。说不定后续我优化一下又开源了呢