python cv2读取rtsp实时码流按时生成连续视频文件方式

yipeiwu_com6年前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设计】。

相关文章

在Python中关于使用os模块遍历目录的实现方法

一、Python中os模块的常见的使用方法 os.listdir(path):遍历path的文件或者文件夹,返回一个列表 os.path.join(path1,path2,……,path...

pandas取出重复数据的方法

drop_duplicates为我们提供了数据去重的方法,那怎么得到哪些数据有重复呢? 实现步骤: 1、采用drop_duplicates对数据去两次重,一次将重复数据全部去除(...

Python实现图片转字符画的代码实例

Python实现图片转字符画的代码实例

原理 1. 计算出图片颜色对应的灰度值,计算公式如下     gray = 0.2126 * r + 0.7152 * g + 0.0722 * b 2...

分析python动态规划的递归、非递归实现

概要 本文只是简单的介绍动态规划递归、非递归算法实现 案例一 题目一:求数组非相邻最大和 [题目描述] 在一个数组arr中,找出一组不相邻的数字,使得最后的和最大。 [示例输入]...

在Python中操作列表之List.pop()方法的使用

 pop()方法从列表移除并返回最后一个对象或obj。 语法 以下是pop()方法的语法: list.pop(obj=list[-1]) 参数  &n...