Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Объявление

public bool AddFrame(Texture2D texture);

public bool AddFrame(Texture2D texture, Media.MediaTime time);

Параметры

texture Текстура, содержащая пиксели, которые будут записаны в дорожку для текущего кадра.
time Отметка времени для нового кадра.

Возвращает

bool true, если операция прошла успешно. False в противном случае.

Описание

Добавляет кадр к видеодорожке файла.

Выровняйте количество видеокадров и аудиосэмплов, чтобы каждая дорожка была максимально синхронизирована. Например, в файле с видео 30 кадров в секунду и звуком 48 кГц за каждым добавленным видеокадром должен следовать аудиобуфер из 1600 образцов кадров.

Примечание о временных метках

При добавлении кадра можно дополнительно указать отметку времени, связанную с этим кадром. Чтобы временная метка использовалась, она должна быть действительной (см. MediaTime.IsValid).

Если метка времени не указана, кадр добавляется с использованием указанной частоты кадров видео (см. VideoTrackAttributes.frameRate) для вычисления разницы во времени между кадрами. В некоторых ситуациях необходимо указать отметку времени:

1. Когда видеодорожка создается без допустимой скорости (см. VideoTrackAttributes.frameRate). В этом случае всем добавленным кадрам должна быть присвоена отметка времени, так как между кадрами нет предварительно определенной разницы во времени.
2. Когда разница во времени между последним кадром и добавленным кадром не так, как ожидалось. Например, когда запись в Unity и игровой цикл длится дольше, чем ожидалось, разница во времени между кадрами больше не является постоянной. В этом случае вы должны указать временную метку, связанную с добавленным кадром. Таким образом, при воспроизведении записанного фильма оно будет соответствовать тому, что было видно во время записи. Полученный фильм будет иметь переменную частоту кадров (VFR), поскольку разница во времени между каждым кадром не одинакова.

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


Объявление

public bool AddFrame(int width, int height, int rowBytes, TextureFormat format, NativeArray data);

public bool AddFrame(int width, int height, int rowBytes, TextureFormat format, NativeArray data, Media.MediaTime time);

Параметры

width Ширина изображения.
height Высота изображения.
rowBytes Байты в одной строке пикселей. Полезно, если строки содержат отступы. Можно установить на 0, если нет заполнения.
format Пиксельный формат. В настоящее время поддерживается только TextureFormat.RGBA32.
data Байты, содержащие изображение.
time Отметка времени для нового кадра.

Возвращает

bool true, если операция прошла успешно. False в противном случае.

Описание

Добавляет кадр из необработанного буфера к видеодорожке файла.

Эта версия AddFrame помогает сэкономить на копировании изображений, если исходные данные не находятся в Texture2D. Например, когда данные о пикселях поступают из AsyncGPUReadbackRequest. Дополнительные сведения см. в примечании о выравнивании аудио/видео в варианте MediaEncoder.AddFrame с Texture2D. .

Дополнительную информацию о параметре time см. в разделе Примечание о метках времени в других перегруженных версиях этого метода.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3