VideoReader

Создайте объект считать видеофайлы

Описание

Используйте VideoReader возразите, чтобы считать файлы, содержащие видеоданные. Объект содержит информацию о видеофайле и позволяет вам считать данные из видео. Можно создать VideoReader объект с помощью VideoReader функция, информация о запросе о видео с помощью свойств объектов, и затем читают функции объекта использования видео.

Для получения дополнительной информации смотрите Поддерживаемые Форматы видео и Форматы аудиофайла.

Создание

Описание

пример

v = VideoReader(filename) создает объект v считать видеоданные из файла с именем filename.

пример

v = VideoReader(filename,Name,Value) устанавливает свойства CurrentTimeТег, и UserData использование пар "имя-значение". Например, VideoReader('myfile.mp4','CurrentTime',1.2) начинает читать 1.2 секунды в видео. Можно задать несколько пар "имя-значение". Заключите каждое имя свойства в одинарные кавычки, сопровождаемые соответствующим значением.

Входные параметры

развернуть все

Имя файла, заданное как вектор символов или скаляр строки.

Для получения дополнительной информации смотрите Поддерживаемые Форматы видео и Форматы аудиофайла.

Пример: 'myFile.mp4'

Пример: '../dir/videos/myFile.avi'

Типы данных: char | string

Свойства

развернуть все

VideoReader объект имеет свойства, которые содержат информацию о видеофайле. Свойства только для чтения, кроме CurrentTimeТег, и UserData. Можно просмотреть или изменить значение свойства после создания объекта. Например, эта команда находит значение Duration свойство VideoReader объект, v.

D = v.Duration;

Это свойство доступно только для чтения.

Биты на пиксель видеоданных, заданных в виде числа.

Типы данных: double

Метка времени видеокадра, чтобы читать, заданный в виде числа. Метка времени задана в секундах от запуска видеофайла. Значение CurrentTime может быть между нулем и длительностью видео.

На некоторых платформах, когда вы создаете VideoReader объект, 'CurrentTime' свойство может содержать значение близко к, но не точно, нуль. Это изменение значения 'CurrentTime' свойство происходит из-за различий в как каждый видео чтений и процессы платформы.

Пример: 5.6

Типы данных: double

Это свойство доступно только для чтения.

Длина файла в секундах, заданных в виде числа.

Типы данных: double

Это свойство доступно только для чтения.

Количество видеокадров в секунду, заданный в виде числа. Для видео переменной частоты кадров, FrameRate средняя частота кадров.

Примечание: Для OS X Йосемити (Версия 10.10) и позже, MPEG-4/H.264 файлы записанное использование VideoWriter вопроизведите правильно, но отобразите неточную частоту кадров.

Типы данных: double

Это свойство доступно только для чтения.

Высота видеокадра в пикселях, заданных в виде числа.

Типы данных: double

Это свойство доступно только для чтения.

Имя файла, заданное как вектор символов или скаляр строки.

Типы данных: char | string

Это свойство доступно только для чтения.

Количество систем координат в видеопотоке, заданном в виде числа.

Примечание

Для определенных видео длины, значения NumFrames свойство не сразу доступно. Получить NumFrames свойство, введите v.NumFrames в командной строке.

Типы данных: double

Это свойство доступно только для чтения.

Полный путь к видеофайлу, сопоставленному с объектом читателя, заданным как вектор символов или скаляр строки.

Типы данных: char | string

Типовой текст, заданный как вектор символов или скаляр строки.

Пример: 'Experiment 109'

Типы данных: char | string

Пользовательские данные, заданные как значение любого типа данных.

Это свойство доступно только для чтения.

Представление MATLAB формата видео, заданного как вектор символов или скаляр строки.

Типы файлов, за исключением файлов Motion JPEG 2000, имеют один из них VideoFormat значения.

VideoFormat

Значение VideoFormat

AVI или MPEG 4 файла с видео RGB24

'RGB24'

Файлы AVI с индексируемым видео

'Indexed'

Файлы AVI с полутоновым видео

'Grayscale'

Файлы Motion JPEG 2000, имейте один из следующего VideoFormat значения.

Формат данных изображения

Значение VideoFormat

Одно полоса uint8'Mono8'
Одно полоса int8'Mono8 Signed'
Одно полоса uint16'Mono16'
Одно полоса int16'Mono16 Signed'
uint8 с тремя полосами'RGB24'
int8 с тремя полосами'RGB24 Signed'
uint16 с тремя полосами'RGB48'
int16 с тремя полосами'RGB48 Signed'

Типы данных: char | string

Это свойство доступно только для чтения.

Ширина видеокадра в пикселях, заданных в виде числа.

Типы данных: double

Функции объекта

hasFrameОпределите, доступен ли видеокадр в чтение
readСчитайте один или несколько видеокадров
readFrameСчитайте следующий видеокадр
VideoReader.getFileFormatsФорматы файлов, которые поддерживает VideoReader

Примеры

свернуть все

Создайте VideoReader объект для файла ролика в качестве примера xylophone.mp4.

v = VideoReader('xylophone.mp4');

Считайте все системы координат из видео, одна система координат за один раз.

while hasFrame(v)
    frame = readFrame(v);
end

Отобразите информацию о последней системе координат, возвращенной readFrame.

whos frame
  Name         Size                Bytes  Class    Attributes

  frame      240x320x3            230400  uint8              

Создайте видео объект читателя и считайте видеокадры, запускающиеся в определенное время.

Создайте объект считать файл ролика в качестве примера xylophone.mp4.

v = VideoReader('xylophone.mp4');

Задайте чтение, чтобы начать 2,5 секунды с начала видео.

v.CurrentTime = 2.5;

Создайте объект осей отобразить систему координат. Затем продолжите читать и отображать видеокадры, пока больше систем координат не будет доступно в чтение.

currAxes = axes;
while hasFrame(v)
    vidFrame = readFrame(v);
    image(vidFrame, 'Parent', currAxes);
    currAxes.Visible = 'off';
    pause(1/v.FrameRate);
end

Создайте видео объект читателя и считайте один или несколько видеокадров с помощью индексов системы координат.

Создайте VideoReader объект для файла ролика в качестве примера xylophone.mp4.

v = VideoReader('xylophone.mp4');

Только для чтения первый видеокадр.

frame = read(v,1);

Только для чтения последний видеокадр.

frame = read(v,Inf);

Считайте системы координат 5 - 10.

frames = read(v,[5 10]);

Читайте из 50-й системы координат в конец видеофайла.

frames = read(v,[50 Inf]);

Считайте систему координат из видео путем определения индекса системы координат, и затем считайте остающиеся системы координат видео одна система координат за один раз.

Создайте VideoReader возразите и отобразите значение CurrentTime свойство. Для этого видео, нулевого значения для CurrentTime свойство указывает, что никакие системы координат не были считаны из видео.

vidObj = VideoReader('xylophone.mp4');
vidObj.CurrentTime
ans = 0

Считайте 20-ю систему координат из видео путем определения индекса системы координат. Затем отобразите значение CurrentTime свойство. read метод автоматически обновляет CurrentTime свойство отразить, что 20-я система координат была считана. На этом шаге, вызове readFrame функция возвратила бы 21-ю систему координат.

frame20 = read(vidObj,20);
vidObj.CurrentTime
ans = 0.6667

Считайте остающиеся системы координат видео с помощью readFrame метод. readFrame метод возвращает систему координат, соответствующую времени в CurrentTime свойство. Например, этот код читает и отображает системы координат, запускающиеся в 21-й системе координат, и продолжается, пока больше нет систем координат, чтобы читать.

while(hasFrame(vidObj))
    frame = readFrame(vidObj);
    imshow(frame);
    title(sprintf('Current Time = %.3f sec', vidObj.CurrentTime));
    pause(2/vidObj.FrameRate);
end

Copyright 2019 The MathWorks, Inc.

Советы

  • macOS платформа больше не поддерживает определенные более старые форматы видеофайла. Считать такие файлы с помощью VideoReader:

    • Откройте видеофайл с помощью проигрывателя QuickTime. Если проигрыватель обнаруживает файл, чтобы быть более старого формата, то он автоматически преобразует файл в более новый формат.

    • Сохраните недавно конвертированный видеофайл.

    • Используйте VideoReader считать этот недавно конвертированный видеофайл.

Расширенные возможности

Смотрите также

|

Представленный в R2010b

Для просмотра документации необходимо авторизоваться на сайте