Объявление
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, NativeArraypublic bool AddFrame(int width, int height, int rowBytes, TextureFormat format, NativeArray
Параметры
width | Ширина изображения. |
height | Высота изображения. |
rowBytes | Байты в одной строке пикселей. Полезно, если строки содержат отступы. Можно установить на 0, если нет заполнения. |
format | Пиксельный формат. В настоящее время поддерживается только TextureFormat.RGBA32. |
data | Байты, содержащие изображение. |
time | Отметка времени для нового кадра. |
Возвращает
bool true, если операция прошла успешно. False в противном случае.
Описание
Добавляет кадр из необработанного буфера к видеодорожке файла.
Эта версия AddFrame помогает сэкономить на копировании изображений, если исходные данные не находятся в Texture2D. Например, когда данные о пикселях поступают из AsyncGPUReadbackRequest. Дополнительные сведения см. в примечании о выравнивании аудио/видео в варианте MediaEncoder.AddFrame с Texture2D. .
Дополнительную информацию о параметре time
см. в разделе Примечание о метках времени в других перегруженных версиях этого метода.