2013-03-27 345 views
4

我在Matlab中使用視頻,並遇到麻煩。matlab - VideoReader框架沒有準確解碼

我在Mac OS X 10.8.2(Mountain Lion)上使用Matlab R2012a。

我可以使用VideoReader加載視頻,並抓住一個框架,像這樣:

vid = VideoReader('movie.mp4'); 
pic = read(vid, 20); 
imshow(pic); 

不過,我在Matlab是看..

enter image description here

取而代之的是(以VLC)..

enter image description here

運動不僅是亂碼(綠松石卡車),而且背景中的綠色卡車實際上已經沒有了那個框架。我猜測編解碼器是以這樣一種方式壓縮電影,使得Matlab無法補償。但是,我找不到任何其他Matlab可以接受的視頻格式。

顯示的視頻是mpeg4,yuv420p。我看到Matlab提到很多關於mpeg2的支持,並且AVI是首選。我已經轉換視頻到各種使用ffmpeg但Matlab的給下面的錯誤對其他文件格式格式:

錯誤使用VideoReader /的init(線447)
無法初始化內部資源。

VideoReader中的錯誤(第132行)
obj.init(fileName);

有什麼想法?

+2

根據'VideoReader'的文檔,它使用QuickTime作爲Mac上的編解碼器。你在Windows上試過這個嗎? (它在Windows上使用DirectShow)另外,您可以嘗試更新QuickTime以查看是否有幫助。 – wakjah 2013-03-27 15:23:58

回答

3

明白了。

感謝@wakjah關於QuickTime的提示。視頻編輯器的朋友建議將MPEG StreamClip轉換爲QuickTime格式。

這個工具把我的mp4文件,讓我Export as QuickTime

果然,Matlab將它加載到mov文件沒有問題,並且工件消失了。

乾杯。

+0

謝謝,你是一個拯救生命的人! – Sadjad 2014-05-21 05:41:24