视频录制
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