видение. VideoFileWriter

Запишите кадры видео и аудиосэмплы к видеофайлу

Описание

Объект VideoFileWriter пишет кадры видео и аудиосэмплы к видеофайлу. Видео и аудио могут быть сжаты. Доступные компрессионные типы зависят от энкодеров, установленных на платформе.

Примечание

Этот блок поддерживает генерацию кода для платформ, которые имеют файловый ввод-вывод в наличии. Вы не можете использовать этот блок с программным обеспечением Simulink® Desktop Real-Time™, потому что тот продукт не делает ввода-вывода файла поддержки.

Этот объект выполняет лучше всего на платформах с Версией 11 или позже программного обеспечения Player Windows Media®. Это поддержка объектов только распаковало файлы RGB24 AVI на платформах Mac и Linux®.

Сгенерированный код для этого объекта полагается на предварительно созданные файлы библиотеки. Можно запустить этот код вне среды MATLAB®, или повторно развернуть его, но, несомненно, сможете объяснить эти дополнительные файлы библиотеки при выполнении так. Функция packNGo создает один zip-файл, содержащий все части, требуемые запустить или восстановить этот код. Смотрите packNGo для получения дополнительной информации.

Чтобы запустить исполняемый файл, который был сгенерирован от объекта, вы, возможно, должны добавить предварительно скомпилированные совместно использованные файлы библиотеки в свой системный путь. Смотрите MATLAB Coder и Simulink Разделяемые Библиотечные зависимости для деталей.

Примечание

При запуске в R2016b, вместо того, чтобы использовать метод step, чтобы выполнить операцию, заданную Системой object™, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Создание

Синтаксис

videoFWriter = vision.VideoFileWriter
videoFWriter = vision.VideoFileWriter(Filename)
videoFWriter = vision.VideoFileWriter(___,Name,Value)

Описание

пример

videoFWriter = vision.VideoFileWriter возвращает Системный объект средства записи видеофайла, videoFWriter. Это пишет кадры видео в несжатый видеофайл 'output.avi'. Каждый вызов метода step пишет кадр видео.

videoFWriter = vision.VideoFileWriter(Filename) возвращает объект средства записи видеофайла, videoFWriter, который пишет видео в файл, Filename. Типом файла может быть .avi, .mj2, .mp4 и .m4v, заданный свойством FileFormat.

videoFWriter = vision.VideoFileWriter(___,Name,Value) конфигурирует свойства средства записи видеофайла, заданные как один или несколько аргументов пары "имя-значение". Незаданные свойства имеют значения по умолчанию.

Name является именем свойства, и Value является соответствующим значением. Имя должно находиться внутри одинарных кавычек (' '). Можно задать несколько аргументов пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: videoFWriter = vision.VideoFileWriter('myFile.avi','FrameRate',... videoFReader.info.VideoFrameRate);

Свойства

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

Имя файла видеовыхода, заданное как вектор символов. Расширение файла, которое вы даете для Filename, должно совпадать с FileFormat.

Формат выходного файла, заданный как одни из поддерживаемых форматов файлов, показанных в таблице.

FileFormat ОписаниеРасширение файлаПоддерживаемая платформа

'AVI'

Файл Чередования аудио и видео.avi Все платформы

'MJ2000'

Файл Motion JPEG 2000.mj2 Все платформы

'MPEG4'

MPEG-4/H.264 Видео.mp4, .m4vWindows® и Mac

Запишите аудиоданные, заданные как false или true. Используйте это свойство управлять, пишет ли объект аудиосэмплы в видеофайл. Установите это значение к true, чтобы записать аудиоданные. Чтобы записать аудио и видео к файлу, необходимо использовать.avi формат.

Частота видеокадров в кадрах в секунду, заданных в виде положительного числа. Для видео, которые также содержат аудиоданные, будет определен уровень аудиоданных, когда уровень видео, умноженного на количество аудиосэмплов, передал в. Например, если вы используете частоту кадров 30 и передаете 1 470 аудиосэмплов, объект устанавливает аудиосэмпл на 44100, ().

Задайте тип алгоритма сжатия, чтобы реализовать для аудиоданных. Это сжатие уменьшает размер видеофайла. Выберите None (uncompressed), чтобы сохранить несжатые аудиоданные в видеофайл. Другие опции отражают доступные алгоритмы сжатия звука, установленные в вашей системе. Это свойство применяется только при записывании файлов AVI на платформах Windows.

Задайте тип алгоритма сжатия, чтобы использовать, чтобы сжать видеоданные. Это сжатие уменьшает размер видеофайла. Выберите None (uncompressed), чтобы сохранить несжатые видеоданные в видеофайл. Свойство VideoCompressor может также быть установлено в один из компрессоров, доступных в вашей системе. Чтобы получить список доступных видео компрессоров, можно использовать заполнение клавишей Tab. Выполните эти шаги:

  1. Инстанцируйте объекта:

    y = vision.VideoFileWriter

  2. Чтобы запустить функциональность заполнения клавишей Tab, введите последующую обработку и анализ к открытой кавычке.

    y.VideoCompressor='

    Список компрессоров, доступных в вашей системе, появится после того, как вы нажмете клавишу Tab. Например:

Это свойство применяется только при записывании файлов AVI на платформах Windows.

Задайте сжатый тип выходных аудиоданных. Это свойство только применяется, когда вы записываете, распаковал файлы WAV.

Цветовое пространство для файла вывода AVI, заданного как RGB или YCbCr 4:2:2. Это свойство применяется, когда вы устанавливаете свойство FileFormat на AVI и только на платформах Windows.

Размер элемента управления выходного видеофайла, заданного как целое число в области значений [0, 100]. Увеличьте это значение для большего качества видео. Однако выполнение так увеличивает размер файла. Уменьшите значение, чтобы понизить качество видео с меньшим размером файла.

Свойство Quality только применяется, когда вы пишете видеофайлы MPEG4 (на Windows или Mac) или когда вы записываете видео MJPEG-AVI только файлы на Mac или Linux.

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

Использование

Для версий ранее, чем R2016b, используйте функцию step, чтобы запустить алгоритм Системного объекта. Аргументы к step являются объектом, который вы создали, сопровождаемый аргументами, показанными в этом разделе.

Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Синтаксис

Filename = videoFWriter(videoFrame)
Filename = videoFWriter(videoFrame,audio)
Filename = videoFWriter(videoFrame,Y,Cb,Cr,audio)

Описание

пример

Filename = videoFWriter(videoFrame) записи один кадр видео, videoFrame, к выходному файлу. Входным видео может быть M-by-N-by-3 кадр видео RGB истинного цвета или M-by-N полутоновый кадр видео..

Filename = videoFWriter(videoFrame,audio) записи один кадр входного видео, videoFrame и одного кадра аудиосэмплов, audio, к выходному файлу. Это применяется, когда вы устанавливаете свойство AudioInputPort на true.

Filename = videoFWriter(videoFrame,Y,Cb,Cr,audio) записи один кадр видео YCbCr 4:2:2 и один кадр аудиосэмплов, audio, к выходному файлу. Это применяется, когда вы устанавливаете AudioInputPort на true и свойство FileColorSpace к 'YCbCr 4:2:2'. Ширина компонентов цвета Cb и Cr должна быть половиной ширины Y.

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

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

Кадр видео, возвращенный как истинный цвет или 2D полутоновое изображение.

Цветной формат YCbCr, возвращенный в формате YCbCr 4:2:2.

Один кадр аудиосэмплов, возвращенных в одном из следующих форматов.

ПлатформаПоддерживаемые расширения файла
Все платформыAVI (.avi)
Windows Изображение:
.jpg, .bmp
Видео:
MPEG (.mpeg)
MPEG-2 (.mp2)
MPEG-1.mpg

MPEG-4, включая H.264 закодировал видео (.mp4.m4v)
Motion JPEG 2000 (.mj2)
Windows Media Video (.wmv, .asf, .asx, .asx)
и любой формат, поддержанный Microsoft DirectShow® 9.0 или выше.
Аудио:
WAVE (.wav)
Файл Windows Media Audio (.wma)
Аудио формат файла обмена (.aif, .aiff)
Сжатый аудио формат файла обмена (.aifc),
MP3 (.mp3)
Аудио Sun (.au)
Apple (.snd)
Macintosh Видео:
.avi
Motion JPEG 2000 (.mj2)
MPEG-4, включая H.264 закодировал видео (.mp4.m4v)
Фильм в формате QuickTime Apple (.mov)
и любой формат, поддержанный QuickTime, как перечислено на http://support.apple.com/kb/HT3775.
Аудио:
Несжатый .avi
Linux Motion JPEG 2000 (.mj2)
Любой формат, поддержанный вашими установленными плагинами для GStreamer 0.1 или выше, как перечислено на http://gstreamer.freedesktop.org/documentation/plugins.html, включая Ogg Theora (.ogg).

Платформа Windows XP и Windows 7 x64 поставляется с ограниченным набором 64-битных видеокодеков и аудиокодеков. Если сжатому мультимедийному файлу не удается вопроизвести, попытайтесь сохранить мультимедийный файл к поддерживаемому формату файла, перечисленному в таблице выше.

Если вы используете Windows, используйте Версию 11 Windows Media Player или позже.

Примечание

Файлы MJ2 с битовой глубиной выше, чем 8 битов не поддержаны vision.VideoFileReader. Используйте VideoReader и VideoWriter для более высоких битовых глубин.

Чтение аудио из сжатых файлов MP4 с видео и аудио не поддержано vision.VideoFileReader.

Выходные аргументы

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

Имя файла видеовыхода, заданное как '.avi', '.mj2', '.mp4' и '.m4v'. Расширение файла, которое вы даете для Filename, должно совпадать с FileFormat.

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

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

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

infoИнформация о заданном видеофайле
isDone(Логическое) состояние конца файла
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

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

Загрузите видеофайл и запишите файл в объект средства записи.

videoFReader = vision.VideoFileReader('viplanedeparture.mp4');
videoFWriter = vision.VideoFileWriter('myFile.avi', ...
    'FrameRate',videoFReader.info.VideoFrameRate);

Запишите первые 50 кадров из исходного файла в недавно созданный файл myFile.avi.

for i=1:50
  videoFrame = videoFReader();
  videoFWriter(videoFrame);
end

Закройте файлы ввода и вывода.

release(videoFReader);
release(videoFWriter);

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

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