missing frames in mp4

12 views (last 30 days)
Stefan Monstein
Stefan Monstein on 31 Oct 2018
The attached movie-file has about 38 frames. I can see them with VLC and with MPC-HC. Frames are 20ms appart as seen in the timestamps at the bottom of each image. Matlab however, only shows half of these frames every 40ms. How can I get all frames?

Answers (1)

YT
YT on 31 Oct 2018
From the documentation on VideoReader
v = VideoReader('stefan.mp4');
currAxes = axes;
while hasFrame(v)
vidFrame = readFrame(v);
image(vidFrame, 'Parent', currAxes);
currAxes.Visible = 'off';
pause(1/v.FrameRate);
end
More info on VideoReader can be found here
  7 Comments
Hugo Lehoux
Hugo Lehoux on 12 Mar 2021
I have done some research, it appears one codec that is problematic is the Motion JPEG (MJPG or MJPEG). I have not tested all of them of course, and it seems I cannot get information on the file you provided on Matlab for some reason, so I don't know if it is encoded in MJPEG, but if that is the case, then that could explain why Matlab only reads half the frames. I have checked again and VLC does correctly read the interlaced frames on this file.
Constantino Carlos Reyes-Aldasoro
I had a similar problem, I changed from mp4 to AVI and now I can see all my frames. The size of the video tripled, but I have all the frames.

Sign in to comment.

Products


Release

R2015b

Community Treasure Hunt

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

Start Hunting!