#!/anaconda3/envs/FEALPy/bin python3.8
# -*- coding: utf-8 -*-
# ---使用opencv 模拟行车记录仪。潜在应用:事件触发,自动保存事故发生后的视频文件
# @Software: PyCharm
# @File: video_save.py

# @Site: 
# @Time: Apr 25, 2023
# ---

import cv2
import time


video_time = int(input("请输入录像视频的长度(单位:秒):"))

cap = cv2.VideoCapture(0)

# 获取视频播放界面的长宽
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))

# 定义编码器,创建对象
fourcc = cv2.VideoWriter_fourcc(*'mp4v')

# 文件输出名字
output = cv2.VideoWriter('output-' + str(int(time.time())) + 'mp4', fourcc, 24, (width, height))

# 记录开始的时间
start_time = time.time()

# 开始录制
while(cap.isOpened() and (cv2.waitKey(1) & 0xff != ord('q'))):
    #判断是否需要分割视频文件,时间阈值
    if time.time() - start_time >= video_time:
        output.release()
        output = cv2.VideoWriter('output-' + str(time.strftime('%Y%m%d%H%M%S')) + '.mp4', fourcc, 24, (width, height))
        # 重新记录开始的时间
        start_time = time.time()

     #读取摄像头每一帧
    ret, frame = cap.read()
    if ret == True:
        cv2.imshow("frame", frame)
        output.write(frame)
    else:
        break

#释放资源
output.release()
cap.release()
cv2.destroyAllWindows()

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐