python3将视频流保存为本地视频文件


Posted in Python onJune 20, 2018

使用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()

结果:

python3将视频流保存为本地视频文件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python去掉字符串中重复字符的方法
Feb 27 Python
详解Python爬虫的基本写法
Jan 08 Python
Python编程实现二分法和牛顿迭代法求平方根代码
Dec 04 Python
python看某个模块的版本方法
Oct 16 Python
python输入整条数据分割存入数组的方法
Nov 13 Python
Python中常用的8种字符串操作方法
May 06 Python
python使用 zip 同时迭代多个序列示例
Jul 06 Python
python IDLE 背景以及字体大小的修改方法
Jul 12 Python
python 模拟银行转账功能过程详解
Aug 06 Python
numpy:np.newaxis 实现将行向量转换成列向量
Nov 30 Python
python实现四人制扑克牌游戏
Apr 22 Python
Python识别处理照片中的条形码
Nov 16 Python
Python操作MySQL数据库的方法
Jun 20 #Python
python实现抖音视频批量下载
Jun 20 #Python
Python 类的特殊成员解析
Jun 20 #Python
python实现音乐下载的统计
Jun 20 #Python
django2用iframe标签完成网页内嵌播放b站视频功能
Jun 20 #Python
python基于http下载视频或音频
Jun 20 #Python
python实现下载pop3邮件保存到本地
Jun 19 #Python
You might like
PHP如何透过ODBC来存取数据库
2006/10/09 PHP
PHP 飞信好友免费短信API接口开源版
2010/07/22 PHP
php 删除一个数组中的某个值.兼容多维数组!
2012/02/18 PHP
Yii框架连接mongodb数据库的代码
2016/07/27 PHP
php+jQuery+Ajax简单实现页面异步刷新
2016/08/08 PHP
php基于闭包实现函数的自调用(递归)实例分析
2016/11/11 PHP
php实现简单的权限管理的示例代码
2017/08/25 PHP
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
jquery如何判断某元素是否具备指定的样式
2013/11/05 Javascript
jQuery的事件委托实例分析
2015/07/15 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
2016/05/21 Javascript
利用纯Vue.js构建Bootstrap组件
2016/11/03 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
jQuery html表格排序插件tablesorter使用方法详解
2017/02/10 Javascript
微信小程序实现给循环列表添加点击样式实例
2017/04/26 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
node.JS二进制操作模块buffer对象使用方法详解
2020/02/06 Javascript
原生JS实现烟花效果
2020/03/10 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
[05:15]2018年度CS GO社区贡献奖-完美盛典
2018/12/16 DOTA
python实现多线程采集的2个代码例子
2014/07/07 Python
python爬虫爬取淘宝商品信息
2018/02/23 Python
python 处理dataframe中的时间字段方法
2018/04/10 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
在django模板中实现超链接配置
2019/08/21 Python
Anaconda 查看、创建、管理和使用python环境的方法
2019/12/03 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
html5理解head_动力节点Java学院整理
2017/07/13 HTML / CSS
幼儿园老师寄语
2014/04/03 职场文书
应届硕士毕业生自荐信
2014/05/26 职场文书
啤酒节策划方案
2014/05/28 职场文书
商场促销活动策划方案
2014/08/18 职场文书
国庆阅兵观后感
2015/06/15 职场文书
Python jiaba库的使用详解
2021/11/23 Python
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server