2016-02-25 3 views
0

Я новичок в MATLAB, у меня есть несколько видеороликов по 100 ГБ каждый (продолжительность 10 часов). Я хочу рассчитать некоторые функции на каждом n-ом кадре видео. Я следил за this code Но мой компьютер спит только для поиска количества кадров в одном видео. то естьОбработка очень больших видеофайлов в Matlab

nFrames = get(vidObj, 'NumberOfFrames'); 

Есть ли более быстрый способ обработки огромных видеороликов, как у меня, так как это кажется очень медленным. Также я пробовал смотреть в интернете, но не нашел разумного решения.

Заранее спасибо.

+0

100GB, обрабатываете ли вы несжатые видеоролики? Моей первой попыткой было создать управляемые части, разделить видео в легко управляемых сегментах (возможно, 1 час). Использование прямой копии потока не должно занимать много времени, чем копирование файла такого размера. – Daniel

+0

Код использует старый синтаксис, 'vidObj.NumberOfFrames' является новым, но я не думаю, что это будет иметь значение. Просто имейте в виду, что могут возникнуть дополнительные проблемы с этим кодом, которые не полностью совместимы с последними версиями MATLAB. – Daniel

+0

Я пробовал 'vidObj.NumberOfFrames', но это не имело никакого значения. И я не думаю, что разделение видео на куски было бы хорошо для меня в смысле приложения. – Muaz

ответ

0

Matlab is dogslow, поэтому вы можете использовать ffmpeg вместо этого. Ваши конкретные функциональные возможности держится в стороне, вы можете извлечь отдельные изображения из видео с помощью следующей команды:

ffmpeg -i input.mp4 -vf fps=60 out%d.png 

Ffmpeg обработка видео намного быстрее по сравнению с обработкой видео Matlab.