Python使用OpenCV按时间段分割保存RTSP实时视频流

凌晨两点半
凌晨两点半
发布时间:2026-10-13 | 6人浏览过
原创

本文介绍如何使用Python结合OpenCV库读取RTSP实时视频流,并通过帧计数机制定时生成并保存连续的视频文件。代码示例展示了如何初始化摄像头、设置编码格式、按固定帧数(如120帧)切割视频,并在保存后自动转换为MP4格式,适用于监控录像或实时流处理场景。

Python OpenCV读取RTSP流并定时生成视频文件实现

以下直接提供实现该功能的Python代码示例。

核心代码实现


# coding: utf-8
import datetime
import cv2
import os
 
ip = '192.168.3.160'.replace(".", "_") 
rtsp = 'rtsp://admin:admin@192.168.3.160: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() 

运行效果展示

运行效果展示

以上就是利用Python cv2读取RTSP实时码流并按时间生成连续视频文件的完整方法,供读者参考。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表