VideoReader has no available frames

16 views (last 30 days)
Hi, I'm experiencing an issue with VideoReader in R2018a on Windows 10 where I create a VideoReader object, but then no frames are available to work with i.e. hasFrames(v) = 0. I'm not performing any other operations on the object before trying to use available frames. Trying an implay on the object after reading results in "Invalid Video Data - must be a numeric or logical type data". Using readFrame on the object results is "No more frames available to read from file". The same function on the same video works in Ubuntu 16.04 with the same version of matlab (R2018a). So I'm thinking it might be a windows 10 compatibility thing...
Any help would be greatly appreciated.

Accepted Answer

Clyde Webster
Clyde Webster on 24 Oct 2018
I think it is just a codec thing. MATLAB seems to be surprisingly unversatile when it comes to reading different video codecs in Windows. I was using a libx264 here and it was not working. I've switched to MPEG-4 and it is now working.
Video's converted using ffmpeg:
ffmpeg -i <video_in>.avi -c:v mpeg4 -q:v 2 <video_out>.avi

More Answers (1)

KSSV
KSSV on 26 Sep 2018
vidObj = VideoReader('C:\Users\Public\Videos\Sample Videos\Wildlife.wmv');
numFrames = 0;
while hasFrame(vidObj)
F = readFrame(vidObj);
numFrames = numFrames + 1;
imagesc(F)
drawnow
end
numFrames
  1 Comment
Clyde Webster
Clyde Webster on 26 Sep 2018
vidObj =
VideoReader with properties:
General Properties:
Name: 'Cam-18285920.avi'
Path: 'C:\Users\11242435\Videos\Site-Day01\wand'
Duration: 33.3330
CurrentTime: 33.3330
Tag: ''
UserData: []
Video Properties:
Width: 1440
Height: 1080
FrameRate: 30.0003
BitsPerPixel: 24
VideoFormat: 'RGB24'
numFrames =
0

Sign in to comment.

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!