在处理视频时,通常要使时间码在多个不同的视频源和信号处理设备之间保持同步。为此,你可能需要使UE4采用AJA视频输入的时间码。那么你知道怎么做才能够让UE4采用AJA视频输入的时间码呢?
UE4采用AJA视频输入的时间码
要在虚幻编辑器中工作时查看虚幻引擎正在使用的实际时间码值,就需要使用“时间码提供者”面板。在“窗口”>“开发人员工具”>“时间码提供者”下的主菜单中找到此面板。
它显示当前时间码,时间码提供者(时间码值的来源)以及每秒内生成的时间码帧数,可以将该面板停靠在主关卡编辑器的UI中的任何位置。
或者,使用以下控制台命令:stat timecode
看到以HH:MM:SS:FF格式在“虚幻编辑器”视口中打印的值:
如果我们将UE4设置为从输入信号中采用时间码,或者将锁相锁定为视频信号,则看到时间码和锁相的来源。例如:
我们也可以使用此命令来确认虚幻引擎正在以您期望的速率生成帧,并且使用与输入视频相同的时间码值。
设置时间码和同步锁
以下步骤显示了如何使虚幻引擎采用来自AJA或Blackmagic设备的输入SDI视频提要的时间码值,以及如何使虚幻引擎将其帧速率锁定为该提要,从而使其仅生成一帧输入每一帧的输出。
1、右键单击内容浏览器,然后选择创建基本资产>蓝图类。
2、在“选择父类”窗口中,展开“所有类”部分(1)。搜索并选择AjaTimecodeProvider类(如图所示)或BlackmagicTimecodeProvider类(2),然后单击“选择”(3)。
返回到内容浏览器,为新资产指定一个描述性名称,例如AJA_Timecode_Port或Blackmagic_Timecode_Port。
3、双击新资产,以在“蓝图编辑器”中将其打开,然后在“详细信息”面板中设置属性。
要从传入的视频流中读取时间码,可以将“视频配置”或“ 媒体配置”设置为指向AJA或Blackmagic卡上的端口,以及(如果适用)要从Feed中读取的时间码的类型(LTC或VITC)。 如果使用的是AJA卡,并且要从卡上的参考端口而不是从视频流中读取时间码,启用“使用参考输入”并设置“参考配置”而不是“视频配置”。
4、编译并保存蓝图类,然后关闭蓝图编辑器。
5、如果想将UE4同步锁定到视频源,可以重复前面的步骤以创建并设置另一个Blueprint类,但是这次使用AjaCustomTimeStep或BlackmagicCustomTimeStep作为父类。
6、此类需要与AjaTimecodeProvider或BlackmagicTimecodeProvider相似的设置:
7、从主菜单中,选择“编辑”>“项目设置”。
在“项目设置”窗口中,打开“引擎”>“常规设置”类别(1),然后找到“时间码”部分(2)。从TimecodeProvider下拉列表中,选择创建的时间码端口Asset。
8、如果想将UE4同步锁定到您的视频源,找到上面的“帧速率”部分,然后在该部分的底部展开高级属性。从“自定义TimeStep”下拉列表中,选择创建的同步锁端口资产。
9、关闭虚幻编辑器,然后重新启动项目。
如果使用“媒体配置文件”为您的项目设置多种不同的媒体配置,则还可以覆盖每个“媒体配置文件”中“时间代码”和“时间步长提供者”的这些默认项目级设置。
只要有视频输入进入到时间码提供者和自定义时间步长类设置的端口,并且该视频具有指定的分辨率,帧速率和时间码格式,UE4就应该采用视频的时间码并锁定其帧更新频率,以便为每个输入帧生成一个输出帧。
,Unreal Engine技巧,Unreal Engine教程