2013-04-08 39 views
0


我在嘗試讀取視頻時出現了一個奇怪的錯誤,在matlab中明智地使用了幀。我做了以下情況:
在Matlab中讀取視頻文件時出錯

xyloObj = VideoReader(vid_name); 
fps = xyloObj.FrameRate; 
nFrames = xyloObj.NumberOfFrames; 
vidHeight = xyloObj.Height; 
vidWidth = xyloObj.Width; 

% Preallocate movie structure. 
mov(1:nFrames) = ... 
    struct('cdata', zeros(vidHeight, vidWidth, 3, 'uint8'),... 
    'colormap', []); 
index =1; 
for k = 1:nFrames 
    mov(index).cdata = read(xyloObj, k); 
    index = index+1; 
end 

我得到以下錯誤:

Error using VideoReader/read (line 80) 
The file could not be read. 

還沒有找到解決這個錯誤在其他地方。
編輯:文件格式是avi。如:D:\ videos \ drunk.avi。

+0

提供了有關視頻及其格式的一些信息。您可以將文件名粘貼到整個路徑。 – 2013-04-08 04:20:20

+0

@Parag它是一個AVI文件。我正在逐一閱讀許多文件。雖然它適用於某些文件,但對於其他文件,我收到此錯誤。 – MaxSteel 2013-04-08 04:23:51

+0

這應該是'對於k = 1:modified_nFrames'而不是'對於k = 1:nFrames'? – 2013-04-08 04:35:53

回答

0

如何使用mmread?我在Linux上使用VideoReader,但在我的情況下,幀的長度不正確。

此外,由於我需要時間戳的視頻,我已經從VideoReader mmread改變。