施勢帆老師的教學網站

 找回密碼
 立即註冊
搜索
熱搜: 活動 交友 discuz
查看: 34|回復: 0

用python和opencv2將webcam寫入並儲存影片的程式

[複製鏈接]

697

主題

708

帖子

3359

積分

管理員

Rank: 9Rank: 9Rank: 9

積分
3359
發表於 2025-3-25 15:59:44 | 顯示全部樓層 |閱讀模式
import cv2
import datetime

# 設定影片參數
output_filename = 'webcam_output.mp4'
fps = 30.0
frame_width = 640
frame_height = 480

# 初始化攝影機 (0 表示預設攝影機)
cap = cv2.VideoCapture(0)

# 檢查攝影機是否成功開啟
if not cap.isOpened():
    print("無法開啟攝影機")
    exit()

# 設定攝影機解析度
cap.set(cv2.CAP_PROP_FRAME_WIDTH, frame_width)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, frame_height)

# 建立 VideoWriter 物件 (使用 MP4V 編碼)
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter(output_filename, fourcc, fps, (frame_width, frame_height))

print(f"開始錄製... (將儲存為 {output_filename})")
print("按 'q' 鍵停止錄製")

start_time = datetime.datetime.now()

while True:
    # 讀取攝影機畫面
    ret, frame = cap.read()

    if not ret:
        print("無法取得畫面")
        break

    # 在畫面上顯示錄製時間
    current_time = datetime.datetime.now() - start_time
    cv2.putText(frame, f"Recording: {str(current_time).split('.')[0]}", (10, 30),
               cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2)

    # 寫入影片檔案
    out.write(frame)

    # 顯示畫面
    cv2.imshow('Webcam Recording', frame)

    # 按 q 鍵結束
    if cv2.waitKey(1) == ord('q'):
        break

# 釋放資源
cap.release()
out.release()
cv2.destroyAllWindows()

print(f"錄製完成!影片已儲存為 {output_filename}")
print(f"總錄製時間: {str(datetime.datetime.now() - start_time).split('.')[0]}")

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?立即註冊

x
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|小黑屋|施勢帆老師的教學網站

GMT+8, 2025-4-4 18:01 , Processed in 0.036972 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回復 返回頂部 返回列表