如何实现多通道视频画面的采集时拼接

MWCapture SDK 中提供的采集时拼接多通道画面方法

  • 根据拼接画面分辨率以及数量分配缓冲帧内存 buffer;
  • 如果需要同步视频画面,则需要开启帧同步判断线程;
  • 使用 MWCaptureVideoFrameToVirtualAddressEx() 采集各通道视频帧数据;
  • 如果同步视频画面,需要使用 MWRegulateDeviceTime() 校准各个通道时钟;

采集时同步多通道画面方法

  • 在采集线程之外开启帧同步判断线程;
  • 判断各通道信号状态,对有信号的通道使用 MWSetDeviceTime() 进行时钟同步;
  • 比对各通道获取的帧信息,如果在限值范围内,则置通道掩码为 1;

综上

  1. 缓冲 buffer 分配的是一块比较大的内存,每个通道在buffer中都有对应的目标矩形位置(由 pRectDest 指定);
  2. 实现画面的采集时拼接,需要使用 MWCaptureVideoFrameToVirtualAddressEx() 将各通道采集到的帧指定在缓冲buffer的不同位置。
  3. 帧同步需要以通道 A 采集到的帧时间作为参考值,设定参考范围,其他通道采集帧时间在此范围内,则置通道掩码为 1;采集线程根据掩码值采集同步的帧
  4. 同步多通道画面时,需要每隔一段时间使用 MWRegulateDeviceTime() 进行校准,使得各通道时钟同步。

示例 Examples \ Applications \ XICaptureQuad 中有详细的调用示范。

联系人