Last Updated on 2021-03-26 by Clay
今天將來介紹如何使用 Python 進行『 螢幕錄影 』這項工作,目標是錄影結束以後再將影片檔存下來。這是個有趣的功能,也能延伸很多不同用途的軟體,是個還滿有用的程式。
在 Python 中想要完成這個功能,我們可以通過 “OpenCV” 這個套件來完成。OpenCV 的全稱是 “Open Source Computer Vision Library”,主要是使用 C++ 開發,但也有可以支援 Python、Java 等程式語言的 API。
老實說,OpenCV 的功能超級多,直到現在我都無法摸透,這次也僅僅只是介紹個簡單的功能:將 “Pillow” 截圖的圖片儲存成影片的格式。
Pillow 則是另外一個 Python 中常用的影像處理套件,功能也是……抱歉真的太多了!請原諒我沒辦法講解清楚。
那麼,我想我們就直接來看程式碼吧!
使用 Python 進行迎目錄影
首先我們會使用到套件 PIL 和 opencv,沒有的安裝這兩個套件的可能得輸入以下指令下載:
pip3 install pillow
pip3 install opencv-python
安裝好以後,我們來看一個簡單的 sample code,當然,就如同我上面所說,還有許多可以增加的功能:比方說 GUI 界面、Socket 即時傳送影像……等等,都是些值得新增的功能。
from PIL import ImageGrab import numpy as np import cv2 image = ImageGrab.grab() width, height = image.size fourcc = cv2.VideoWriter_fourcc(*'XVID') video = cv2.VideoWriter('test.avi', fourcc, 25, (width, height)) while True: img_rgb = ImageGrab.grab() img_bgr = cv2.cvtColor(np.array(img_rgb), cv2.COLOR_RGB2BGR) video.write(img_bgr) cv2.imshow('imm', img_bgr) if cv2.waitKey(1) & 0xFF == ord('q'): break video.release() cv2.destroyAllWindows()
中間迴圈的部份便是螢幕錄影了,最後設定只要按 “q” 鍵便能離開迴圈。儲存的檔案會在執行程式的當前資料夾底下,名稱為事先設定好的 “test.avi”。
References
Read more
若是你在找的是筆電攝影機的錄影、而非螢幕錄影,也許你可以參考這篇
《使用 opencv 進行筆電攝影機的調用 —— by Python》