python3将视频流保存为本地视频文件
作者:int93 发布时间:2023-07-26 12:14:45
标签:python3,视频流,本地视频
使用python3+opencv3.3.1环境将视频流保存为本地视频文件,具体内容如下
1、利用opencv中的VideoCapture类获取视频流的链接,通过cv2的方法得到该视频流的帧数和每帧大小。
2、使用VideoWriter类进行视频编码
3、通过VideoCapture的read()方法进行视频流解码成每一帧
4、获取到每一帧frame,我们就可以对该帧做图像算法(例如识别、图像加强、灰度变换等)
import cv2
from matplotlib import pyplot as plt
#通过cv2中的类获取视频流操作对象cap
cap = cv2.VideoCapture('rtsp://admin:passwd@10.130.10.111:554/MPEG-4/ch1/main/av_stream')
#调用cv2方法获取cap的视频帧(帧:每秒多少张图片)
fps = cap.get(cv2.CAP_PROP_FPS)
print(fps)
#获取cap视频流的每帧大小
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),
int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
print(size)
#定义编码格式mpge-4
fourcc = cv2.VideoWriter_fourcc('M', 'P', '4', '2')
#定义视频文件输入对象
outVideo = cv2.VideoWriter('saveDir.avi',fourcc,fps,size)
#获取视频流打开状态
if cap.isOpened():
rval,frame = cap.read()
print('ture')
else:
rval = False
print('False')
tot=1
c=1
#循环使用cv2的read()方法读取视频帧
while rval:
rval,frame = cap.read()
cv2.imshow('test',frame)
#每间隔20帧保存一张图像帧
# if tot % 20 ==0 :
# cv2.imwrite('cut/'+'cut_'+str(c)+'.jpg',frame)
# c+=1
tot+=1
print('tot=',tot)
#使用VideoWriter类中的write(frame)方法,将图像帧写入视频文件
outVideo.write(frame)
cv2.waitKey(1)
cap.release()
outVideo.release()
cv2.destroyAllWindows()
结果:
来源:https://blog.csdn.net/Int93/article/details/78805414


猜你喜欢
- 在使用opencv显示图像时,有时候需要显示多张图像,就会出现多个窗口,显得冗余,用户不好操作。这时候就想着能不能将这些图像在一个窗口中显示
- 如下所示:from numpy import *import numpy as npimport matplotlib.pyplot as
- load与loads简介:在python自动化中,我们传递一些参数是需要从文件中读取过来的,读取过来的字典并非python对象数据类型而是s
- Bootstrap是一款目前非常流行的前端框架,简单的说,就是html,css,javascript的工具集,我们可以用bootstrap搭
- 本文实例讲述了Python筛选及提取序列中元素的方法。分享给大家供大家参考,具体如下:问题:提取出序列中的值或者根据某些标准对序列做删减解决
- 一主一从: Master: OS:centos release 5.6 DB:mysql 5.5.8 IP:192.168.1.2 Slav
- asp连接sql server代码如下:dim connset conn = Serve
- 本文实例讲述了Python实现的爬取百度文库功能。分享给大家供大家参考,具体如下:# -*- coding: utf-8 -*-from s
- 1、引言小丝:鱼哥, 你有没有什么办法,提取PDF文档的内容。小鱼:这个还问我??小丝:哎呀,这个不是被难住了嘛 。小鱼:有啥难得?提示你一
- 很多场景为了不阻塞,都需要异步回调机制。这是一个简单的例子,大家参考使用吧#!/usr/bin/env python# -*- coding
- 背景每次加载数据都要重新Load,想通过加入的注解方式开发缓存机制,每次缓存不用写代码了缺点:目前仅支持一个返回值,虽然能弄成字典,但是已经
- 思考:当我们输入这个语句的时候,Python内部是如何去创建这个对象的?a = 1.0对象使用完毕,销毁的时机又是怎么确定的呢?下面,我们以
- 由于数据文件平时在数据库运行的时候处于使用状态,故当数据库处于打开状态时,管理员是无法重命名数据文件名字的。那么一定要更改这个数据文件的名字
- 如何根据二维数组中的某一行或者某一列排序?假设data是一个numpy.array类型的二维数组,可以利用numpy中的argsort函数进
- 本文实例讲述了Python中迭代的用法,是一个非常实用的技巧。分享给大家供大家参考借鉴之用。具体分析如下:如果给定一个list或tuple,
- Windows环境下一、开启 Imagick 扩展1、安装PHP扩展:Imagick,下载地址 https://pecl.php.net/p
- 本文实例讲述了python随机生成指定长度密码的方法。分享给大家供大家参考。具体如下:下面的python代码通过对各种字符进行随机组合生成一
- 直角三角形rows = int(input('输入列数:'))for i in range(1, rows):print(&
- 引用是指保存的值为对象的地址。在 Python 语言中,一个变量保存的值除了基本类型保存的是值外,其它都是引用,因此对于它们的使用就需要小心
- 注意:自定义函数要放在项目应用目录/common/common.php中。 这里是关键。 模板变量的函数调用格式:{$varname|fun