我有一个从视频中提取帧的代码。代码如下:
addpath('E:\project\coding\wrk_ongoing\Images');
obj = mmreader('ace.mp4');
vid = read(obj);
frames = obj.NumberOfFrames; %Read the Total number of frames and displyed in command window
ST='.jpg';
cd frames
for x = 1:5 % extracting the 5 frames from video
Sx=num2str(x);
Strc=strcat(Sx,ST);
Vid=vid(:,:,:,x);
imwrite(Vid,Strc);
end
cd ..
此代码仅适用于某些视频。我测试了.mp4扩展名的不同视频。其中一些效果很好。但输入视频显示错误
???使用==>时出错vid2frame at 6 初始化失败。 (没有找到中间过滤器的组合来制作 连接。)
我该如何解决这个问题?
答案 0 :(得分:2)
该错误是由于您的视频文件本身造成的。从它的外观来看,MATLAB读取该文件有一个问题,可能是因为文件编码错误或者视频是用MATLAB不支持的编解码器编码的,或者计算机上不存在。有关类似的问题,请参阅此问题:no combination of intermediate filters could be found
这与MATLAB无关,但错误就是您遇到的错误,答案是以与您的操作系统和MATLAB兼容的格式重新编码视频文件。