Matlab: ошибка при использовании VideoFileReader/setup

Я использую этот код:

h = vision.VideoFileReader('num2.avi')

h = 
System: vision.VideoFileReader
Properties:
             Filename: '/Users/LoFe/Documents/BME/Work/Work/Work/num2.avi'
            PlayCount: Inf                                                
      ImageColorSpace: 'RGB'                                              
  VideoOutputDataType: 'single'  

Он работает хорошо, но когда я хочу вызвать на нем шаг, я получаю следующее:

while ~isDone(h)
    hFrame = step(h);
end

Error using VideoFileReader/setup
Could not open the specified file.

Error in
/Applications/MATLAB_R2013a.app/toolbox/matlab/system/+matlab/+system/+mixin   
/FiniteSource.p>FiniteSource.isDone
(line 39) 

Я использую MATLAB 2013a в OS X (Mavericks), что мне делать? Он отлично работает на Windows 7.


person user3423349    schedule 13.08.2014    source источник
comment
Я предполагаю, что кодек, который использовался для кодирования видео, не поддерживается на вашем Mac. Для MATLAB поддерживаемые кодеки, которые может читать видеоридер CVST, различаются между Mac и Windows. Попробуйте использовать Handbrake, чтобы перекодировать файл в MP4, а затем снова попробуйте запустить код. handbrake.fr Кроме того, вы пробовали использовать класс VideoReader? mathworks.com/help/matlab/ref/videoreader-class.html< /а>   -  person rayryeng    schedule 13.08.2014
comment
Благодарю вас! Он работает с .mov!   -  person user3423349    schedule 13.08.2014
comment
Прохладно! Если я напишу ответ, вы его примете?   -  person rayryeng    schedule 13.08.2014
comment
Конечно! Спасибо еще раз!   -  person user3423349    schedule 13.08.2014
comment
Прохладно! Спасибо! Я только что опубликовал ответ.   -  person rayryeng    schedule 13.08.2014


Ответы (1)


Как мы обсуждали в комментариях, кодек, который использовался для кодирования видео, может не поддерживаться на вашем Mac. Для MATLAB поддерживаемые кодеки, которые может читать видеоридер CVST, различаются между Mac и Windows.

Поэтому попробуйте перекодировать видео в формат, родной для Mac, например, в файл фильма QuickTime или в файл MP4. HandBrake — идеальный инструмент для этого.

Кроме того, возможно, попробуйте использовать собственный класс MATLAB VideoReader, чтобы увидеть, сможете ли вы прочитать файл и извлечь видеокадры. Подробнее см. в документации: http://mathworks.com/help/matlab/ref/videoreader-class.html.

Однако похоже, что вы устранили ошибку, поскольку сработало преобразование ее в файл фильма QuickTime.

Рад, что смог помочь!

person rayryeng    schedule 13.08.2014
comment
@Yvon - Хороший обходной путь. Это не требует повторного кодирования, но вам потребуется установить avisynth. Хотя небольшая неудача. - person rayryeng; 14.08.2014
comment
Просто прочитайте это avisynth.nl/index.php/. Я часто использую avisynth, и он очень прост в использовании, но я не знал, что они не поддерживают Mac :( Так что нужно пройти долгую процедуру настройки, чтобы заставить его работать - а не мелкая неудача! - person Yvon; 14.08.2014