视频多路复用器 (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

    H264 视频文件

    .h264

    VLC 媒体文件 (mpeg4)

    .mpeg4

    VLC 媒体文件 (vob)

    .vob

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

  • 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 个参数。您无需提供 MISB 规范中定义的所有参数即可创建兼容 FMV 的视频文件。如果提供了其他的 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 文件中的一组参数包括投影到地面的视频图像帧的四个角的地图坐标。如果提供了四个角的地图坐标,则系统会将其用于创建兼容 FMV 的视频。如果未提供四个角的地图坐标,则请在数字高程模型参数中提供 DEM 数据的源,且该工具将根据上面列出的所需参数来计算视频轮廓线。

  • 视频轮廓线和帧中心的精度取决于所提供的 DEM 数据源的精度。如果您无法访问 DEM 数据,则可以输入相对于海平面的平均高程和单位,例如 15 英尺或 10 米。在使用潜水器的情况下,您可以输入 -15 英尺或 -10 米。使用平均高程或海洋深度的精度要低于提供 DEM 或深海探测数据的情况。如果条件允许,建议您提供 DEM 图层或图像服务。

语法

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 米或更深。如果传感器高度值小于平均高程值,则系统不会为该记录计算四个角坐标。如果您不知道工程区域的平均高程,请使用 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

相关主题