解决Python OpenCV 读取IP摄像头(RTSP等)出现error while decoding的问题

2023-10-26

先来看一个简单的读取RTSP的示例程序

import cv2
cap=cv2.VideoCapture("rtsp://admin:admin_123@172.0.0.0")

ret,frame = cap.read()
while ret:
    ret,frame = cap.read()
    cv2.imshow("frame",frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cv2.destroyAllWindows()
cap.release()

其中frame值为每一帧的图像。但是如果在while 代码块中添加对每一帧的识别操作,比如加入Tensorflow识别一下其中的小动物,则会报出这样的错误导致这个while循环由于这个异常而中断。

原来是由于FFMPEG Lib对在rtsp协议中的H264 vidos不支持,所以处理办法就是自己写两个不同的线程单独去处理接收每一帧的图像,然后另一个线程处理这每一帧的图像。

思路如下:使用队列,采取先入先出策略,在一个线程中开始接收数据,在另一个线程中处理逐帧数据

代码如下:

import cv2
import queue
import time
import threading
q=queue.Queue()

def Receive():
    print("start Reveive")
    cap = cv2.VideoCapture("rtsp://admin:admin_123@172.0.0.0")
    ret, frame = cap.read()
    q.put(frame)
    while ret:
        ret, frame = cap.read()
        q.put(frame)


def Display():
     print("Start Displaying")
     while True:
         if q.empty() !=True:
            frame=q.get()
            cv2.imshow("frame1", frame)
         if cv2.waitKey(1) & 0xFF == ord('q'):
                break

if __name__=='__main__':
    p1=threading.Thread(target=Receive)
    p2 = threading.Thread(target=Display)
    p1.start()
    p2.start()

Receive作为接收数据线程,Display作为简单的处理即显示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决Python OpenCV 读取IP摄像头(RTSP等)出现error while decoding的问题 的相关文章

  • IP 摄像机捕获 RTSP 流大延迟 OPENCV

    我正在尝试在 IP 摄像机上进行一些处理 效果很好 但我发现现实世界和视频捕获之间存在大约 7 10 秒的延迟 我正在使用 rtsp ip port live ext 该相机有一个网络界面 IE ActiveX 可以以非常低的延迟显示图像
  • php系统、python和utf-8

    我有一个Python程序运行得很好 它连接到多个网站并输出所需的信息 由于并非所有网站都使用 utf 8 进行编码 因此我从标头请求字符集并使用unicode string encoding 解码方法 我不确定它是否是执行此操作的适当方法
  • 适用于 iOS 的 RTSP 视频流 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想在iPhone屏幕上显示视频流RTSP 可以抛出项目的源代码或如何实现它的详细信息 找到2个项目 但还没有编译 https github com mooncatventure
  • 编写自定义 DirectShow RTSP/RTP 源推送过滤器 - 来自实时源的时间戳数据

    我正在编写自定义 DirectShow 源推送过滤器 该过滤器应该从视频服务器接收 RTP 数据并将它们推送到渲染器 我编写了一个 CVideoPushPin 类 它继承自 CSourceStream 和 CVideoReceiverThr
  • 使用 pyinstaller 将脚本转换为独立可执行文件时捕获 RTSP 流失败

    Code from imutils video import VideoStream import cv2 Read rtsp stream rtsp u rtsp admin email protected cdn cgi l email
  • Base64 编码:非法 Base64 字符 3c

    我正在尝试将 xml 格式的数据解码为字节base64我遇到了问题 我的方法是在java中 它需要一个String数据并将其转换为bytes就像下面这样 String data string of data in xml format by
  • 使用 VLC 通过 RTP 流式传输桌面,延迟尽可能低

    我一直在尝试找出如何使用 VLC 流式传输我的桌面 通过 LAN 并实现尽可能低的延迟 我应该使用什么设置 我尝试了多种方法但尚未成功 编辑 我也愿意使用 VLC 以外的东西 我也用 VLC 尝试过同样的操作 但延迟始终无法低于 3 秒 F
  • RTSP/RTMP 视频流客户端 iOS [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要一个开源解决方案 库来将 RTSP RTMP 流式传输到 iOS 应用程序 我需要构建一个连接到媒
  • RTSP YouTube 链接

    我已经查遍了谷歌 但无法从 YouTube 视频中获取 rtsp 链接 给定 VIDEO ID 我对如何使用该 id 然后解析 google 的链接感到困惑 感谢您的时间和精力 我找到了这个博客条目 http gdatatips blogs
  • MD5解码。他们是如何做到的?

    我认为 不可能解码 md5 哈希值 但我找到了可以解码它们的工具here http md5 web max ca 但我不知道他们是如何在这么短的时间内做到这一点的 大约需要一秒钟 请帮助我理解它 Thanks 它不会解码 MD5 哈希值 它
  • Android 媒体播放器 RTSP

    我正在尝试在 Android 设备上观看 RTSP 流媒体 但是如果服务器设置了流媒体密码 我的 Android 就无法播放它 如果没有密码就可以了 这是我的代码 public class VideoFragment extends Fra
  • ffmpeg:在流 #1 中找不到编解码器的标签,容器当前不支持编解码器

    我正在尝试在命令行中使用 ffmpeg 从我的 ip 摄像机流录制视频 fmpeg rtsp transport tcp gt i rtsp 192 168 0 250 stream1 gt c copy gt map 0 gt f seg
  • ffmpeg rtsp解码缓冲区太小

    我在 Android 上使用 ffmpeg 解码 rtsp 当图像快速更新或高分辨率时 我很快就会看到像素化 经过谷歌搜索 我发现它可能与UDP缓冲区大小有关 然后我在 ffmpeg libavformat udp c 中使用以下参数重新编
  • 网络摄像机RTSP地址

    我有 IP 摄像头 但我不知道它是 RTSP 流的完整正确 URL 地址 仅 RTSP 设置中有端口 但据我了解 192 168 1 132 554 还不够 VLC 说找不到 rtsp 流 如何找出正确的 url 地址 如何找出正确的 ur
  • 如果wireshark无法识别某些类型的协议(RTSP、RTP、RTCP),如何强制其破译它们?

    我正在尝试根据Java实现RTSP协议http www csee umbc edu pmundur courses CMSC691C lab5 kurose ross html http www csee umbc edu pmundur
  • C++ 视频流检测 FPS

    我尝试从轴或 eneo 相机获取视频流的正确 fps rtsp 192 168 0 1 554 axis media media amp I use cv VideoCapture get CV CAP PROP FPS https doc
  • Python 或 C/C++ 中的 RTSP 库?

    我正在尝试寻找任何适用于 Python 或 C C 的 RTSP 流媒体库 如果没有 还有其他实时流解决方案吗 在 Python 或 C C 中实现 RTSP 有多容易或困难以及从哪里开始 try live555 http www live
  • 使用ffmpeg处理rtsp流url时出现未知命令失败

    我想使用ffmpeg从rtsp流中抓取图像 命令如下 ffmpeg y i rtsp zigong stream xl02 cn 557 HongTranSvr DevId 1b038d27 858c 46a1 b803 a2984af34
  • 如何保持 RTSP 会话存活?

    我尝试在 Google Nexus S 2 3 7 HTC Desire 2 3 3 和 Samsung Galaxy 3 2 上进行流式传输 只有 Google Nexus 存在 RTSP 会话超时问题 我阅读了一些关于这个问题的帖子 似
  • 为什么 Base64.decode 为不同的字符串生成相同的字节数组?

    我使用 URL 安全 Base64 编码来对随机生成的字节数组进行编码 但我在解码时遇到问题 当我解码两个不同的字符串 除了最后一个字符之外的所有字符都是相同的 时 它会生成相同的字节数组 例如 对于两者 dGVzdCBzdHJpbmr a

随机推荐

  • Pinia从入门到精通

    一 为什么使用 Pinia Pinia 是 Vue 的专属状态管理库 它允许你跨组件或页面共享状态 如果你熟悉组合式 API 的话 你可能会认为可以通过一行简单的 export const state reactive 来共享一个全局状态
  • /dev/null 1 & 2的用法

    应用背景 devnull 1 2的介绍 把错误输出和标准输出都导入日志testlog里 屏蔽标准输出和错误输出信息 tee命令如何把标准输出和错误输出都导入testlog里 应用背景 如下例所示 aa是不识别的命令 在执行 test sh时
  • 模拟退火法、遗传算法求解多皇后问题

    一 问题背景 多皇后问题是一个经典的问题 在一个 N x N 的棋盘上放置 N 个皇后 使其不能互相攻击 每行 每列 每一斜线上分别只能放置一个皇后 求解 N 皇后问题的复杂度随 N 呈指数级增加 传统的求解方法采用基于回溯算法的策略 当
  • 最简单的8421码计算方法

    很简单 0 9 就是按照二进制来的 0 0000 1 0001 9 1001 超出9以后把10进制情况下的数按照个十百千万的位数拆开 并把每一位按照8421转换后合起来 10 10000 11 10001 19 11001 20 10000
  • 多元线性回归分析spss结果解读_Spss的线性回归做法及结果解读

    上一节我们讲过了eviews做多元回归 但是很多同学做问卷之类的都需要用到spss 所以这节我教一下大家如何用spss做多元回归 并对结果进行解读 再对大家所疑惑的显著水平做一些白话的解释 一 线性回归的操作 将因变量和自变量移入对应的框中
  • C++ primer 之定义行为像指针的类

    提前声明 这是一篇水博 1 使用智能指针实现 include
  • markdown常用语法

    排版常用功能 在我们排版时 使用得最多的无非就是以下几种效果 标题 加粗 斜体 删除线 无序列表 有序列表 引用 代码块 分割线 标题 标题分为六个级别 几个 就是几级标题 需要注意的是 和标题之间要有空格 加粗 这是粗体效果 也就是在文字
  • 注释处理工具

    文章目录 pom CommnetUtil RafUtil https blog csdn net wwq921220 article details 119515809 pom
  • vscode快速打出vue项目模块

    在vscode的文件 首选项 用户片段 然后再搜索框输入vue 回车 打开vue json文件 添加下面这个代码 Print to console prefix vue body
  • 【改进的多同步挤压变换】基于改进多同步挤压的高分辨率时频分析工具,用于分析非平稳信号(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据 文章 1 概述 文献来源 该文提出一种高分辨率时频
  • C++ 文件和流

    iostream 标准库提供了 cin 和 cout 方法 用于从标准输入读取流和向标准输出写入流 而从文件中读取流或向文件写入流 需要用到fstream标准库 在 C 中进行文件处理时 须在源代码文件中包含头文件
  • 基本ACL与高级ACL

    ACL Acess Control List 即访问控制列表 这张表中包含了匹配关系 条件和查询语句 表只是一个框架结构 其目的是为了对某种访问进行控制 信息点间通信 内外网络的通信都是企业网络中必不可少的业务需求 但是为了保证内网的安全性
  • [SQL报错] SQL报错:could not execute statement 和 query did not return a unique result: 2; nested excepti

    错误信息 操作失败 could not execute statement SQL n a nested exception is org hibernate exception DataExcepti 原因是数据库字段长度的限制 还有可能
  • API的使用

    通过API向第3方服务商请求服务 返回数据JSON格式处理成PHP数组格式
  • 机器学习小组知识点7:伯努利分布(Bernouli Distribution)

    适用环境 伯努利分布是较为简单的一种分布 应用于两种实验结果 要么成功 要么失败 一定程度上是二元的性质 这里 我们假设成功的概率为 p p 显然失败的概率就变成了1 p1 p 概率公式可以表示为 f x px 1 p 1 x f x p
  • Python 字符串去除空格的方法

    在处理Python代码字符串的时候 我们常会遇到要去除空格的情况 所以就总结了多种方法供大家参考 1 strip 方法 去除字符串开头或者结尾的空格 str Hello world str strip 输出 Hello world 2 ls
  • 在Unity3D中控制动画播放

    用Unity3D也算是好久了 但是每次做项目总还是能学到新的东西 这次做一个TPS的项目就遇到了这样一个问题 如何同时在上下半身播放不同的动画 解决方法其实是很简单 但由于对于动画资源的了解不足导致问题不断 最后是彻彻底底的研究了一遍Uni
  • myeclipse或sts启动时building workspace加载很长时间

    解决方法 Preference gt General gt Starup and Shutdown勾选Refresh workspace on startup完成 这样每次启动项目时重新加载工作空间 等于重新导入了一份项目 就省去了代码的校
  • esp32 作 MCU 端 使用 AT 命令对 esp8266 进行 OTA demo

    AT CUSTOTA total len current packet len offset checksum OK MCU 收到 gt 之后发送 data 当前数据写入到 FLASH 之后 打印 RECV OK 当接收到 total le
  • 解决Python OpenCV 读取IP摄像头(RTSP等)出现error while decoding的问题

    先来看一个简单的读取RTSP的示例程序 import cv2 cap cv2 VideoCapture rtsp admin admin 123 172 0 0 0 ret frame cap read while ret ret fram