一、安裝必要的Python庫
import cv2
import numpy as np
import pyautogui
import time
在使用Python編寫視頻錄製腳本之前,需要先安裝必要的庫。這裡我們需要用到的包括:OpenCV、NumPy、PyAutoGUI和Time等。
二、設置錄製參數
SCREEN_SIZE = (1920, 1080)
FOURCC = cv2.VideoWriter_fourcc(*"mp4v")
OUT_FILE_NAME = "output.mp4"
FPS = 60.0
在這一部分,我們需要設置視頻錄製的參數,包括屏幕分辨率、輸出文件名、幀率等。這裡使用的是mp4v格式的編碼,也可以使用其他格式。
三、錄製視頻
# 創建視頻寫入對象
out = cv2.VideoWriter(OUT_FILE_NAME, FOURCC, FPS, SCREEN_SIZE)
while True:
# 獲取屏幕截圖
img = pyautogui.screenshot()
frame = np.array(img)
# 由於OpenCV默認是BGR格式,需要將RGB格式轉換為BGR格式
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
# 寫入視頻幀
out.write(frame)
# 顯示視頻畫面
cv2.imshow("Recording", frame)
# 按q鍵退出錄製
if cv2.waitKey(1) == ord("q"):
break
# 釋放資源
out.release()
cv2.destroyAllWindows()
這一部分是視頻錄製腳本的核心部分。首先,我們創建一個VideoWriter對象,用於將每一幀圖像寫入視頻文件中。之後不斷地獲取屏幕截圖,將其轉換為OpenCV支持的格式,然後寫入視頻幀中。同時,我們使用cv2.imshow函數顯示錄製的畫面。當然,如果想讓錄製畫面更加流暢,可以調整幀率,但同時也會增加視頻文件的大小。
四、完整代碼示例
import cv2
import numpy as np
import pyautogui
import time
SCREEN_SIZE = (1920, 1080)
FOURCC = cv2.VideoWriter_fourcc(*"mp4v")
OUT_FILE_NAME = "output.mp4"
FPS = 60.0
out = cv2.VideoWriter(OUT_FILE_NAME, FOURCC, FPS, SCREEN_SIZE)
while True:
img = pyautogui.screenshot()
frame = np.array(img)
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
out.write(frame)
cv2.imshow("Recording", frame)
if cv2.waitKey(1) == ord("q"):
break
out.release()
cv2.destroyAllWindows()
五、結語
使用Python編寫視頻錄製腳本非常方便,只需要幾行代碼就可以完成視頻錄製的任務。當然,如果想要進一步優化錄製效果,可以參考OpenCV的相關文檔,使用更高級的特性。
原創文章,作者:EHEPJ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/331142.html