项目需要将视频中每十帧抽取一帧,实际操作中发现,如果按照这样来写代码

vid = VideoReader(namestr);

for ii = 1 : 10 : vid.NumberOfFrames

frame = read(vid, ii);

imwrite(frame, xxx, ‘jpg‘);

end

设定循环变量为每10,然后直接从视频对象中read出图像帧,跑起来发现取一帧少则一秒 多则四五秒

这非常反直觉,因为大家逐帧抽取的时候都是一秒能抽好几百帧。

仔细想一想其实MP4作为一种压缩视频的格式,在压缩每一帧的过程中是使用到了前面几帧的信息,所以我们在看一些有损坏的视频的时候会出现连着几秒都有色块混乱,然后过了这一阵后面就好了。

于是在读帧的时候直接从中间抽,它需要到前后去寻找有关联的信息,这就耽误了时间。

所以实际操作中不妨曲线救国,先把所有的帧都提出来,再按需抽取,就可以节约很多时间

vid = VideoReader(namestr);

for ii = 1 : vid.NumberOfFrames

frame = read(vid, ii);% 读取帧

imwrite(frame, xxx, ‘jpg‘);

end

imageName = 1;

for ii = 1 : 10 : vid.NumberOfFrames

movefile(xxx, yyy);

imageName = imageName + 1

end

祝大家在视频处理的过程中一切顺利~

原文:http://www.cnblogs.com/yying/p/6890387.html

matlab打开mp4视频时报错,关于MATLAB提取MP4视频帧时候,跨帧取速度会慢相关推荐

  1. 打开.jmx文件时报错:CannotResolveClassException

    打开.jmx文件时报错CannotResolveClassException: 解决办法: 1.下载最近的jmeter-plugins-manager.jar(下载网址:https://jmeter- ...

  2. php-ffmpeg保存为.mp4格式时报错

     原文: php-ffmpeg保存为.mp4格式时报错:FFMpeg\Exception\RuntimeException: Encoding failed in - 搜栈网 (seekstack.c ...

  3. UiPath利用Open browser组件打开IE浏览器时报错Cannot communicate with Internet Explorer browser,而chrome及Firefox却正常

    UiPath利用Open browser组件打开IE浏览器时报错,而chrome及Firefox却正常 报错信息如下: Message: Cannot communicate with Interne ...

  4. jmeter打开jtl文件时报错

    目录 [问题描述] [问题分析] [解决方案] [问题描述] jmeter打开jtl文件时报错,且展示了部分数据(样本数与实际样本数不一致),如下图所示: [问题分析] 1.根据上图提示,查看当前jm ...

  5. matlab打开笔记本摄像头_如何利用MATLAB实现摄像头视频获取和保存

    一.读取摄像头视频 如题目,首先你需要有一个摄像头(usb或者本本自带的都可以)并且安装好了驱动,保证设备可以正常使用. 先来段简单的通过MATLAB显示摄像头视频的代码: vid = videoin ...

  6. Matlab中ode45求解时报错:必须返回列向量。

    Matlab中使用ode45报错如下: 错误使用 odearguments (第 93 行) FUNC 必须返回列向量. 这是因为dydt没有被指定为列向量,只需加入一行代码,如图所示. 代码附在下方 ...

  7. 打开Jupyter Notebook 时报错:EnvironmentLocationNotFound: Not a conda environment:

    使用Anaconda安装好Jupyter Notebook后,打开之后点击上方conda时报错如下: 解决方法如下: 更改文件: F:\Software\anaconda\Lib\sitepackag ...

  8. Keil5打开STM32CubeMX工程时报错“Loading PDSC Debug Description Failed for STMicroelectronics STM32Lxxxxxxx”

    在使用STM32CubeMX时选用STM32L0xx系列和STM32L4xx系列时,设置好配置后,用Keil5打开工程时总是遇到"Loading PDSC Debug Description ...

  9. Matlab安装bav-io插件时报错:Either you are offline, a firewall is blocking EEGLAB from accessing itsplugin s

    先说一下我是用想用eeglab安装一个插件,使得eeglab能够读取.vhdr后缀的文件,先是 这两个选项直接没有,于是上官网下载最新的版本,但是网上给的网址:Download EEGLAB,在我下载 ...

最新文章

  1. zip 文件下载函数封装
  2. 【bzoj1179】 Apio2009—Atm
  3. 数据流图中flow不显示文字_发动机系统数据流一般参数的解读
  4. Nginx ab压力测试
  5. Android APP 引导页实现-第一次应用进入时加载
  6. 2014年最具人气国外WORDPRESS主题
  7. java创建临时文件_用Java创建一个临时文件
  8. Codeblocks 开发板调试简单教程
  9. Oracle→表、表字段数据类型、表DDL语句、数据DML语句、约束、case...when、decode
  10. 【概率笔记】条件概率这样学才快啦
  11. 分析arm Internal error: synchronous external abort: 96000010 [#1] PREEMPT SMP
  12. 谷歌浏览器安装 elasticsearch-head 插件
  13. Flink Table和SQL中Table和DataStream的相互转换(fromDataStream、toChangelogStream、attachAsDataStream)
  14. 拓扑优化丨99行拓扑优化详细解释(OC优化准则)
  15. MCE | RNA 逆转录小提示
  16. IOS开发之延时执行的几种方法
  17. 百分六用计算机该怎么算,24975000的百分之五是多少,用计算器怎么算?
  18. Calendar加減月份、年份-月底的处理逻辑
  19. charles 抓包修改app页面数据
  20. pyinstaller打包软件失败的真正原因

热门文章

  1. BiSeNetV1 面部分割
  2. Html5(H5)是什么?
  3. 锁存器,D触发器和寄存器的关系与区别
  4. SCAU2021春季个人排位赛第七场 (部分题解))
  5. Revit API 开发 (10): ExtensibleStorage 外部存储
  6. python性能分析工具
  7. 橘子学Mybatis03之代理模式
  8. sublime的自动保存设置
  9. 理科580分学计算机,高考理科580分能上什么学校 理科580分左右的大学有哪些
  10. 推荐一个开源的 .NET 二维码生成库