Создать объект для записи видеофайлов
Использовать VideoWriter объект для создания видеофайла из массива или фильма MATLAB ®. Объект содержит информацию о видео и его свойствах. Можно создать VideoWriter с использованием VideoWriter укажите его свойства, а затем запишите видео с помощью объектных функций.
filename - Имя файлаИмя файла, указанное как вектор символа или скаляр строки. VideoWriter создает файл.
VideoWriter поддерживает эти расширения файлов.
|
|
Файл AVI |
|
|
Файл JPEG 2000 движения |
|
| MPEG-4 файл (системы с Windows ® 7 или более поздней или macOS 10.7 и более поздней версии) |
Если не указано допустимое расширение файла, VideoWriter добавляет расширение .avi, .mj2, или .mp4, в зависимости от значения profile аргумент. Если не указано значение для profile, то VideoWriter создает сжатый файл AVI Motion JPEG с расширением .avi.
Пример: 'myFile.avi'
Пример: '../dir/videos/myFile.mj2'
Типы данных: char | string
profile - Тип файла'Motion JPEG AVI' (по умолчанию) | 'Archival' | 'Motion JPEG 2000' | ...Тип файла, указанный как один из этих типов.
Значение profile | Описание |
|---|---|
|
|
Файл Motion JPEG 2000 со сжатием без потерь |
|
|
AVI-файл с кодировкой Motion JPEG |
|
|
Файл JPEG 2000 движения |
|
| MPEG-4 файл с кодировкой H.264 (системы с Windows 7 или более поздней или macOS 10.7 и более поздней версии) |
|
|
Несжатый файл AVI с |
|
|
Несжатый файл 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 невозможно изменить значение свойства. Поэтому измените значения свойств перед открытием видеофайла для записи.
ColorChannels - Количество цветовых каналовЭто свойство доступно только для чтения.
Количество цветовых каналов в каждом выходном видеокадре, указанное как положительное целое число:
Несжатые файлы AVI, Motion JPEG AVI и MPEG-4 имеют три цветовых канала.
Индексированные файлы AVI в градациях серого имеют один цветовой канал.
Для файлов Motion JPEG 2000 количество каналов зависит от входных данных для writeVideo функция: одна для монохромных данных или три для цветовых данных.
Типы данных: double
Colormap - Информация о цвете видеофайлаP-по-3 числовая матрицаИнформация о цвете видеофайла, заданная как числовая матрица с тремя столбцами и максимум 256 строками. Каждая строка матрицы определяет один цвет с помощью триплета RGB. Триплет RGB - это трехэлементный вектор строки, элементы которого задают интенсивности красной, зеленой и синей составляющих цвета. Интенсивности должны находиться в диапазоне [0,1].
Перед вызовом можно явно установить карту цветов на openили с помощью colormap поле структуры кадра фильма во время написания первого кадра.
Colormap применяется только к объектам, используемым для записи индексированных файлов AVI.
Пример: colormap(summer(256))
Типы данных: double | uint8
CompressionRatio - Целевая степень сжатия10 (по умолчанию) | целое число больше 1Целевая степень сжатия, заданная как целое число больше 1. Степень сжатия представляет собой отношение между количеством байтов во входном изображении и количеством байтов в сжатом изображении. Видеоданные сжимаются максимально, вплоть до указанного целевого объекта.
CompressionRatio доступен только для объектов, используемых для записи файлов Motion JPEG 2000. После звонка open, вы не можете изменить CompressionRatio значение. Если вы ранее установили LosslessCompression кому true, затем установка CompressionRatio создает ошибку.
Пример: 5
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Duration - Длительность выходного файлаЭто свойство доступно только для чтения.
Длительность выходного файла в секундах, заданная как скалярное значение.
Типы данных: double
FileFormat - Тип файла для записи'avi' | 'mp4' | 'mj2'Это свойство доступно только для чтения.
Тип записываемого файла, указанный как 'avi', 'mp4', или 'mj2'.
Типы данных: char | string
Filename - Имя файлаЭто свойство доступно только для чтения.
Имя файла, указанное как вектор символа или скаляр строки.
Типы данных: char | string
FrameCount - Количество кадровЭто свойство доступно только для чтения.
Число кадров, записанных в видеофайл, указанное как целое число.
Типы данных: double
FrameRate - Частота воспроизведения видео30 (по умолчанию) | положительное числоЧастота воспроизведения видео в кадрах в секунду, указанная как положительное число.
После звонка open, вы не можете изменить FrameRate значение.
Пример: 10
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Height - Высота каждого видеокадраЭто свойство доступно только для чтения.
Высота каждого видеокадра в пикселях, заданная как скаляр. writeVideo метод устанавливает значения для Height и Width исходя из размеров первого каркаса.
Файлы MPEG-4 требуют размеров рамы, которые делятся на два. Если высота входного кадра для файла MPEG-4 не является четным числом, то VideoWriter вставляет кадр с строкой черных пикселей внизу. Для файлов MPEG-4 в системах Windows допустимое значение зависит от версии Windows.
Типы данных: double
LosslessCompression - Сжатие без потерьtrue | falseСжатие без потерь, указанное как true или false. LosslessCompression доступно только для объектов, используемых для записи файлов Motion JPEG 2000.
Если LosslessCompression является true, то:
writeVideo функция записывает данные так, чтобы распакованные данные были идентичны входным данным.
VideoWriter игнорирует любое указанное значение для CompressionRatio.
После звонка open, вы не можете изменить LosslessCompression значение.
По умолчанию LosslessCompression является false для 'Motion JPEG 2000' профиль и true для 'Archival' профиль.
Типы данных: logical
MJ2BitDepth - Битовая глубина для файлов Motion JPEG 2000[1,16]Битовая глубина для файлов 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
Path - Полный путь к видеофайлуЭто свойство доступно только для чтения.
Полный путь к видеофайлу, указанный как вектор символа или скаляр строки.
Типы данных: char | string
Quality - Качество видео75 (по умолчанию) | целое число в диапазоне [0,100]Качество видео, указанное как целое число в диапазоне, [0,100]. Более высокое качество приводит к более высокому качеству видео и большему размеру файлов. Более низкое качество приводит к более низкому качеству видео и меньшему размеру файлов.
Quality доступен только для объектов, связанных с MPEG-4 или Motion JPEG AVI профиль. После звонка open, вы не можете изменить Quality значение.
Пример: 50
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
VideoBitsPerPixel - Количество битов на пиксельЭто свойство доступно только для чтения.
Количество битов на пиксель в каждом выходном видеокадре, указанное как числовой скаляр.
AVI файлы с truecolor видео, Motion JPEG AVI и MPEG-4 файлы имеют 24 бита на пиксель (8 бит для каждой из трех цветовых полос).
Индексированные файлы AVI в градациях серого имеют 8 бит на пиксель.
Для файлов Motion JPEG 2000 количество битов на пиксель зависит от значения MJ2BitDepth и количество полос данных изображения. Например, если входные данные writeVideo является трехмерным массивом uint16 или int16 значения, затем значение по умолчанию MJ2BitDepth является 16, и VideoBitsPerPixel является 48 (в три раза больше битовой глубины).
Типы данных: double
VideoCompressionMethod - Тип сжатия видео'None' | 'H.264' | 'Motion JPEG' | 'Motion JPEG 2000'Это свойство доступно только для чтения.
Тип сжатия видео, указанный как 'None', 'H.264', 'Motion JPEG', или 'Motion JPEG 2000'.
Типы данных: char | string
VideoFormat - MATLAB представление видеоформатаЭто свойство доступно только для чтения.
MATLAB-представление видеоформата, заданного как вектор символа или скаляр строки.
Для типов файлов, отличных от файлов Motion JPEG 2000, VideoWriter наборы VideoFormat к одному из следующих элементов.
|
Формат видео |
Значение |
|---|---|
|
Несжатые файлы AVI, JPEG AVI или MPEG-4 | 'RGB24' |
|
файлы AVI с индексированным видео | 'Indexed' |
|
AVI-файлы с видео в градациях серого | 'Grayscale' |
Для файлов Motion JPEG 2000: VideoWriter устанавливает VideoFormat на основе значения MJ2BitDepth и формат входных данных изображения для writeVideo способ. Например, если не указать MJ2BitDepth собственность, то VideoWriter задает формат, как показано здесь.
|
Формат данных изображения |
Значение |
|---|---|
Однополосный uint8 | 'Mono8' |
Однополосный int8 | 'Mono8 Signed' |
Однополосный uint16 | 'Mono16' |
Однополосный int16 | 'Mono16 Signed' |
Трёхполосный uint8 | 'RGB24' |
Трёхполосный int8 | 'RGB24 Signed' |
Трёхполосный uint16 | 'RGB48' |
Трёхполосный int16 | 'RGB48 Signed' |
Типы данных: char | string
Width - Ширина каждого видеокадраЭто свойство доступно только для чтения.
Ширина каждого видеокадра в пикселях, заданная как числовой скаляр. 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);
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.