2014-03-31 101 views
2
MATLAB的

代碼:無法讀取.avi文件使用VideoRead

A = aviread('firstAttempt_1395344631.avi'); 

響應:

Error using VideoReader/init (line 447) 
Failed to initialize internal resources. 

Error in VideoReader (line 132) 
      obj.init(fileName); 

Error in untitled (line 1) 
A = VideoReader('firstAttempt_1395344631.avi'); 

有什麼建議?我無法使用aviread,因爲我得到的迴應如下:

Error using aviread (line 148) 
Only uncompressed AVI movies can be read on UNIX. 

Error in untitled (line 1) 
A = aviread('firstAttempt_1395344631.avi'); 
+0

感謝編輯。如果有問題,我有一臺運行OS X 10.8.5的MacBook Air。 .avi文件都是25-50 MB。 – AmyNerd

+0

您使用的是什麼版本的Matlab? QuickTime可以打開並播放文件嗎? AVI是一種容器格式,而不是編解碼器 - 使用QuickTime打開文件並按命令 - 我獲取信息,並讓我們知道使用的編解碼器。另外,你的問題有點混亂。第一條錯誤消息似乎與上面的代碼不匹配。你試過'aviread'和'VideoReader',對吧?後者應該能夠讀取QuickTime可以播放的AVI。 – horchler

回答

0

您是否嘗試過直接運行? -

A = VideoReader('firstAttempt_1395344631.avi'); 

據我所知VideoReader也支持壓縮視頻。看看它的文檔here

這將創建A作爲多媒體讀者對象,即基本上是一個結構,它對於所有的幀保持數據,與關於視頻的信息一起,像幀速率,分辨率,幀數等

以用於幀的特定處理以及如何訪問讀取器對象,其包括與視頻相關聯的元數據的不同部件的一些示例看看here

+0

我嘗試MATLAB的64位2015B windws7 64位,對媒體播放器和播放VLC視頻罰款,仍然MATLAB提供錯誤'無法獲取文件information'。有任何想法嗎? – Gulzar

10

的問題是,雖然VideoReader支持壓縮的視頻,它不會從Unix上運行時,支持壓縮視頻。如果您使用(不推薦)aviread,它會給你這個錯誤信息:

Error using aviread (line 147) 
Only uncompressed AVI movies can be read on UNIX. 

幸運的是,Unix有很好的工具。您可以使用ffmpeg。在Ubuntu的Linux上,安裝apt-get install ffmpeg,並在Mac上,如果你有自制軟件,那麼只需brew install ffmpeg

然後使用ffmpeg解壓。利用第一參考我在谷歌(http://forum.doom9.org/archive/index.php/t-121280.html)發現,這樣的事情應該工作:

ffmpeg -i input.avs -an -vcodec rawvideo -y output.avi 

我沒有嘗試過自己,而新的文件(比如說,output.avi)仍然無法正常工作,aviread,但現在它與VideoReader一起工作。簡單!

+0

這在Mac上適用於我。使用.avi文件'VideoReader'發出一個錯誤,提示'無法初始化內部資源'。 –

0

這將是更好的閱讀使用比aviread VideoReader功能.AVI視頻文件。 VideoReader函數給出了視頻對象的工作。