VideoWriter

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

Описание

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

Создание

Описание

пример

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 создает Движущийся JPEG сжатый файл AVI с дополнительным .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 поле структуры кадра фильма во время записи первой системы координат.

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

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

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

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

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

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

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

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

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

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

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

Типы данных: логический

Битовая глубина для файлов 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 с видео истинного цвета, Motion JPEG AVI и MPEG 4 файла имеют 24 бита на пиксель (8 битов для каждой из трех цветных полос).

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

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

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

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

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

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

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

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

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

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

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

Ширина каждого видеокадра в пикселях в виде числового скаляра. 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 путем генерации последовательности систем координат, создания видео объекта для файла, чтобы записать в, и затем записи систем координат в видеофайл.

Setup оси и свойства фигуры сгенерировать системы координат для видео.

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