Matlab: fast playback of large videos
I want to play a large video (1080p @ 30fps, 100K frames) in Matlab so that I can:
- play / pause video
- go to the specified frame number
- get the current frame number
The purpose of this is to annotate each video frame with a (global) frame label in a streamlined manner.
To achieve this, I've tried:
-
VideoReader
: fast playback (~ 30fps), slow buffering (~ 5fps, memory limits) -
vision.VideoFileReader
: slow playback (<5fps), streaming (no / minimal buffering?) -
imread
/imshow
(repeat sequence of images) : slow playback (<5fps), streaming
I am using Matlab R2014a 64 bit on OS X.
What alternative approach can be used for fast playback (~ 30fps) without significant buffering overhead?
source to share
Video reading speed depends on the video format. You can speed up vision.VideoFileReader
if you are using Motion JPEG video.
Reproduction is another issue. What are you using for this? Have you tried vision.VideoPlayer
? There is also vision.DeployableVideoPlayer
one which might be faster, but it only works on Windows.
source to share