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

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. 数据仓库系列1-高质量数据建模
  2. AIX 3D32B80D 错误
  3. Yii的where中的in写法
  4. HUST 1541 Student’s question
  5. DS汽车通过采用沉浸式虚拟现实技术实现展厅转型
  6. android 代码中使用dp,简单谈谈Android中SP与DP的区别
  7. (19)VHDL实现流水灯
  8. GO实例3 Slice append打印
  9. 评《Word排版艺术》-----佐岸
  10. vscode Java语法检查_vscode eslint js代码检查工具
  11. 高端存储“四十不惑”
  12. P1428 小鱼比可爱
  13. H5实现输入框添加语音功能的方法详解
  14. yum install pcre pcre-devel 报错
  15. 【2018可信云大会】太平洋保险丰隽玮:微服务架构实施与治理
  16. 从rookie到基佬~009:无密码卸载Symantec
  17. ECCV2020 Piou Loss论文翻译
  18. numpy.random.poisson(lam=1.0, size=None)
  19. 大学 数据分析 课程设计
  20. HDMapNet:高精度语义地图的动态构建

热门文章

  1. 浅谈微博App在网站推广中的应用
  2. leetcode 526优美的数列
  3. 企业微信会话存档功能开启
  4. Java NIO(二)缓冲区Buffer
  5. idcardweb装入失败_vpk安装错误0xffffe Android Crash问题分析以及解决 - 硬件设备 - 服务器之家...
  6. hydra详细使用教程
  7. 函数getopt(),及其参数optind
  8. 从回合霸王到网游巨头 网易游戏十年史
  9. Flex元素自适应布局
  10. 第七周--数据结构--队列数组