标注 | 说明 | 数据类型 |
输入视频文件 | 将转换为兼容 FMV 的视频文件的输入视频文件。 支持以下视频文件类型:.avi(支持 H.264,而非 H.265)、.h264、.mp2、.mp4、.m2ts、.mpeg、.mpeg2、.mpeg4、.mpg、.mpg2、.mpg4、.ps、.ts 和 vob。 | File |
元数据文件 | 逗号分隔值 (CSV) 文件,其中包含有关特定时间的视频帧的元数据。 每列将代表一个元数据字段,且其中一列必须为时间参考。时间参考为 Unix 时间戳(1970 年至今的秒数)乘以一百万,且将以整数形式存储。之所以采用此种方式来存储时间,是为了可以用整数来引用任何时刻(最小单位为百万分之一秒)。因此,两个 500,000 条目之间的时间差表示历时半秒。 第一行中将包含元数据列的字段名称。 这些字段名称将在 C:\Program Files\ArcGIS\Pro\Resources\FullMotionVideo 中的 FMV_Multiplexer_Field_Mapping_Template.csv 文件中列出,或者也可以使用模板将自定义字段名称与其对应的 FMV 字段名称相匹配。 每个后续行中均包含特定时间的元数据值,我们称之为时间戳。 元数据字段名称可以按任何顺序进行排列,并且应完全按照 FMV_Multiplexer_Field_Mapping_Template.csv 模板中列出的名称命名,以便将元数据字段名称映射到正确的 FMV 元数据字段名称。 | File |
输出视频文件 | 输出视频文件的名称,包括文件扩展名。 受支持的输出视频文件仅为 .ts。 | File |
元数据映射文件 (可选) | 一个 CSV 文件中包含 5 个列和 87 个行,且基于从 C:\Program Files\ArcGIS\Pro\Resources\FullMotionVideo 中获取的 FMV_Multiplexer_Field_Mapping_Template.csv 模板文件。 此 CSV 文件将元数据字段名称交叉引用到 FMV 字段名称。 每行将代表一个标准元数据参数,例如传感器纬度。 前两列中包含已在表单中提供的标签以及 MISB 参数名称的相关信息。 第三列中包含显示在输入元数据文件参数中的字段名称。 填充第三列之后,该工具即可将元数据字段名称与正确的 FMV 元数据标签进行匹配。 | File |
时移文件 (可选) | 包含已定义时移间隔的文件。 在理想情况下,视频影像和元数据将在时间上同步。 在这种情况下,全动态视频中的影像轮廓线将围绕可在视频影像中看到的要素。 有时视频的时间与元数据中的时间会出现不匹配。 这会导致地面要素被影像轮廓线包围的时刻与该地面要素在视频影像中可见的时刻之间出现明显的时间延迟。 如果该时移是可观测且一致的,则多路复用器可以调整元数据的时间,使其与视频相匹配。 如果视频的时间与元数据不匹配,则请指定 FMV_Multiplexer_TimeShift_Template.csv 模板(位于 C:\Program Files\ArcGIS\Pro\Resources\FullMotionVideo 中)中的时移。 时移观测文件是一个 CSV 文件,其中包含两个列(elapsed time 和 time shift)以及一个或多个数据行。 列名称的行是可选的。 例如,如果视频影像在整个时间内存在 5 秒的滞后,则时移观测点文件将出现以下一行:0:00, -5。 整个视频将移动 5 秒。 如果视频的 0:18 标记存在 5 秒滞后,且视频的 2:21 标记存在 9 秒滞后,则时移观测点文件中将包含以下两行:
在这种情况下,该视频在视频开始时和视频结束时的移动方式将有所不同。 您可以在时移观测点文件中定义任意数量的时移间隔。 | File |
数字高程模型 (可选) | 计算视频帧角坐标所需的高程源。 该源可以是图层、图像服务、平均地面高程或海洋深度。 平均高程值必须包含测量单位,如米、英尺或其他长度测量单位。 视频轮廓线和帧中心的精度取决于所提供的 DEM 数据源的精度。 建议您提供 DEM 图层或图像服务。 如果您无法访问 DEM 数据,则可以输入相对于海平面的平均高程和单位,例如 15 英尺或 10 米。 在使用潜水器的情况下,您可以输入 -15 英尺或 -10 米。 使用平均高程或海洋深度的精度要低于提供 DEM 或深海探测数据的情况。 要计算帧角坐标,平均高程值必须始终小于元数据中记录的传感器高度或深度。 例如,如果视频是在 10 米或以上的传感器高度下拍摄的,则有效平均高度可为 9 米或更低。 如果视频是在深度为 -10 米或更深的水下拍摄的,则有效平均高程(相对于海平面)可能为 -11 米或更深。 如果传感器高度值小于平均高程值,则系统不会为该记录计算四个角坐标。 如果您不知道工程区域的平均高程,请使用 DEM。 | Raster Layer; Image Service; Linear Unit |
获得 Image Analyst 许可后可用。
摘要
创建一个视频文件,从而将存档视频流文件和按照时间戳同步的关联元数据文件相结合。
该工具可根据视频流文件和单独的关联元数据文件来创建兼容 FMV 的单个视频文件。 元数据将按照同步时间戳在视频文件中编码。 将包含视频和元数据文件的两个文件相结合的过程称为多路复用。
使用情况
此工具适用于存档视频文件,而不适用于实时视频流。
要进行多路复用的视频文件的格式必须是受支持的视频格式。 单独的元数据文件为逗号分隔值 (CSV) 文件,其中包含正确的字段标题和关联值。
下表列出了支持作为工具输入的视频格式:
描述 扩展 MPEG-2 传输流
.ts MPEG-2 程序流
.ps MPEG 文件
.mpg MPEG-2 文件
.mpg2 MPEG-2 文件
.mp2 MPEG 文件
.mpeg VLC (mpeg2)
.mpeg2 MPEG-4 影片
.mp4 MPEG-4 文件
.mpg4 MPEG-Dash
.mpd H264 视频文件
.h264 VLC 媒体文件 (mpeg4)
.mpeg4 VLC 媒体文件 (vob)
.vob HLS(自适应比特率 (ABR))
.m3u8 该工具的视频文件输出格式仅为 .ts。
与视频流文件相关联的元数据用于计算视频传感器的飞行路径、视频图像帧中心以及地图上视频帧轮廓线的四个角。
FMV 支持动态视频影像标准委员会 (MISB) 规范。 完整 MISB 规范定义的参数远远多于 FMV 所需参数。 所提供的 MISB 参数将被编码到最终视频中,其中包括所有参数或其子集。
要计算视频影像轮廓线的相对拐角点并将其作为帧轮廓显示在地图上,您需要下面列出的 12 个基本元数据字段,并在参数描述中进一步予以详细说明。 如果元数据完整且准确,则该工具将计算视频帧拐角,并且视频帧轮廓的大小、形状和位置随后可以显示在地图上。
- 精确时间戳
- 传感器纬度
- 传感器经度
- 传感器椭球体高度或传感器真实高度
- 平台航向角
- 平台仰俯角
- 平台滚动角
- 传感器相对滚动角
- 传感器相对高程角
- 传感器相对方位角
- 传感器水平视域
- 传感器垂直视域
此为计算视频和地图之间的转换、在地图上显示视频轮廓线以及启用其他功能(如视频和地图的数字化和标记)所需的最小元数据。
可以在元数据模板 FMV_Multiplexer_Field_Mapping_Template.csv(位于 C:\Program Files\ArcGIS\Pro\Resources\FullMotionVideo)中输入元数据字段的值。
- FMV_Multiplexer_Field_Mapping_Template.csv 文件包含所有 MISB 元数据字段。
- 创建兼容 FMV 的视频文件时只需要提供上面定义的 12 个参数。 您无需提供 MISB 规范中定义的所有参数即可创建兼容 FMV 的视频文件。 如果提供了其他的 MISB 参数,则这些参数将被编码到兼容 FMV 的视频文件中。
所生成的多路复用视频文件的性能取决于元数据文件中所含数据的类型和质量,以及视频数据和元数据文件的同步精确度。
- 如果 FMV_Multiplexer_Field_Mapping_Template.csv 文件仅包含 UNIX Time Stamp、Sensor Latitude 和 Sensor Longitude 字段,则传感器的位置将显示在地图上,但不会显示视频帧的轨迹。 系统将不支持某些功能,例如数字化要素和测量视频内的距离。
- 如果链接视频和元数据的时间戳未能精确同步,则地图上的视频轮廓线和传感器位置将偏离视频播放器中的视图。 在这种情况下,请使用 FMV_Multiplexer_TimeShift_Template.csv 模板来调整视频和元数据的时间。
- FMV_Multiplexer_TimeShift_Template.csv 模板位于 C:\Program Files\ArcGIS\Pro\Resources\FullMotionVideo。
FMV_Multiplexer_Field_Mapping_Template.csv 文件中的一组参数包括投影到地面的视频图像帧的 4 个拐角的地图坐标。 如果提供了四个角的地图坐标,则系统会将其用于创建兼容 FMV 的视频。 如果未提供四个角的地图坐标,则请在数字高程模型参数中提供 DEM 数据的源,且该工具将根据上面列出的所需参数来计算视频轮廓线。
视频轮廓线和帧中心的精度取决于所提供的 DEM 数据源的精度。 如果您无法访问 DEM 数据,则可以输入相对于海平面的平均高程和单位,例如 15 英尺或 10 米。 在使用潜水器的情况下,您可以输入 -15 英尺或 -10 米。 使用平均高程或海洋深度的精度要低于提供 DEM 或深海探测数据的情况。 如果条件允许,建议您提供 DEM 图层或图像服务。
基于动态影像中的对象追踪方法,FMV 支持视频移动目标指示器 (VMTI) 数据。 如果 VMTI 数据记录在与关联的视频文件不同的文件中,则可以使用视频多路复用器工具将其编码到视频文件中。 FMV 支持 MISB 视频移动目标指示器和追踪元数据标准。
通过使用包含以下字段数据的 .csv 元数据文件,为相应的视频帧提供所需 VMTI 信息,即可将 VMTI 数据编码到视频中:
- LDSVer,TimeStamp,FrameCenterLongitude,FrameCenterLatitude,SensorLongitude,SensorLatitude,vmtilocaldataset
- 5,1546300800231000,-76.1309338,36.91118708,-76.1309338,36.91118708,1 0.9938099 1611919 1815608 1711844;1 0.39056745 1438997 1556213 1496645
最后一列 (vmtilocaldataset) 包含检测到的对象边界框,其中每个以空格分隔的值将由以下 3 个值定义:Object_ID Confidence_Level Top_Left_Pixel Bottom_Right_Pixel Center_Pixel。
可以使用 ;(分号)分隔符为给定时间戳指定多个对象检测,如上例中所示。
可以在 FMV_Multiplexer_Field_Mapping_Template.csv 文件中使用 MISB Tag 74。
参数
VideoMultiplexer(in_video_file, metadata_file, out_video_file, {metadata_mapping_file}, {timeshift_file}, {elevation_layer})
名称 | 说明 | 数据类型 |
in_video_file | 将转换为兼容 FMV 的视频文件的输入视频文件。 支持以下视频文件类型:.avi(支持 H.264,而非 H.265)、.h264、.mp2、.mp4、.m2ts、.mpeg、.mpeg2、.mpeg4、.mpg、.mpg2、.mpg4、.ps、.ts 和 vob。 | File |
metadata_file | 逗号分隔值 (CSV) 文件,其中包含有关特定时间的视频帧的元数据。 每列将代表一个元数据字段,且其中一列必须为时间参考。时间参考为 Unix 时间戳(1970 年至今的秒数)乘以一百万,且将以整数形式存储。之所以采用此种方式来存储时间,是为了可以用整数来引用任何时刻(最小单位为百万分之一秒)。因此,两个 500,000 条目之间的时间差表示历时半秒。 第一行中将包含元数据列的字段名称。 如果需要,可使用 FMV_Multiplexer_Field_Mapping_Template.csv 文件将这些字段名称与其对应的字段名称相匹配。 每个后续行中均包含时间字段中所示时间的元数据值。 FMV_Multiplexer_Field_Mapping_Template.csv 模板位于 C:\Program Files\ArcGIS\Pro\Resources\FullMotionVideo。 | File |
out_video_file | 输出视频文件的名称,包括文件扩展名。 受支持的输出视频文件仅为 .ts。 | File |
metadata_mapping_file (可选) | 一个 CSV 文件中包含 5 个列和 87 个行,且基于从 C:\Program Files\ArcGIS\Pro\Resources\FullMotionVideo 中获取的 FMV_Multiplexer_Field_Mapping_Template.csv 模板文件。 每行将代表一个标准的 MISB 元数据标签,例如传感器纬度。 前两列中包含了 MISB 索引和 MISB 标签名称。 第三列包含 in_metadata_file 参数中显示的字段名称(如果存在)。 填充第三列之后,该工具即可将元数据字段名称与正确的 FMV 元数据标签进行匹配。 第四列和第五列将分别表示单位以及与标签相关联的注释。 | File |
timeshift_file (可选) | 包含已定义时移间隔的文件。 在理想情况下,视频影像和元数据将在时间上同步。 在这种情况下,全动态视频中的影像轮廓线将围绕可在视频影像中看到的要素。 有时视频的时间与元数据中的时间会出现不匹配。 这会导致地面要素被影像轮廓线包围的时刻与该地面要素在视频影像中可见的时刻之间出现明显的时间延迟。 如果该时移是可观测且一致的,则多路复用器可以调整元数据的时间,使其与视频相匹配。 如果视频的时间与元数据不匹配,则请指定 FMV_Multiplexer_TimeShift_Template.csv 模板(位于 C:\Program Files\ArcGIS\Pro\Resources\FullMotionVideo 中)中的时移。 时移观测文件是一个 CSV 文件,其中包含两个列(elapsed time 和 time shift)以及一个或多个数据行。 列名称的行是可选的。 例如,如果视频影像在整个时间内存在 5 秒的滞后,则时移观测点文件将出现以下一行:0:00, -5。 整个视频将移动 5 秒。 如果视频的 0:18 标记存在 5 秒滞后,且视频的 2:21 标记存在 9 秒滞后,则时移观测点文件中将包含以下两行:
在这种情况下,该视频在视频开始时和视频结束时的移动方式将有所不同。 您可以在时移观测点文件中定义任意数量的时移间隔。 | File |
elevation_layer (可选) | 计算视频帧角坐标所需的高程源。 该源可以是图层、图像服务、平均地面高程或海洋深度。 平均高程值必须包含测量单位,如米、英尺或其他长度测量单位。 视频轮廓线和帧中心的精度取决于所提供的 DEM 数据源的精度。 建议您提供 DEM 图层或图像服务。 如果您无法访问 DEM 数据,则可以输入相对于海平面的平均高程和单位,例如 15 英尺或 10 米。 在使用潜水器的情况下,您可以输入 -15 英尺或 -10 米。 使用平均高程或海洋深度的精度要低于提供 DEM 或深海探测数据的情况。 要计算帧角坐标,平均高程值必须始终小于元数据中记录的传感器高度或深度。 例如,如果视频是在 10 米或以上的传感器高度下拍摄的,则有效平均高度可为 9 米或更低。 如果视频是在深度为 -10 米或更深的水下拍摄的,则有效平均高程(相对于海平面)可能为 -11 米或更深。 如果传感器高度值小于平均高程值,则系统不会为该记录计算四个角坐标。 如果您不知道工程区域的平均高程,请使用 DEM。 | Raster Layer; Image Service; Linear Unit |
代码示例
此示例可创建一个视频文件,该文件组合了存档视频和相关元数据。
arcpy.ia.VideoMultiplexer(r"C:\input_video.mpeg", r"C:\video_metadata.csv", r"C:\output_video.ts",
r"C:\Video_Multiplexer_MISB_Field_Mapping_Template.csv",
r"C:\Video_Multiplexer_TimeShift_Template.csv", "c:\\test\\dem.tif”)
此示例可创建一个视频文件,该文件组合了存档视频和相关元数据。
import arcpy
from arcpy.ia import *
arcpy.CheckOutExtension("ImageAnalyst")
in_video = "c:\\test\\drone_vid.mpeg"
in_metadata = "c:\\test\\videometadata.csv"
out_video = "c:\\test\\mutiplexer_output.ts"
MISB_mapping = "c:\\test\\Field_Mapping_Template.csv"
time_shift_file = "c:\\test\\timeshift.csv"
in_elevation_layer = "c:\\test\\dem.tif"
arcpy.ia.VideoMultiplexer(in_video, in_metadata, out_video, MISB_mapping, time_shift_file, in_elevation_layer)