How do I play a video in MATLAB?

390 views (last 30 days)
Hello,
I need a way to start playing a video in fullscreen, without the user having to deal with the video player UI. I'm trying to do this:
video = 'path\to\my\video.avi';
videoReader = VideoReader(video);
fps = get(videoReader, 'FrameRate');
disp(fps); % the fps is correct: it's the same declared in the video file properties
currAxes = axes;
while hasFrame(videoReader)
vidFrame = readFrame(videoReader);
image(vidFrame, 'Parent', currAxes);
currAxes.Visible = 'off';
pause(1/videoReader.FrameRate);
end
The problem is that the video does not play at the correct speed: it seems slower and not smooth. Also, I need audio as well. What's the correct way to play a video in MATLAB without exposing the player UI to the user?
Thank you in advance for your help. :)

Accepted Answer

Dinesh Iyer
Dinesh Iyer on 28 Oct 2015
MATLAB has no mechanism to play both and video from a video. There have been suggestions about using:
  • MMPLAY which is a user submission
  • Use VLC Player's ActiveX plugin within a MATLAB GUI.
Dinesh
  2 Comments
Khaled Abdellatif
Khaled Abdellatif on 25 Mar 2020
can one use mmplay not for fullscreen? it does not work without fullscreen option

Sign in to comment.

More Answers (3)

Image Analyst
Image Analyst on 28 Oct 2015
Try this:
implay('rhinos.avi');
  3 Comments
RAVI GIRI
RAVI GIRI on 14 May 2019
Thank you so much!

Sign in to comment.


Sk Sahariyaz Zaman
Sk Sahariyaz Zaman on 28 Apr 2016
  2 Comments
Image Analyst
Image Analyst on 5 May 2018
I have an example for that, attached.

Sign in to comment.


Simon Weber
Simon Weber on 16 Sep 2019
There's an easy way to play videos with sound using the Psychtoolbox.
Check out:
For the quickest way possible just type
SimpleMovieDemo(filename)

Community Treasure Hunt

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

Start Hunting!