如何处理 cv::VideoCapture 解码错误?

2023-12-26

我使用 OpenCV 的 VideoCapture(使用 ffmpeg 支持编译)从 IP 摄像机流式传输 H264 内容。

到目前为止,一切正常,但每隔一段时间我就会遇到解码错误(我猜是来自 ffmpeg):

[h264 @ 0x103006400] mb_type 137 in I slice too large at 26 10
[h264 @ 0x103006400] error while decoding MB 26 10
[h264 @ 0x103006400] negative number of zero coeffs at 25 5
[h264 @ 0x103006400] error while decoding MB 25 5
[h264 @ 0x103006400] cbp too large (421) at 35 13
[h264 @ 0x103006400] error while decoding MB 35 13
[h264 @ 0x103006400] mb_type 121 in P slice too large at 20 3
[h264 @ 0x103006400] error decoding MB 20 3

这些消息显示在控制台中。有没有什么干净的方式来听这些?我想跳过处理有问题的帧。

有任何提示/技巧吗?


最近我解决了同样的问题并尝试解释我遵循的步骤。

我更新了最新的opencv_ffmpeg.dll https://github.com/alalek/opencv_3rdparty/tree/ffmpeg/master_20160207/ffmpeg(我将 opencv_ffmpeg.dll 重命名为 opencv_ffmpeg310.dll 以与 OpenCV 3.1 一起使用,还重命名相同的 dll opencv_ffmpeg2412.dll 以与 OpenCV 2.4.12 一起使用

通过这样做,基本的捕获帧和显示成功,没有问题。但如果我进行一些图像处理或检测,仍然会出现同样的问题,导致捕获帧之间的延迟。

为了解决第二个问题,我使用一个线程连续抓取帧并更新全局Mat进行加工。

here https://github.com/sturkmen72/opencv_samples/blob/master/rtsp/VideoCapture-thread-test.cpp你可以找到我的测试代码(它需要一些改进,例如在更新 Mat 时使用互斥体和锁定内存)

我希望这些信息有用(抱歉我的英语不好)

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

如何处理 cv::VideoCapture 解码错误? 的相关文章

  • 如何获得垂直线穿过的完整内轴线?

    我有一个图像 我想获取穿过其中轴的像素 我尝试使用骨架化 and 中轴方法来获取它们 但这两种方法都返回比相应对象短的一维线 这是带有示例图像的代码 gt gt gt import skimage filter gt gt gt impor
  • 从 2 个摄像头捕获(OpenCV、Python)[重复]

    这个问题在这里已经有答案了 所以我试图从 openCV 中的两个摄像头 python 和 windows 7 进行捕获 我用一台相机拍摄的效果很好 你也会注意到我正在对图像做一些时髦的事情 但这并不重要 这是尝试使用两个的代码 import
  • 将线性数组转换为二维矩阵

    我有一个浮点指针 数组 它代表一个图像 它的元素计数和索引具有宽度 高度 图像不像矩阵 其原点位于左上角 相反 它的原点位于左下角 就像在笛卡尔坐标系中一样 达到最大宽度后 它从左侧开始下一行 所以我想有效地将 这个数组转换为二维矩阵 可选
  • 图像序列到视频质量[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我一直在尝试从一系列图像创建视频 当我使用建议的 ffmpeg 方法时 ffmpeg f image2 i image d jpg video mpg
  • OpenCV:如何使用图像计算相机和物体之间的距离?

    我是 OpenCV 的新手 我正在使用以下公式来计算距离 distance to object mm focal length mm real height of the object mm image height pixels obje
  • Haar训练时正样本和负样本使用多少张图片?

    我已经阅读了大量有关 Haar 训练的内容 但我不清楚应该为正样本集和负样本集使用多少图像 我看到建议使用很多图像 有些人推荐数千张 我也不清楚正负样本图像的数量是否应该相同 这是关于 Haar 训练的最佳教程 你试过这个吗 http no
  • 使用 SURF 在检测到的对象周围绘制矩形

    我正在尝试从涉及冲浪检测器的以下代码中检测对象 我不想绘制匹配项 我想在检测到的对象周围绘制一个矩形 但不知何故我无法获得正确的单应性 请任何人指出在哪里我走错了 include
  • OpenCV 旋转图像而不裁剪澄清

    我想扩展这个主题 参考用户 Lars Schillingmann 给出的这个 SO 问题和接受的答案 在 C 中的 OpenCV 中旋转图像而不裁剪 https stackoverflow com questions 22041699 ro
  • opencv如何使用鼠标事件不规则地选择图像区域? c/c++ [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 最近在学习opencv 有没有办法使用鼠标事件选择图像区域 我已经尝试过三角形的了 如果我想选择特定区域而不是三角形怎么办 谢谢你 我对此进
  • ffmpeg 找不到 vcodec h264

    我是 ffmpeg 的新手 正在 Windows 上使用它 我尝试使用 H 264 vcodec h264 转换 avi 文件 收到此错误 未知编码器 h264 使用 acodec 的 mp3 也会出现 未知编码器 错误 有人可以帮我解决这
  • 如何确定透视变换后的点在新图像平面中的位置?

    我使用 OpenCV Python Numpy 图像中有三个点 我知道这些点的确切位置 P1 P2 N1 我要将图像转换为另一个视图 例如 我将透视图转换为侧视图 如果这样做 我将无法获得图像平面中这三个点的确切位置 我应该以一种可以获得这
  • 在 Python 中使用音频流 RTMP 通过管道和 OpenCV 到 FFmpeg

    我正在尝试使用音频流式传输 FFmpeg 我将在下面展示我的代码 导入模块 import subprocess as sp 创建变量 rtmpUrl rtmp a rtmp youtube com live2 key camera path
  • 使用 ImageMagick 有效地将线扫描图像拼接在一起

    我正在寻找线扫描相机的替代品 用于体育计时 或者更确切地说 用于需要确定位置的部分 我发现普通工业相机可以轻松与商业相机解决方案的速度相匹配 每秒 gt 1000 帧 对于我的需求来说 通常计时的准确性并不重要 重要的是运动员的相对位置 我
  • 尽管重新采样音频过滤器,FFmpeg 对 ts 和 m3u8 文件的切割不准确

    我需要准确地寻找并剪切视频 一些在线资源说将 ss 放在源的前面或后面 结果对我来说是一样的 在下面的示例中 开始时间准确 但持续时间不准确 ffmpeg y ss 00 00 05 t 00 00 05 i output ts 5s wa
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • FFmpeg 代码无法在用于缩略图提取的 http url 上工作

    我正在尝试从 sharepoint 2013 视频库中提取缩略图 我找到了一个可以使用 ffmpeg 提取的链接 这是链接 如何将视频的第一帧保存为图像 https stackoverflow com questions 3575311 h
  • OpenCV 2.4 Jpeg 到 PNG(带 alpha 通道)

    我有一个 JPEG 和一个蒙版 我想创建一个具有三个 JPEG 通道的 PNG 并且 Alpha 通道应该是蒙版 如何使用 OpenCV 实现这一目标 Regards std vector
  • Python 2.7从非默认目录打开多个文件(对于opencv)

    我在 64 位 win7 上使用 python 2 7 并拥有 opencv 2 4 x 当我写 cv2 imread pic 时 它会在我的默认 python 路径中打开 pic 即C Users Myname 但是我如何设法浏览不同的目
  • 导入错误:无法导入名称“FFProbe”

    我无法获取ffprobe包 https github com simonh10 ffprobe在 Python 3 6 中工作 我使用 pip 安装它 但是当我输入import ffprobe it says Traceback most
  • 如何在 FFMPEG 中的多个视频之间创建交叉淡入淡出过渡?

    我目前正在通过 FFMPEG 循环播放带有音频的 MP4 视频 这是代码 del intermediate1 ts del f txt echo file intermediate1 ts gt f txt echo file interm

随机推荐

  • Stimulsoft - 如何在 asp.net core 中渲染报告并以角度显示

    刺激软件报告 https www stimulsoft com en documentation online programming manual index html 如何在 asp net core 中渲染报告及其变量和参数并以角度显
  • 如何为 IE 提供特殊的 CSS?

    我想为 ie8 使用一些不同的 CSS 但只保留一个 CSS 文件 谁能告诉我最好的 黑客 是什么 是的 我知道 hack 不好 但我想至少暂时保留一个 CSS 文件 例如 在非 IE8 浏览器中我希望浏览器看到以下内容 div conte
  • R:具有重复时间索引条目的时间序列

    我是 R 的 n00b 和堆栈溢出的 n00b 刚刚加入 所以如果我未能使用标记 我不知道 或错过了自述文件中的某些内容 请原谅我 如果您不介意 我将在这里解决我的完整问题 因为也许您可能会好心地告诉我应该如何最好地解决这个问题 Stage
  • Symfony:是否可以为组件设置模板?

    组件没有 setTemplate 我知道 但也许还有另一种方法可以做到这一点 问题似乎是关于 php 框架 http www symfony project org http www symfony project org sfCompon
  • 使用 Jumbotron 容器的输入组大于 Bootstrap 3 中的输入

    我正在使用 Bootstrap 3 输入组尝试一种奇怪的行为 当我将输入组插件 文本或图标 添加到大屏幕内的表单时 输入组高度大于其输入高度 在这里你可以找到一个 JsFiddle 和有问题的屏幕截图 div class jumbotron
  • 检查某项是否存在,如果不存在则报错

    我想使用 PowerShell 检查 IIS Web 应用程序是否存在 或可能存在其他类型的项目 我可以这样做Get Item 但是如果该项目不存在 则会报告错误 这会误导运行脚本的用户 看起来好像出了问题 而实际上一切都很好 我该如何做到
  • 如何终止 MySQL 连接

    我正在使用 MySQL 构建一个网站 我正在使用 TOAD for MySQL 突然无法连接到数据库 因为出现错误 太多联系 Toad for MySQL 是否有任何方法可以查看现有连接以便能够终止它们或简单地关闭所有连接 不 有没有内置
  • 休眠:内存问题?缺点?

    我正在使用 Hibernate 3 6 直到今天我还没有发现使用它的任何缺点 但今天有人告诉我 当项目变大时 使用 Hibernate 的应用程序会出现内存问题 发生这种情况是因为与不使用 hibernate 的应用程序相比 需要创建和存储
  • Flutter 在 facebook 应用 android 和 ios 中打开 facebook 链接

    在我的应用程序中 我存储了 Facebook 网址 我想在 Facebook 应用程序中打开它们 而不是在浏览器中 我尝试使用flutter url launcher 包但它在默认浏览器中打开链接 我想要的是直接打开链接进入脸书应用程序 谁
  • Python 中的 RAII - 离开范围时自动销毁

    我一直在努力寻找RAII https en wikipedia org wiki Resource acquisition is initialization在Python中 资源分配即初始化是 C 中的一种模式 其中 对象在创建时就被初始
  • C 中的字符与多个字符的比较

    如何在不使用 if 的情况下将 C 中的字符与其他字符进行比较 有大量的 例如 假设我有一个名为 i 的字符 我想将其与其他 8 个字符进行比较 而这些字符之间没有任何联系 如果 i 至少等于这 8 个字符中的一个 则表达式为 true 像
  • Admob ( GoogleMobileAds 8.0.0 ) iOS SDK - 未找到 GADInterstitial API,如何使用 GADInterstitialAd - 请提供示例代码?

    以下行没有错误 import
  • 如何增加消息头

    Spring Integration Java DSL 有没有办法修改现有的消息头 我正在使用 SI Java DSL 重新实现下载重试机制 并且希望在发生失败时增加保存下载尝试的消息标头 然后根据与限制相比的尝试次数路由消息 我的路由基于
  • 如何将 google-chrome 设置为 git 默认浏览器

    I want GIT默认情况下在 Chrome 浏览器中打开帮助页面 尽管 Windows 7 默认浏览器是 IE 但由于其他原因我无法更改 我已将以下内容添加到 git 配置文件中 web browser chrome browser c
  • 如何在Java中使用图形输入板? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 几周前 我购买了 Wacom Bamboo 绘图板 我想开发一个小型的java应用程序 它可以捕获用户
  • Titanium 安装后 NPM install -g 不起作用

    我已经在我的 mac 上安装了 Titanium 现在每当我尝试全局安装任何 npm 软件包时都会失败 我的安装的输出是 npm http 304 https registry npmjs org loggly npm http GET h
  • 如何创建一个开关案例,案例是间隔?

    我想创建一个开关 案例 其中案例可以有间隔作为条件 例如 switch 1 lt 21 do one stuff 21 31 do another 我怎样才能达到这个结果 在Python 3 10中 https docs python or
  • Azure 上的 Asp.net MVC 5.2.2

    将 mvc nuget 包从版本 5 1 0 升级到 5 2 2 后 我们在 Azure 上的计算机 webrole 拒绝启动 Web 角色 它处于回收状态 我在事件日志中发现了一个错误 The description for Event
  • 如何将字符串截断为最多 N 个字符?

    预期的方法String truncate usize https doc rust lang org std string struct String html method truncate失败是因为它不考虑 Unicode 字符 考虑到
  • 如何处理 cv::VideoCapture 解码错误?

    我使用 OpenCV 的 VideoCapture 使用 ffmpeg 支持编译 从 IP 摄像机流式传输 H264 内容 到目前为止 一切正常 但每隔一段时间我就会遇到解码错误 我猜是来自 ffmpeg h264 0x103006400