gpt4 book ai didi

matlab - 从 VideoReader 读取图像变得越来越慢

转载 作者:太空宇宙 更新时间:2023-11-03 20:03:57 29 4
gpt4 key购买 nike

我一直在尝试使用 VideoReader 读取 MP4 文件。 Matlab 能够读取图像,但帧沿着视频越远,花费的时间就越多。

tic;I=read(v,1);toc
Elapsed time is 0.264011 seconds.
tic;I=read(v,2000);toc
Elapsed time is 32.859614 seconds.

另外,我不确定这是否相关,但 Matlab 无法确定文件中的帧数:

 v=VideoReader('S1140007 (~200 cubes, large).MP4');

Warning: Unable to determine the number of frames in this file.

我试过使用 R2012b 和 R2015a 两个版本,问题依旧。然而,在不同的机器上,可以确定帧数并且读取时间不会变长,所以很明显我的机器上配置有问题。我有一个针对此问题的已知解决方案(这可能与编解码器有某种关系吗?),或者一次读取一个图像的替代方法(readFrame 与我的需求无关)。

任何帮助将不胜感激,阿维拉姆

最佳答案

好的,所以这不完全是一个答案,而是一个解决方法...似乎要在为具有未确定帧数的视频创建的 videoreader 对象中设置 NumberofFrames 属性,需要使用以下代码读取最后一帧(如 VideoReader 的文档中所述):

v=VideoReader('path.mp4');
l=read(v,inf);

这会设置视频中的帧数,并允许对视频中的单个帧进行索引和快速读取。但是,这仅适用于 matlab r2012b。在 2015a 中,NumberofFrames 属性由 read(v,inf) trick 设置,但由于某些原因,读取仍然非常耗时。我不确定为什么会发生这种情况,正如我所说,我检查过的其他一些机器能够正确读取我的文件(但有些不能),所以这还远未完成。目前尚不清楚为什么它不能确定帧数,或者为什么计算机之间存在任何差异,以及为什么在某些版本中 last(v, inf) 有效而在其他版本中仅部分有效。

关于matlab - 从 VideoReader 读取图像变得越来越慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32199978/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com