python cv2讀取rtsp實時碼流按時生成連續視頻文件

代碼實現

# coding: utf-8
import datetime
import  cv2
import os
 
ip = '192.168.3.160'.replace(".", "_") 
rtsp = 'rtsp://admin:[email protected]:554/1/1' 
# 初始化攝像頭
cap = cv2.VideoCapture(rtsp)

fourcc = cv2.VideoWriter_fourcc(*'XVID')
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))


frame_count = 0
while cap.isOpened():
    isSuccess, frame = cap.read()
    if isSuccess: 
        if frame_count % 120 == 0 or frame_count == 0:  
            frame_count = 0 
            i = datetime.datetime.now().strftime("%Y%m%d%H%M%S") 
            filename = str(i) + '-' + ip + '.avi'
            print(filename)
            video_writer = cv2.VideoWriter(filename, fourcc, 24, size)
            
        video_writer.write(frame)
        frame_count = frame_count + 1
        print(frame_count)
        if frame_count % 120 == 0:  
            video_writer.release()
            portion = os.path.splitext(filename)
            newname = portion[0] + '.mp4'
            os.rename(filename, newname)
        cv2.imshow('show', frame)    
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()        

效果

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章