視頻錄制
import cv2
import pyaudio
import wave
import threading
import os
import tkinter as tk
from PIL import Image, ImageTk
# 視頻錄制設置
VIDEO_WIDTH = 640
VIDEO_HEIGHT = 480
FPS = 20.0
VIDEO_FILENAME = '_video.mp4'
AUDIO_FILENAME = '_audio.wav'
OUTPUT_FILENAME = 'output.mp4'
# 全局變量
recording = False
cap = None
out = None
p = None
stream = None
frames = []
audio_thread = None
root = None
label = None
status_label = None
# 將音頻錄制設置的變量定義為全局變量
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
def start_recording():
global recording, cap, out, p, stream, audio_thread, status_label
recording = True
status_label.config(text="ing...")
try:
# 打開攝像頭
cap = cv2.VideoCapture(0)
if not cap.isOpened():
print("Camera Open Fail")
return
cap.set(3, VIDEO_WIDTH)
cap.set(4, VIDEO_HEIGHT)
# 定義視頻編碼器并創建 VideoWriter 對象,嘗試使用 avc1 編碼器
fourcc = cv2.VideoWriter_fourcc(*'avc1')
out = cv2.VideoWriter(VIDEO_FILENAME, fourcc, FPS, (VIDEO_WIDTH, VIDEO_HEIGHT))
if not out.isOpened():
#print("無法創建視頻寫入對象")
cap.release()
return
p = pyaudio.PyAudio()
stream