视频多路复用器 (Image Analyst)

获得 Image Analyst 许可后可用。

摘要

创建一个视频文件,从而将存档视频流文件和按照时间戳同步的关联元数据文件相结合。

该工具将根据视频流文件和单独的关联元数据文件来创建单个兼容 FMV 的视频文件。 可以按同步的时间戳将元数据编码到视频文件中。 合并两个包含视频的文件以及元数据文件的过程被称为多路复用。

使用情况

  • 此工具适用于存档视频文件,而不适用于实时视频流。

  • 要多路复用的视频文件的格式必须为 12 种受支持的视频格式之一。 单独的元数据文件是逗号分隔值 (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

  • 与视频流文件相关联的元数据用于计算视频传感器的飞行路径、视频图像帧中心以及视频帧轨迹在地图上的 4 个拐角。

  • FMV 支持动态视频影像标准委员会 (MISB) 规范。 完整 MISB 规范动态视频影像标准委员会社区网站链接定义的参数远远多于 FMV 所需参数。 可将提供的 MISB 参数编码到最终视频中,包括所有参数或一个子集。

  • 要计算视频图像轨迹的相对拐角点并将其作为帧轮廓显示在地图上,您需要下列 12 个基本元数据字段,将在参数描述中对其进一步详细说明。 如果元数据完整且准确,则该工具将计算视频帧拐角,这样视频帧轮廓的大小、形状和位置随后就可以显示在地图上。 在地图上计算视频帧轨迹所需的元数据字段如下:

    • Unix 时间戳
    • 传感器纬度
    • 传感器经度
    • 传感器高度
    • 平台朝向
    • 平台仰俯
    • 平台滚动
    • 传感器相对滚动
    • 传感器相对高程
    • 传感器相对方位角
    • 水平视域
    • 垂直视域

    这是计算视频和地图之间的转换、在地图上显示视频轨迹以及启用其他功能(如视频和地图的数字化和标记)所需的最小元数据。

  • 可以在元数据模板 FMV_Multiplexer_Field_Mapping_Template.csv 中输入元数据字段的值,可从 C:\Program Files\ArcGIS\Pro\Resources\FullMotionVideo 获取该模板。

    • FMV_Multiplexer_Field_Mapping_Template.csv 文件包含所有 MISB 元数据字段。
    • 创建兼容 FMV 的视频文件仅需上述 12 个参数。 创建兼容 FMV 的视频文件无需提供 MISB 规范中定义的所有参数。 如果提供了附加 MISB 参数,则会将其编码到兼容 FMV 的视频文件中。

  • 所生成的多路复用视频文件的性能取决于元数据文件中所含数据的类型和质量,以及视频数据和元数据文件的同步精确度。

    • 如果您的 FMV_Multiplexer_Field_Mapping_Template.csv 文件仅包含 UNIX Time StampSensor LatitudeSensor 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 个拐角的地图坐标。 如果提供了这 4 个拐角的地图坐标,则其将用于创建兼容 FMV 的视频。 如果未提供这 4 个拐角的地图坐标,则需要在数字高程模型参数中提供 DEM 数据的源,该工具将根据上方列出的所需参数来计算视频轨迹。

  • 视频轨迹和帧中心的精度取决于提供的 DEM 数据源的精度。 如果您没有 DEM 数据的访问权限,则可以输入相对于海平面的平均高程和单位,例如 15 英尺或 10 米。 对于潜水器,可输入 -15 英尺或 -10 米。 使用平均高程或海洋深度的精度低于提供 DEM 或等深数据的精度。 如果适用,建议您提供 DEM 图层或影像服务。

  • 基于动态影像中的对象追踪方法,FMV 支持视频移动目标指示器 (VMTI) 数据。 如果 VMTI 数据记录在与关联的视频文件不同的文件中,则可以使用视频多路复用器工具将其编码到视频文件中。 FMV 支持 MISB 视频移动目标指示器和追踪元数据标准。

    通过使用包含以下字段数据的 CSV 元数据文件,为相应的视频帧提供所需 VMTI 信息,即可将 VMTI 数据编码到您的视频中:

    • LDSVerTimeStampFrameCenterLongitudeFrameCenterLatitudeSensorLongitudeSensorLatitudevmtilocaldataset
    • 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。

参数

标注说明数据类型
输入视频文件

将转换为兼容 FMV 的视频文件的输入视频文件。

支持以下视频文件类型:.avi(支持 H.264,而非 H.265)、.h264.mp2.mp4.m2ts.mpeg.mpeg2.mpeg4.mpg.mpg2.mpg4.ps.tsvob

File
元数据文件

逗号分隔值 (CSV) 文件,其中包含有关特定时间的视频帧的元数据。

每列将代表一个元数据字段,且其中一列必须为时间参考。时间参考为 Unix 时间戳(1970 年至今的秒数)乘以一百万,且将以整数形式存储。之所以采用此种方式来存储时间,是为了可以用整数来引用任何时刻(最小单位为百万分之一秒)。因此,两个 500,000 条目之间的时间差表示历时半秒。

第一行包含元数据列的字段名称。 这些字段名称将在 FMV_Multiplexer_Field_Mapping_Template.csv 文件(可从 C:\Program Files\ArcGIS\Pro\Resources\FullMotionVideo 获取)中列出,您也可以使用该模板将自定义字段名称与其对应的 FMV 字段名称相匹配。 后续每行将包含指定时间的元数据值,称为时间戳。

元数据字段名称可以按任何顺序排列,并且应该与 FMV_Multiplexer_Field_Mapping_Template.csv 模板中列出的名称完全相同,才能将元数据字段名称映射到正确的 FMV 元数据字段名称。

File
输出视频文件

输出视频文件的名称,包括文件扩展名。

受支持的视频文件如下:.h264.mp2.mp4.m2ts.mpeg.mpeg2.mpeg4.mpg.mpg2.mpg4.ps.tsvob

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 timetime shift)以及一个或多个数据行。 用于列名称的行是可选的。

例如,如果视频影像在整段时间内有 5 秒滞后,则时移观测文件将包含一行:0:00, -5。 整个视频将平移 5 秒。

如果视频的 0:18 标记处存在 5 秒滞后,视频的 2:21 标记处存在 9 秒滞后,则时移观测文件将包含以下两行:

0:18, -5
2:21, -9

在这种情况下,将在视频开头和视频结尾处以不同方式对视频进行平移。

可以在时移观测文件中定义任意数量的时移间隔。

File
数字高程模型
(可选)

计算视频帧拐角坐标所需的高程源。 源可以是图层、影像服务、平均地面高程或海洋深度。 平均高程值需要包括测量单位,例如米、英尺或其他长度单位。

视频轨迹和帧中心的精度取决于提供的 DEM 数据源的精度。 建议您提供 DEM 图层或影像服务。 如果您没有 DEM 数据的访问权限,则可以输入相对于海平面的平均高程和单位,例如 15 英尺或 10 米。 对于潜水器,可输入 -15 英尺或 -10 米。 使用平均高程或海洋深度的精度低于提供 DEM 或等深数据的精度。

要计算帧拐角坐标,平均高程值必须始终小于元数据中记录的传感器纬度或深度。 例如,如果拍摄视频时的传感器纬度为 10 米及更高,则有效平均高程应不超过 9 米。 如果在水下拍摄视频时的深度为 -10 米及更深,则有效平均高程(相对于海平面)应为 -11 米及更深。 如果传感器纬度值小于平均高程值,将无法针对该记录计算 4 个拐角坐标。 如果工程区域的平均高程未知,请使用 DEM。

Raster Layer; Image Service; Linear Unit

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.tsvob

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

输出视频文件的名称,包括文件扩展名。

受支持的视频文件如下:.h264.mp2.mp4.m2ts.mpeg.mpeg2.mpeg4.mpg.mpg2.mpg4.ps.tsvob

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 timetime shift)以及一个或多个数据行。 用于列名称的行是可选的。

例如,如果视频影像在整段时间内有 5 秒滞后,则时移观测文件将包含一行:0:00, -5。 整个视频将平移 5 秒。

如果视频的 0:18 标记处存在 5 秒滞后,视频的 2:21 标记处存在 9 秒滞后,则时移观测文件将包含以下两行:

0:18, -5
2:21, -9

在这种情况下,将在视频开头和视频结尾处以不同方式对视频进行平移。

可以在时移观测文件中定义任意数量的时移间隔。

File
elevation_layer
(可选)

计算视频帧拐角坐标所需的高程源。 源可以是图层、影像服务、平均地面高程或海洋深度。 平均高程值需要包括测量单位,例如米、英尺或其他长度单位。

视频轨迹和帧中心的精度取决于提供的 DEM 数据源的精度。 建议您提供 DEM 图层或影像服务。 如果您没有 DEM 数据的访问权限,则可以输入相对于海平面的平均高程和单位,例如 15 英尺或 10 米。 对于潜水器,可输入 -15 英尺或 -10 米。 使用平均高程或海洋深度的精度低于提供 DEM 或等深数据的精度。

要计算帧拐角坐标,平均高程值必须始终小于元数据中记录的传感器纬度或深度。 例如,如果拍摄视频时的传感器纬度为 10 米及更高,则有效平均高程应不超过 9 米。 如果在水下拍摄视频时的深度为 -10 米及更深,则有效平均高程(相对于海平面)应为 -11 米及更深。 如果传感器纬度值小于平均高程值,将无法针对该记录计算 4 个拐角坐标。 如果工程区域的平均高程未知,请使用 DEM。

Raster Layer; Image Service; Linear Unit

代码示例

VideoMultiplexer 示例 1(Python 窗口)

本示例将创建一个视频文件,用于将存档视频与相关元数据相结合。

arcpy.ia.VideoMultiplexer(r"C:\input_video.mpeg", r"C:\video_metadata.csv", r"C:\output_video.mpeg",
                              r"C:\Video_Multiplexer_MISB_Field_Mapping_Template.csv",
                              r"C:\Video_Multiplexer_TimeShift_Template.csv", "c:\\test\\dem.tif”)
VideoMultiplexer 示例 2(独立脚本)

本示例将创建一个视频文件,用于将存档视频与相关元数据相结合。

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.mpeg"
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)

环境

此工具不使用任何地理处理环境。

许可信息

  • Basic: 需要 Image Analyst
  • Standard: 需要 Image Analyst
  • Advanced: 需要 Image Analyst

相关主题