MATLAB Answers

VideoReader performance on OSX is stellarly slow

14 views (last 30 days)
Kenz
Kenz on 23 Feb 2012
Answered: MF on 24 Nov 2017
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 Comments
Julien
Julien on 7 Jan 2014
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

Sign in to comment.

Answers (3)

Ben
Ben on 23 May 2012
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 on 18 Nov 2013
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 on 24 Nov 2017
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!