texture | 包含要写入当前帧轨道的像素的纹理。 |
time | 新帧的时间戳。 |
布尔值 如果操作成功,则为 True。否则为 False。
将一个帧附加到文件的视频轨道。
保持视频帧和音频采样的数量对齐,以便尽可能地同步每个轨道。例如,在一个 30FPS 视频和 48KHz 音频的文件中,每个添加的视频帧后面应该跟一个 1600 个样本帧的音频缓冲区。
有关时间戳的说明
添加帧时,可以选择指定与该帧关联的时间戳。要使用该时间戳,它必须有效(参见 MediaTime.IsValid)。
当没有提供时间戳时,将使用指定视频帧速率(参见 VideoTrackAttributes.frameRate)来附加该帧以计算帧间时间差。有几种情况下必须指定时间戳:
1. 当创建视频轨道时没有有效速率(参见 VideoTrackAttributes.frameRate)。在这种情况下,所有 添加的帧都必须给出一个时间戳,因为没有预定义的帧间时间差。
2.当最后一帧和追加的帧的时间差与预期不符时。例如,在 Unity 中录制,并且游戏循环持续时间长于预期,帧间时间差将不再是常数。在此情况下,必须指定与追加的帧关联的时间戳。这样,在播放录制的电影时,它将与在录制期间所看到的画面一致。生成的电影将具有可变帧率 (VFR),因为每帧之间的时间差并不完全相同。
对于具有预定义速率的轨道,可以混合有时间戳和无时间戳的两种变体,只要时间值最终单调增加即可。以这种方式添加的帧不必在时间上等距。添加时间戳早于最后一帧时间戳的帧无效。
width | 图像宽度。 |
height | 图像高度。 |
rowBytes | 一行像素中的字节数。在行包含填充时很有用。如果没有填充,可以将其设置为 0。 |
format | 像素格式。当前仅支持 TextureFormat.RGBA32。 |
data | 包含图像的字节数。 |
time | 新帧的时间戳。 |
布尔值 如果操作成功,则为 True。否则为 False。
将原始缓冲区的帧附加到文件视频轨道。
此版本 AddFrame 有助于节省图像复制,前提是源数据不在 Texture2D 中。例如,当像素数据来自 AsyncGPUReadbackRequest 时。有关更多详细信息,请参阅 MediaEncoder.AddFrame 的其他重载中有关音频/视频对齐的注释,该重载将采用 Texture2D。
有关 time
参数的更多信息,请参阅本方法其他重载中的有关时间戳的注释。