最近实现的一个功能,需求是将和视频文件的数据逐帧匹配并绘制,最终显示到web页面。

方法有两个:

一是将数据文件发到前端,在前端进行解析和绘制,这样可以在前端进行更复杂的操作和分析,但前端开发量较大;

二是在后端将数据绘制到视频文件,同时将视频地址进行重新定向即可。

通过比较分析,方法二能够满足我们的需求,同时可以快速开发,因此采用方法二进行了快速实现。

实现后的问题是,视频进行处理和加载的速度很慢,通过测试大约需要10s左右,严重影响体验和工作效率。

实际上视频并不大,存在在阿里云OSS上,大约10s的视频,需要先读取视频,进行逐帧的解析和处理,然后上传到本地的文件服务器。

中间的处理流程也不少,一开始以为是流程太多导至时间过长。

通过查找分析,最后发现是VideoCapture直接传入文件在OSS上的地址后,读取视频帧的速度很慢;而如果先将文件下载到本地,再进行读取处理,则很快。

问题猜测:

传入url地址时,VideoCapture的以视频流的方式进行数据读取的,此时为了照顾网络吞吐,处理速度较低,偏向于以视频帧率速度进行数据读取。

而将文件下载到本地再处理时,读入视频后的处理速率可以根据实际情况自行控制。

暂时只是猜测,没有进行详细深究。

【OpenCV】OpenCV的VideoCapture读取网络地址视频慢的问题相关推荐

  1. 3h精通OpenCV(一)- 读取图像视频与网络摄像头

    0.准备工作 右击新建的项目,选择Python File,新建一个Python文件,然后在开头import cv2导入cv2库. 1.读取图像 调用imread()方法获取我们资源文件夹中的图片 使用 ...

  2. Opencv报错004:cv::VideoCapture无法读取本地视频文件,报错:cv::CvCapture_Images::open CAP_IMAGES: Stop scanning. Can‘

    环境描述: – Window10 – VS2019 – Opencv 4.5.5 代码demo如下(主要是在自定义的视频读取函数): void Optical_Flow::video_process( ...

  3. OpenCV中使用类VideoCapture加载视频和打开摄像头

    先直接上示例代码,然后对代码进行讲解. #!/usr/bin/env python # -*- coding: utf-8 -*- # 图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 248 ...

  4. 利用OpenCV的VideoCapture类实现视频读操作

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 博主注:后来,博主又写了一篇更为详细介绍Vide ...

  5. OpenCV 从文件中读取视频并播放

    在OpenCV中要获取一个视频,需要创建一个VideoCapture对象,指定要读取的视频文件: 1.创建读取视频的对象 cap = cv.VideoCapture(filepath) 参数: fil ...

  6. opencv基本操作二(读取视频流与保存视频、读取摄像头并保存视频)

    opencv基本操作二 要点 代码 例程一 例程二 要点 opencv常用读视频函数 cv2.VideoCapture .cv2.VideoCapture.get 等,可以参考这里 opencv常用写 ...

  7. 【opencv四】利用opencv读取显示视频

    在opencv中读取显示视频的头文件是highgui.hpp.视频图像处理头文件imgproc.hpp. 整体代码如下,如要测试自己的图片,需要将代码段中的图片地址更改为自己图片的绝对路径. #inc ...

  8. 【OpenCV 例程 300篇】252.视频文件的读取与保存

    『youcans 的 OpenCV 例程300篇 - 总目录』 [youcans 的 OpenCV 例程 300篇]252. 视频文件的读取与保存 视频文件是由一系列图像组成的,视频的每一帧都是一幅图 ...

  9. 【OpenCV入门】读取图片/视频/调用摄像头

    我的个人博客:谋仁·Blog 微信公众号:谋仁的麻袋 读取图片 预期效果:从指定路径读取一张图片并显示出来. 源代码: #include <iostream>//输入输出流 #includ ...

最新文章

  1. 去除某些网站 复制粘贴尾巴
  2. sw运行很卡怎么办_windows10系统SolidWorks运行速度很慢如何解决
  3. 基于子类的动态代理:
  4. 基于MATLAB的RSSI 和 PLE 定位算法,并通过卡尔曼滤波器减少非视距误差
  5. Codeforces 671D. Roads in Yusland(树形DP+线段树)
  6. oracle 查询创建的全文索引,CSS_oracle全文搜索创建与使用示例,说明:使用全文索引需要使用 - phpStudy...
  7. 详解log4j2(下) - Log4j2在WEB项目中配置
  8. PCM复用设备的安装和使用注意事项
  9. java 生产者消费者代码_Java生产者和消费者代码
  10. 2019最佳工作、平均年薪达百万!想入行,先看这10本书
  11. memcpy()和memmove()函数之间区别
  12. 1.1.29 加入项目符号后换行文字未对齐
  13. 学校新机房装系统——联想机房网络同传
  14. c语言自动插桩,01 - LLVM Pass 实现 C函数 插桩
  15. 编译原理——将代码翻译成四元式序列
  16. python人机交互界面设计_Python-Tkinter图形化界面设计(详细教程 )
  17. 夜雪潇潇,飘如落羽,一片片一朵朵
  18. gtx1050ti和gtx1650哪个好
  19. 九年级计算机教学课时计划,【推荐】九年级下学期教学教学工作计划三篇
  20. 让App推广运营更高效,必须要有这几大功能!

热门文章

  1. smarty java_Smarty for java的使用
  2. surfer插值方法及提取插值结果 转载
  3. 学习笔记:黑马程序员C++从0到1(3~4)
  4. 现货黄金k线图一学就懂
  5. JAVA 中文在线帮助文档手册网址集合
  6. 无法显示PNG图片的完美解决办法
  7. bootstrap 检验 法 原理_广义倾向得分匹配法(GPS)(二)
  8. 右下角弹窗广告彻底关闭
  9. java jdk win2003_Java之.jdk安装-Windows
  10. 如何使用基于GPT-4的Cursor编辑器提升开发效率