返回顶部
首页 > 资讯 > 后端开发 > Python >基于Python怎么实现捕获,播放和保存摄像头视频
  • 217
分享到

基于Python怎么实现捕获,播放和保存摄像头视频

2023-06-30 02:06:40 217人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容介绍了“基于python怎么实现捕获,播放和保存摄像头视频”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!读取视频要捕获视频,你需要创

本篇内容介绍了“基于python怎么实现捕获,播放和保存摄像头视频”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

读取视频

要捕获视频,你需要创建一个 VideoCapture 对象。它的参数可以是设备索引或视频文件的名称。所以,我们读取视频有两种方式,分别是从相机中读取视频和从文件中读取视频。

从相机中读取视频

对于有摄像头的设备,例如带摄像头的笔记本电脑,我们可以直接调起电脑的摄像头,读取摄像头的视频流。

import cv2 as cvcap = cv.VideoCapture(0)if not cap.isOpened():    print("Cannot open camera")    exit()while True:    # 逐帧捕获    ret, frame = cap.read()    # 如果正确读取帧,ret为True    if not ret:        break    # 显示结果帧    cv.imshow('frame', frame)    if cv.waiTKEy(1) == ord('q'):        break# 完成所有操作后,释放捕获器cap.release()cv.destroyAllwindows()

这里我向 VideoCapture 对象传入了参数 0,表示设备索引,设备索引就是指定哪个摄像头的数字。正常情况下,一个摄像头会被连接(就像我的情况一样)。所以我简单地传0。你可以通过传递1来选择第二个相机,以此类推。

cap.isOpened() 用来判断是否捕获到视频。

cap.read() 返回布尔值(True/ False)。如果正确读取了帧,它将为True。因此,你可以通过检查此返回值来检查视频的结尾。

cv.imshow 方法用来显示视频的帧。我们播放视频的原理就是逐帧播放。

在最后,不要忘记通过 cap.release() 释放俘虏。

运行这段代码,你就可以看到一个弹窗实时地播放你电脑摄像头中的图像了。

从文件中播放视频

与从相机捕获相同,只是用视频文件名更改摄像机索引。

另外,在显示视频时,可以通过 cv.waitKey() 来控制视频播放的速度。如果设置太小,则视频将非常快,相当于倍速播放;而如果太大,则视频将变得很慢,相当于延迟播放。正常情况下25毫秒就可以了。

import cv2 as cvcap = cv.VideoCapture('video.mp4')while cap.isOpened():    ret, frame = cap.read()    # 如果正确读取帧,ret为True    if not ret:        break    cv.imshow('frame', frame)    if cv.waitKey(1) == ord('q'):        breakcap.release()cv.destroyAllWindows()

运行这段代码,你就可以看到一个弹窗播放你选择的视频文件了。

保存视频

从相机读取视频,我们可以将视频保存到本地。我们捕捉一个视频,一帧一帧地处理,如果我们想要保存这个视频,非常简单,只需使用 cv.VideoWriter()

cv.VideoWriter() 有5个参数:

  • 参数1:输出文件名,例如: output.mp4。

  • 参数2:FourCC 代码,FourCC 是用于指定视频编解码器的4字节代码。

  • 参数3:帧率的数量。

  • 参数4:帧大小。

  • 参数5:颜色标志。如果为 True,正常颜色输出,否则就是灰色图像输出。

关于 FourCC 与视频格式的对照关系,我列举了一些常见的格式:

cv2.VideoWriter_fourcc(‘P’,‘I’,‘M’,‘1’) = MPEG-1 codec

cv2.VideoWriter_fourcc(‘M’,‘J’,‘P’,‘G’) = motion-jpeg codec --> mp4v

cv2.VideoWriter_fourcc(‘M’, ‘P’, ‘4’, ‘2’) = MPEG-4.2 codec

cv2.VideoWriter_fourcc(‘D’, ‘I’, ‘V’, ‘3’) = MPEG-4.3 codec

cv2.VideoWriter_fourcc(‘D’, ‘I’, ‘V’, ‘X’) = MPEG-4 codec --> avi

cv2.VideoWriter_fourcc(‘U’, ‘2’, ‘6’, ‘3’) = H263 codec

cv2.VideoWriter_fourcc(‘I’, ‘2’, ‘6’, ‘3’) = H263I codec

cv2.VideoWriter_fourcc(‘F’, ‘L’, ‘V’, ‘1’) = FLV1 codec

保存视频的代码:

import cv2 as cvcap = cv.VideoCapture(0)# 定义编解码器并创建VideoWriter对象fourcc = cv.VideoWriter_fourcc(*'MJPG')out = cv.VideoWriter('output.mp4', fourcc, 20.0, (640,  480))while cap.isOpened():    ret, frame = cap.read()    if not ret:        break    frame = cv.flip(frame, 1)    # 写翻转的框架    out.write(frame)    cv.imshow('frame', frame)    if cv.waitKey(1) == ord('q'):        break# 完成工作后释放所有内容cap.release()out.release()cv.destroyAllWindows()

运行这段代码,你就可以在代码目录下找到一个 output.mp4 的视频文件了。

上面几段代码中,如果想要退出视频操作,敲击键盘的 q 就可以。

“基于Python怎么实现捕获,播放和保存摄像头视频”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 基于Python怎么实现捕获,播放和保存摄像头视频

本文链接: https://lsjlt.com/news/327074.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 基于Python实现捕获,播放和保存摄像头视频
    目录读取视频从相机中读取视频从文件中播放视频保存视频前几天有个读者在粉丝群里面提了一个问题: Python 怎样提高视频清晰度和对比度? 我之前没有涉及到使用 Python 操作视频...
    99+
    2024-04-02
  • 基于Python怎么实现捕获,播放和保存摄像头视频
    本篇内容介绍了“基于Python怎么实现捕获,播放和保存摄像头视频”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!读取视频要捕获视频,你需要创...
    99+
    2023-06-30
  • gradio摄像头获取照片和视频怎么实现
    这篇文章主要讲解了“gradio摄像头获取照片和视频怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“gradio摄像头获取照片和视频怎么实现”吧!1.环境设置1.1gradio安装需要...
    99+
    2023-07-05
  • C#+EmguCV怎么实现使用摄像头读取、保存视频
    这篇文章主要介绍“C#+EmguCV怎么实现使用摄像头读取、保存视频”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#+EmguCV怎么实现使用摄像头读取、保存视频”文章能帮助大家解决问题。在Emg...
    99+
    2023-06-29
  • 通过gradio和摄像头获取照片和视频实现过程
    目录1.环境设置1.1gradio安装2.ffmpeg安装2.简单小程序2.1 引入gradio2.2 定义方法2.3 定义接口2.4 运行3.执行情况3.1 终端日志输出3.2 截...
    99+
    2023-05-14
    gradio 摄像头获取照片视频 gradio 摄像头
  • 基于Python实现批量保存视频到本地
    目录序言开始代码获取视频的代码自动评论自动点赞自动关注序言 是我太久没发了吗?昨天没人看,那么今天来点特别的~ 不仅把好看的视频全部pa下来,咱们还要实现自动评论、点赞、关注三连~ ...
    99+
    2024-04-02
  • OpenCV中读取、显示、保存摄像头视频讲解与实战(附Python源码)
    需要源码请点赞关注收藏后评论区留言私信~~~ OpenCV不仅能够处理图像,还能够处理视频。视频是由大量的图像构成的,这些图像以固定的时间间隔从视频中获取。这样,就能够使用图像处理的方法对这些图像进行处理,进而达到处理视频的目的。要处...
    99+
    2023-09-30
    opencv 计算机视觉 人工智能 音视频 python
  • python调用海康视频汇聚平台API,获得所有摄像头设备编号、实时播放rtsp地址、回放rtsp地址
    目录 1. 需求2. 思路3. 实现3.1. 确保服务器上安装视频汇聚平台(iSecure Center)3.2. 查看API网关是否安装成功3.3. 分配身份认证信息AK/SK3.4. 利用...
    99+
    2023-09-07
    python 音视频 tcp/ip
  • 基于Python怎么实现音乐播放器
    本篇内容主要讲解“基于Python怎么实现音乐播放器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于Python怎么实现音乐播放器”吧!一、环境设置第一步引入必须的各类包import ...
    99+
    2023-06-30
  • Qt音视频开发之怎么用ffmpeg实现解码本地摄像头
    这篇文章主要介绍了Qt音视频开发之怎么用ffmpeg实现解码本地摄像头的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Qt音视频开发之怎么用ffmpeg实现解码本地摄像头文章都会有所收获,下面我们一起来看看吧。相...
    99+
    2023-07-05
  • 基于C++的摄像头图像采集及拼接程序该怎么实现
    今天给大家介绍一下基于C++的摄像头图像采集及拼接程序该怎么实现。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。程序的说明实现从摄像头实时采集单帧图像,之后完成...
    99+
    2023-06-28
  • 基于Python怎么实现丝滑换装视频剪辑
    本篇内容介绍了“基于Python怎么实现丝滑换装视频剪辑”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!软硬件、技能需求CPU最好是I7-87...
    99+
    2023-06-29
  • 基于Python怎么实现合并多张图片转成mp4视频
    一、需要调入的模块1、imageio模块Python模块imageio是一个用于读取和写入图像及视频数据的库。它支持多种格式,并且可以使用NumPy数组进行操作。以下是一些关键的函数:imageio.imread():从文件中读取图像数据并...
    99+
    2023-05-15
    Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作