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 日期区间处理 (本周本月上周上月...)

工具类 class CalendarUtils: """ 日期工具类 """ @staticmethod def delta_day(delta=0):...

python正则表达式之作业计算器

python正则表达式之作业计算器

作业:计算器开发 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/...

Python的ORM框架SQLAlchemy入门教程

SQLAlchemy的理念是,SQL数据库的量级和性能重要于对象集合;而对象集合的抽象又重要于表和行。一 安装 SQLAlchemy复制代码 代码如下:pip install sqlal...

如何解决django-celery启动后迅速关闭

日志中也没有打印什么明显的错误,只是显示连接了rabbitmq后就关闭了 [2019-09-11 06:08:45,729: INFO/Beat] beat: Starting......

python基础学习之如何对元组各个元素进行命名详解

python基础学习之如何对元组各个元素进行命名详解

元祖的创建 元祖创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。 >>> temp=(1) >>> temp 1 >>>...