Как стыковать видео при многоканальном захвате

В этой статье в основном рассказывается о том, как использовать MW
Capture SDK для сращивания видео при захвате нескольких каналов.

1. MW Capture SDK предоставляет метод сращивания при захвате нескольких каналов:

  • Назначьте память фреймового буфера в соответствии с разрешением сращиваемого изображения и количеством каналов;
  • Для синхронизации видеоканалов должен быть выполнен процесс синхронизации кадров;
  • Используйте MWCaptureVideoFrameToVirtualAddressEx() для захвата видеокадров с разных каналов;
  • Для синхронизации видеоэкранов следует использовать MWRegulateDeviceTime() для калибровки тактовых частот всех каналов;

2. Метод синхронизации нескольких каналов при захвате :

  • В дополнение к захвату потока, выполните синхронизацию кадров в потоке;
  • Определите статус различных каналов. Используйте MWSetDeviceTime() для синхронизации тактовых частот каналов с входными сигналами;
  • Сравните кадровую информацию в разных каналах. Если значение кадра находится в пределах нормы, то установите значение маски канала равным 1;

В целом:

  1. Буфер занимает относительно большой объем памяти и в буферной памяти каждый канал имеет соответствующую целевую позицию (назначенную pRectDest). При захвате и объединении нескольких видео, вам необходимо использовать MW Capture Video Frame To Virtual Address Ex(), чтобы назначить захваченные кадры разным позициям в буферной памяти.
  2. Чтобы синхронизировать кадры, вам необходимо сослаться на время кадра канала A в качестве стандартного и установить опорный диапазон. Если время кадров других каналов находится в пределах диапазона, то установите значение маски канала равным 1 Поток захвата возьмет синхронизированные кадры в соответствии со значением маски.
  3. Чтобы синхронизировать несколько каналов, вам необходимо использовать MWRegulateDeviceTime() для периодической калибровки тактовых значений, чтобы обеспечить синхронизацию тактовых значений в разных каналах.