0

0

如何使用 Python 从 IP 摄像机捕获实时视频流

花韻仙語

花韻仙語

发布时间:2025-01-16 22:16:21

|

1550人浏览过

|

来源于php中文网

原创

本文介绍如何使用 python 捕获和显示来自 ip 摄像头的实时视频流。我们将利用 requests 库获取图像 url,opencv 处理图像,以及 imutils 调整图像大小。最终程序将持续从摄像头获取视频流并在屏幕上显示。 本文结束时,您将掌握实时捕获和显示网络摄像头视频帧的方法,并能根据不同 ip 摄像头流调整设置。

目标

本教程的目标是:

  • 使用 HTTP 从 IP 摄像头获取视频帧。
  • 使用 OpenCV 处理帧并显示。
  • 持续获取摄像头视频流并实时显示图像。
  • 创建循环显示流,直到用户按下按键退出。

最终结果是屏幕上显示的实时视频流,按下 Esc 键即可退出。

前提条件

立即学习Python免费学习笔记(深入)”;

在开始编写代码之前,请确保已安装以下库:

  • requests: 发送 HTTP 请求并获取图像数据。
  • opencv-python: 处理和显示图像。
  • imutils: 简化 OpenCV 使用的一组实用函数。

使用以下命令安装这些库:

pip3 install requests opencv-python imutils

您还需要一台 IP 摄像头或任何通过 HTTP 源流式传输视频的设备(例如,通过端口 8080 上的 MJPEG 流传输的网络摄像头)。

方法

使用手机上的 IP 网络摄像头应用:

  1. 在手机上下载并安装 IP 网络摄像头应用。 该应用可将您的手机变成 IP 摄像头。
  2. 确保电脑和手机连接到同一网络。
  3. 在手机上启动 IP 网络摄像头应用。 点击“启动服务器”按钮。这将启动手机上的相机流。
  4. URL 将显示在手机屏幕上,例如 http://192.168.0.101:8080/video。您将在 Python 脚本中使用此 URL 获取视频流。
  5. 在电脑上,在浏览器中打开此 URL 验证相机源是否正常工作。“视频渲染器”部分选择 JavaScript 以在浏览器中渲染流。

如何使用 Python 从 IP 摄像机捕获实时视频流

现在,我们已设置好摄像头,接下来是 Python 代码。

代码详解

以下是从 IP 摄像头获取并显示视频流的完整 Python 脚本:

Videoleap
Videoleap

Videoleap是一个一体化的视频编辑平台

下载
import requests
import cv2
import numpy as np
import imutils

# 将以下 URL 替换为您自己的 URL。确保末尾添加 "/shot.jpg"。
url = "http://:8080/shot.jpg"
# 示例:url = "http://192.168.0.101:8080/shot.jpg"

while True:
    img_resp = requests.get(url)
    img_arr = np.array(bytearray(img_resp.content), dtype=np.uint8)
    img = cv2.imdecode(img_arr, -1)
    img = imutils.resize(img, width=1000, height=1800)
    cv2.imshow("android_cam", img)
    if cv2.waitKey(1) == 27:
        break

cv2.destroyAllWindows()

步骤说明

  1. 导入库: requests, cv2, numpy, imutils

  2. 设置摄像头 URL: 定义摄像头流的 URL。 请将 替换为您的手机 IP 地址,并确保 /shot.jpg 部分正确。

  3. 获取图像: while True 循环持续从 URL 获取图像。 响应内容转换为 NumPy 数组。

  4. 解码和调整大小: cv2.imdecode() 解码图像,imutils.resize() 调整图像大小以适应显示。

  5. 显示图像: cv2.imshow() 显示图像。

  6. 退出循环: cv2.waitKey(1) 等待按键,按下 Esc 键 (27) 退出循环。

  7. 清理: cv2.destroyAllWindows() 关闭 OpenCV 窗口。

如何运行脚本

  1. 确保您的网络摄像头(或移动设备)已启动并运行。
  2. 更新脚本中的 URL 指向您的摄像头图像流。
  3. 将脚本保存为 video.py
  4. 使用以下命令运行脚本:
python video.py

视频流将开始在新窗口中显示。

结论

本文成功地实现了一个 Python 脚本,用于从 IP 摄像头获取和显示实时视频流。通过使用 requestsopencvimutils,我们能够轻松处理 HTTP 请求、图像数据并实时显示。该脚本可用于各种应用,例如实时视频监控系统、IP 摄像头与其他 Python 应用集成,以及实时视频流分析或处理。 通过修改脚本,您可以添加更高级的功能,例如运动检测、图像处理和视频流保存。 请记得将占位符 IP 地址替换为您实际的 IP 地址和路径。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

97

2023.09.25

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

433

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

420

2023.11.14

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

2387

2024.03.12

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2119

2024.08.16

C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

9

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

9

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

10

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

3

2026.01.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.4万人学习

Django 教程
Django 教程

共28课时 | 3.7万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号