介绍
这篇文章主要介绍Python如何实现屏幕录制功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
Python实现屏幕录制功能的示例:
“““python +, opencv 实现屏幕录制_by -_Zjh_"““ 得到PIL import  ImageGrab import numpy  as np import cv2 时间=p ImageGrab.grab() #获得当前屏幕 k=np.zeros ((200200), np.uint8) a、b=p.size #获得当前屏幕的大小 时间=fourcc cv2.VideoWriter_fourcc (* & # 39; xvid # 39;) #编码格式 时间=video cv2.VideoWriter (& # 39; test.avi& # 39;,, fourcc,, 16日,(a, b) #输出文件命名为test.mp4,帧率为16,可以自己设置 while 真正的: ,我=,ImageGrab.grab () ,imm=cv2.cvtColor (np.array (im), cv2.COLOR_RGB2BGR) #转为opencv的BGR格式 ,video.write (imm) ,cv2.imshow (& # 39; imm # 39;,, k) ,if cv2.waitKey (1),,, 0 xff ==,奥德(& # 39;提问# 39;): ,打破 video.release () cv2.destroyAllWindows ()
在停止录制的时候我自己采用的是opencv的q键盘退出,实际上还是会有个黑框弹出来,如果有更好的退出录制方式请留下您的建议,本次还有个不足的地方是没有增加录制声音的功能。最近事情太多了,等放假了出一个完整版的GUI程序。好了今天就先到这了,快要考线性系统这门课了,得开始复习了
最近接触了pynput这个强大的三方库,可以全局监听键盘,鼠标事件。把以前的屏幕录制的程序改进一下!请忽略以前的程序,直接看这个!
“““ python 屏幕录制改进版,无opencv黑框显示! @zhou 2020/1/29_ “““ 得到PIL import  ImageGrab import numpy  as np import cv2 import datetime 得到pynput import 键盘 import 线程 国旗=False #停止标志位 def video_record (): ,“““ ,屏幕录制! ,返回: ,“““=,,name  datetime.datetime.now () .strftime (& # 39; Y % - % - % d % H - % - % & # 39;), #当前的时间=,,p  ImageGrab.grab(), #,获得当前屏幕 ,,b =, p.size #,获得当前屏幕的大?,,fourcc  cv2.VideoWriter_fourcc (* & # 39; xvid # 39;), #,编码格式=,,video  cv2.VideoWriter (& # 39; % s.avi& # 39; %的名字,,fourcc,, 20日,(a, b)), #,输出文件命名为test.mp4,帧率为16,可以自己设置 ,while 真正的: 我才能=,ImageGrab.grab () imm才能=cv2.cvtColor (np.array (im), cv2.COLOR_RGB2BGR) #转为opencv的BGR格式 video.write才能(imm) if 才能;国旗: ,才能打印(“录制结束!“) ,才能休息 ,video.release () def on_press(重要): ,“““ ,键盘监听事件! ! ! ,:param 关键: ,返回: ,“““ ,#打印(键) global 旗帜 ,if key ==, keyboard.Key.esc: ,国旗=True 打印才能(“stop 监控!“) return 才能;False #返回假,键盘监听结束! if __name__==& # 39; __main__ # 39;: ,th=threading.Thread(目标=video_record) ,th.start () ,with keyboard.Listener (on_press=on_press), as 侦听器: listener.join才能()
现在录制就不用之前那个黑框了,按esc按键直接停止录制!
<>强PS:在通过代码给大家介绍下python实现屏幕录制强>
公益诉讼即pollow的安装命令如下:
<代码> pip安装枕头代码>
其中cv2的安装是下面这条命令
<代码> pip安装opencv-python 代码>
代码实现:
#,编码:utf - 8 得到PIL import  ImageGrab import numpy  as np import cv2 fps =20 时间=start 3, #,延时录制 最终获得=,,15 #,自动结束时间 时间=curScreen ImageGrab.grab(), #,获取屏幕对象 身高,,width =curScreen.size 时间=video cv2.VideoWriter (& # 39; video02.avi& # 39;,, cv2.VideoWriter_fourcc (* & # 39; xvid # 39;),, fps,,(高度,宽度)) imageNum =0 while 真正的: imageNum 才能+=1 时间=captureImage 才能;ImageGrab.grab(), #,抓取屏幕 时间=frame 才能;cv2.cvtColor (np.array (captureImage), cv2.COLOR_RGB2BGR) #,才能显示无图像的窗口 cv2.imshow才能(& # 39;捕捉# 39;,,np.zeros ((1, 255), np.uint8)) #才能,控制窗口显示位置,方便通过按键方式退出 cv2.moveWindow才能(& # 39;捕捉# 39;,,height 作用;100年,width 作用;100), if 才能;imageNum 祝辞,fps *,开始: ,,,video.write(框架) #,才能退出条件,, if 才能;cv2.waitKey(50),==,奥德(& # 39;提问# 39;),或是imageNum 祝辞,fps *,结束: ,才能打破 video.release () cv2.destroyAllWindows ()Python如何实现屏幕录制功能