VideoReader

Чтение видеофайлов

Описание

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

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

Создание

Синтаксис

v = VideoReader(filename)
v = VideoReader(filename,Name,Value)

Описание

пример

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

пример

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

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

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

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

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

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

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

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

Свойства

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

Объект VideoReader имеет свойства, которые содержат информацию о видеофайле. Свойства только для чтения, кроме CurrentTime, Tag и 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

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

Примечание

NumberOfFrames не рекомендуется. Используйте CurrentTime вместо этого.

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

Типы данных: 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

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

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

Примеры

свернуть все

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

v = VideoReader('xylophone.mp4');

Считайте все кадры видео.

while hasFrame(v)
    video = readFrame(v);
end
whos video
  Name         Size                Bytes  Class    Attributes

  video      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

Советы

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

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

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

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

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

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

|

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