VideoWriter

Создайте объект для записи видео файлов

Описание

Использование VideoWriter объект, чтобы создать видео файла из массива или MATLAB® фильм. Объект содержит информацию о видео и свойствах, которые управляют выходом видео. Можно создать VideoWriter объект с использованием VideoWriter function, задайте его свойства, а затем запишите видео с помощью функций object.

Создание

Описание

пример

v = VideoWriter(filename) создает VideoWriter объект для записи видео данных в AVI- файла с Движущимся JPEG сжатием.

пример

v = VideoWriter(filename,profile) дополнительно применяет набор свойств, адаптированных к определенному формату файла (такому как 'MPEG-4' или 'Uncompressed AVI').

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

расширить все

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

VideoWriter поддерживает эти расширения файлов.

.avi

AVI- файла

.mj2

Файл Motion JPEG 2000

.mp4 или .m4v

MPEG-4 файл (системы с Windows® 7 или более поздней версии, или macOS 10.7 и более поздней)

Если вы не задаете допустимое расширение файла, VideoWriter добавляет расширение .avi, .mj2, или .mp4, в зависимости от значения profile аргумент. Если вы не задаете значение для profile, затем VideoWriter создает сжатый файл AVI Движущийся JPEG с расширением .avi.

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

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

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

Тип файла, заданный как один из следующих.

Значение profileОписание

'Archival'

Файл Motion JPEG 2000 со сжатием без потерь

'Motion JPEG AVI'

AVI файла с использованием Движущегося JPEG кодировки

'Motion JPEG 2000'

Файл Motion JPEG 2000

'MPEG-4'

MPEG-4 файл с H.264 кодировкой (системы с Windows 7 или более поздней версии или macOS 10.7 и более поздней)

'Uncompressed AVI'

Несжатый файл AVI с RGB24 видео

'Indexed AVI'

Несжатый файл AVI с индексированным видео

'Grayscale AVI'

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

profile устанавливает значения по умолчанию для свойств видео, таких как VideoCompressionMethod.

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

Свойства

расширить все

VideoWriter объект содержит свойства, которые управляют выходом видео. Можно создать VideoWriter объект со свойствами, адаптированными к определенному формату, такому как 'Uncompressed AVI' или 'MPEG-4', при помощи VideoWriter функция с предопределенным профилем. Для примера можно создать VideoWriter объект со Motion JPEG AVI и присвойте значение Quality свойство.

v = VideoWriter('newfile.avi','Motion JPEG AVI');
v.Quality = 95;

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

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

Количество цветовых каналов в каждом выходном видеокадре, заданное в виде положительного целого числа:

  • Несжатые файлы AVI, Motion JPEG AVI и MPEG-4 имеют три цветовых канала.

  • Индексированные и полутоновые файлы AVI имеют один цветовой канал.

  • Для файлов Motion JPEG 2000 количество каналов зависит от входных данных к writeVideo функция: один для монохромных данных или три для цветовых данных.

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

Информация о цвете для файла видео, заданная как числовая матрица с тремя столбцами и максимум 256 строками. Каждая строка в матрице задает один цвет с помощью триплета RGB. Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1].

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

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

Пример: colormap(summer(256))

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

Целевой коэффициент сжатия, заданный как целое число, больше 1. Степень сжатия является отношением между количеством байтов в вход изображении и количеством байтов в сжатом изображении. Видео данных максимально сжато, вплоть до заданной цели.

CompressionRatio доступен только для объектов, используемых для записи файлов Motion JPEG 2000. После звонка open, вы не можете изменить CompressionRatio значение. Если вы ранее установили LosslessCompression на true, затем установка CompressionRatio генерирует ошибку.

Пример: 5

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

Длительность выходного файла в секундах, заданная как скалярное значение.

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

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

Тип файла для записи, заданный как 'avi', 'mp4', или 'mj2'.

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

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

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

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

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

Количество систем координат, записанных в видео файла, заданное в виде целого числа.

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

Частота воспроизведения видео в системах координат в секунду, заданная как положительное число.

После звонка open, вы не можете изменить FrameRate значение.

Пример: 10

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

Высота каждого видеокадра в пикселях, заданная как скаляр. The writeVideo метод устанавливает значения для Height и Width на основе размерностей первой системы координат.

MPEG-4 файлы требуют размерностей системы координат, которые делятся на два. Если высота входного кадра для файла MPEG-4 не является четным числом, то VideoWriter заполняет систему координат строкой черных пикселей внизу. Для MPEG-4 файлов в системах Windows допустимое значение зависит от версии Windows.

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

Сжатие без потерь, заданное как true или false. The LosslessCompression свойство доступно только для объектов, используемых для записи файлов Motion JPEG 2000.

Если LosslessCompression является true, затем:

  • The writeVideo функция записывает данные так, чтобы декомпрессированные данные были идентичны входным данным.

  • VideoWriter игнорирует любое заданное значение для CompressionRatio.

После звонка open, вы не можете изменить LosslessCompression значение.

По умолчанию LosslessCompression является false для 'Motion JPEG 2000' профиль и true для 'Archival' профиль.

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

Битовая глубина для файлов Motion JPEG 2000, заданная в виде целого числа в области значений [1,16]. Битовая глубина является количеством наименее значимых битов во входных данных изображения

MJ2BitDepth доступен только для объектов, используемых для записи файлов Motion JPEG 2000. Если вы не задаете значение перед вызовом open метод, затем VideoWriter устанавливает битовую глубину на основе типа входных данных. Для примера, если входные данные для writeVideo является массивом uint8 или int8 значения, затем MJ2BitDepth является 8.

Пример: 8

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

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

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

Качество видео, заданное в виде целого числа в области значений, [0,100]. Более высокие номера качества приводят к более высокому качеству видео и большим размерам файлов. Более низкие номера качества приводят к снижению качества видео и меньшим размерам файлов.

Quality доступен только для объектов, связанных с MPEG-4 или Motion JPEG AVI профиль. После звонка open, вы не можете изменить Quality значение.

Пример: 50

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

Количество бит на пиксель в каждом выходе видеокадре, заданное как числовой скаляр.

Файлы AVI с видео truecolor, Motion JPEG AVI и файлы MPEG-4 имеют 24 бита на пиксель (8 бит для каждой из трех цветовых полос).

Индексированные и полутоновые файлы AVI имеют 8 биты на пиксель.

Для файлов Motion JPEG 2000 количество бит на пиксель зависит от значения MJ2BitDepth и количество полос данных изображений. Для примера, если входные данные для writeVideo является трехмерным массивом uint16 или int16 значения, затем значение по умолчанию MJ2BitDepth является 16, и VideoBitsPerPixel является 48 (в три раза больше глубины бита).

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

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

Тип сжатия видео, заданный как 'None', 'H.264', 'Motion JPEG', или 'Motion JPEG 2000'.

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

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

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

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

Формат видео

Значение VideoFormat

Несжатые файлы AVI, Motion JPEG AVI или MPEG-4

'RGB24'

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

'Indexed'

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

'Grayscale'

Для файлов Motion JPEG 2000, VideoWriter устанавливает VideoFormat на основе значения MJ2BitDepth и формат входных данных изображения в writeVideo способ. Для примера, если вы не задаете MJ2BitDepth свойство, затем VideoWriter устанавливает формат как показано здесь.

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

Значение VideoFormat

Однополосный uint8'Mono8'
Однополосный int8'Mono8 Signed'
Однополосный uint16'Mono16'
Однополосный int16'Mono16 Signed'
Трехполосный uint8'RGB24'
Трехполосный int8'RGB24 Signed'
Трехполосный uint16'RGB48'
Трехполосный int16'RGB48 Signed'

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

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

Ширина каждого видеокадра в пикселях, заданная как числовой скаляр. The writeVideo функция устанавливает значения для Height и Width на основе размерностей первой системы координат.

MPEG-4 файлы требуют размерностей системы координат, которые делятся на два. Если ширина входного кадра для файла MPEG-4 не является четным числом, то VideoWriter заполняет систему координат столбцом черных пикселей на правой оси. Для MPEG-4 файлов в системах Windows допустимое значение зависит от версии Windows.

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

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

openОткройте файл для записи видео данных
closeЗакройте файл после записи видео данных
writeVideoЗапись видео данных в файл
VideoWriter.getProfilesПрофили и форматы файлов, которые VideoWriter поддержки

Примеры

свернуть все

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

Создайте матрицу данных 300 на 300.

A = rand(300);

Создайте VideoWriter объект для записи файла Motion JPEG AVI с именем newfile.avi и откройте файл для записи.

v = VideoWriter('newfile.avi');
open(v)

Запишите матрицу данных A к видео файла.

writeVideo(v,A)

Закройте файл.

close(v)

Создайте видео объекта с заданным профилем, создайте массив, содержащий изображение RGB, а затем запишите массив в видео- файл.

Создайте VideoWriter объект для нового несжатого файла AVI для RGB24 видео.

v = VideoWriter('newfile.avi','Uncompressed AVI');

Откройте файл для записи.

open(v)

Создайте массив, содержащий данные из выборки неподвижного изображения, peppers.png. Запишите изображение в A к видео файла.

A = imread('peppers.png');
writeVideo(v,A)

Закройте файл.

close(v)

Запишите последовательность систем координат в сжатый AVI-файл, сгенерировав последовательность систем координат, создав видео- объект для файла, в который нужно записать, и затем записав системы координат в видеофайл.

Настройте свойства осей и рисунка, чтобы сгенерировать системы координат для видео.

Z = peaks;
surf(Z); 
axis tight manual 
set(gca,'nextplot','replacechildren'); 

Создайте объект средства записи видео для выхода видео файла и откройте объект для записи.

v = VideoWriter('peaks.avi');
open(v);

Сгенерируйте набор систем координат, получите систему координат из рисунка, а затем запишите каждую систему координат в файл.

for k = 1:20 
   surf(sin(2*pi*k/20)*Z,Z)
   frame = getframe(gcf);
   writeVideo(v,frame);
end

close(v);

См. также

|

Введенный в R2010b