VideoReader performance on OSX is stellarly slow

3 次查看(过去 30 天)
Anytime I need to use VideoReader, I get horrid performance out of read(). We're talking about .3-.4s per frame. This is for opening mp4 files, so I initially thought this had something to do with keyframes. However, if I use the read() function to get several hundred images at once, it's actually a teensy bit slower than if I use read to get each sequential image, so this isn't a solution.
Does anyone have any ideas? On Windows is it just as bad, or is this a Mac-only thing?
  2 个评论
M. A. Hopcroft
M. A. Hopcroft 2013-5-28
Same experience on Ubuntu with R2012a and avi files using the xvid codec. No solution as yet.
Julien
Julien 2014-1-7
Same problem on R2013b, it is a problem that has still not be solved. For a 2.3 Mb video, 383 frames takes 306 seconds, this is quite painfull

请先登录,再进行评论。

回答(3 个)

Ben
Ben 2012-5-23
i'm having similar problems. for a 400 MB .mov/mpeg4 file on a fedora linux box, readerobj = VideoReader(filename) takes several minutes. so does info=mmfileinfo(filename). on the other hand, Quicktime will display the first frame and the frame size, rate, and duration almost immediately. it is as if matlab is reading the entire file, not just the header.
why is matlab so slow? are there any work arounds?

Justin Elstrott
Justin Elstrott 2013-11-18
I have the same issue on a Mac running Matlab 2011b. VideoReader hangs after loading ~3000 frames of an XVID encoded .AVI file.

MF
MF 2017-11-24
I have experienced the same problem and found the tip posted below that helped me solved the issue. Source: https://www.mathworks.com/help/vision/ref/vision.videofilereader-system-object.html)
Video Reading Performance on Windows Systems: To achieve better video reader performance on Windows for MP4 and MOV files, MATLAB uses the system's graphics hardware for decoding. However, in some cases using the graphics card for decoding can result in poorer performance depending on the specific graphics hardware on the system. If you notice slower video reader performance on your system, turn off the hardware acceleration by typing:
matlab.video.read.UseHardwareAcceleration('off')
Hardware acceleration can be reenabled by typing:
matlab.video.read.UseHardwareAcceleration('on')

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by