Способ и устройство для записи и воспроизведения данных видеоизображения компьютерной KVM-сессии
Запись видеоизображения широко используется в большом количестве практических приложений. Во многих случаях изменения происходят только на небольших или разрозненных участках, а видеоизображения либо меняются медленно; остаются неизменными в течение определенного периода времени или оставляют неизменными большие части изображения.
Одним из ярких примеров является запись и воспроизведение компьютерного сеанса KVM, в котором видео или графические данные, выводимые с компьютера, передаются на монитор пользователя. Другой пример - запись видеонаблюдения, когда видеокамера постоянно записывает изображения выбранной области.
В этой статье обсуждается метод видеозаписи, который подходит для записи компьютерных сеансов видео и был реализован в решении ATEN Control Center Video Session Recorder (CCVSR).
CCVSR от ATEN - это инновационное программное решение, которое автоматически делает видеозапись операций, выполняемых администраторами при использовании своих KVM-переключателей через IP. Решение состоит из сервера, на котором запущено программное обеспечение CCVSR (сервер CCVSR), и, по крайней мере, одного переключателя KVM over IP. Коммутатор KVM over IP действует как устройство захвата видео, которое собирает, обрабатывает и передает видеоданные с исходного компьютера на устройство хранения, то есть на сервер CCVSR. Сервер CCVSR хранит видеоданные и может создавать любую часть сохраненных видеоизображений для воспроизведения в соответствии с запросом пользователя.
Метод CCVSR реализует инновационную схему записи видеоданных для записи компьютерных видеосеансов. В традиционных сеансах видеозаписи данные состоят из потока отдельных кадров изображения, которые были захвачены и сохранены. Однако при использовании метода CCVSR каждый кадр изображения делится на несколько блоков. После того, как все блоки каждого исходного кадра были сохранены, сохраняются только те блоки в этом кадре изображения, которые были изменены. Коммутатор KVM over IP захватывает и обрабатывает кадры видеоизображения, но для каждого кадра передает на сервер CCVSR только те блоки, которые были изменены. Сервер CCVSR сохраняет измененные блоки в файле данных вместе с индексами блоков и местоположениями и поддерживает таблицу виртуальных кадров для отслеживания местоположений блоков данных для каждого кадра видеоизображения. Он также поддерживает файл моментального снимка, содержащий моментальные снимки с отметками времени виртуальной таблицы кадров. Файл данных и файл моментального снимка используются для воспроизведения видеоизображений для воспроизведения записей сеанса. Устройство и метод записи подробно описаны в следующих разделах.
Аппаратура
Каждый компьютер обычно имеет консоль, состоящую из монитора и устройств ввода пользователя, таких как клавиатура и мышь (называемые KVM), что позволяет пользователям управлять системой. Когда коммутатор KVM over IP подключен к нескольким компьютерам, он поддерживает удаленные консоли (виртуальные KVM), работающие на клиентских компьютерах через сеть TCP / IP. Как только администратор с клиентского ПК входит в систему с переключателем KVM over IP и получает доступ к одному из подключенных компьютеров, устанавливается компьютерный сеанс KVM. Видео или графические данные с компьютера, к которому осуществляется доступ, передаются в потоковом режиме на монитор клиентского ПК, а ввод с клавиатуры и мыши с клиентского ПК передается на компьютер, к которому осуществляется доступ.
Если сервер CCVSR добавлен и настроен правильно, дополнительный сеанс между KVM через IP-коммутатор и сервер CCVSR автоматически устанавливаются для записи как видео, так и не видео данных компьютерного сеанса KVM. Когда администратор выходит из доступного компьютер и компьютер сеанс KVM завершается, сеанс записи CCVSR автоматически также завершается.
Записи сеанса KVM, включая видео и другие данные, хранятся на сервере CCVSR. Авторизованные пользователи могут удаленно обращаться к серверу CCVSR, искать записи и выбирать запись для воспроизведения. Выбранная видеозапись и программа плеера загружаются с сервера CCVSR. на ПК авторизованных пользователей, где они могут воспроизводить выбранное видео и нажатия клавиш. В загруженной программе плеера и видеозаписи могут быть сохранены отдельно на локальном ПК (с защитой паролем) для последующего воспроизведения.
Метод захвата и обработки видео
Запись видеоданных можно разделить на два этапа. Первый - это видеозахват; второй - хранение видео. Если захват видео происходит на исходном компьютере, то на нем должна быть установлена программа для выполнения захвата. Программное обеспечение обычно называется агентом, а метод захвата называется агентной записью. В отличие от этого метод, который мы представляем, можно назвать безагентной записью, поскольку захват видео выполняется с помощью переключателя KVM over IP, и нет необходимости в программном агенте на компьютере-источнике видео. Коммутатор KVM over IP проводит два сеанса для каждого. записанный сеанс видео. Один сеанс подключается к клиентскому ПК; другой сеанс подключается к серверу CCVSR. Данные видеоизображения, которые передаются на сервер CCVSR, могут быть такими же, как данные, передаваемые на клиентский ПК, или могут отличаться. При использовании метода сервера CCVSR используется последний случай, и в CCVSR передаются различные данные видеоизображения. Чтобы минимизировать пропускную способность сети во время передачи и уменьшить объем дискового пространства, необходимого для хранения видеоданных, одновременно с захватом видео реализуется расширенная процедура обработки видео.
Начнем с того, что каждый переключатель KVM over IP имеет ряд аналого-цифровых преобразователей (АЦП), которые преобразуют аналоговые видеосигналы в цифровые видеоданные. Каждый АЦП может подключаться к компьютеру, который служит источником видеосигнала. Кадры видеоизображения выбираются в соответствии с выбранной частотой кадров и обрабатываются. Процедура отличается от более обычных методов тем, что вместо сжатия и передачи целых кадров изображения каждый видеокадр делится на массив блоков, и только те блоки, которые были изменены, сжимаются и передаются. Каждый блок в кадре обозначается индексом блока. Самый простой пример показан на рисунке 3, который изображает кадр, разделенный на 4 блока (2 x 2), причем блоки подсчитываются последовательно слева направо и сверху вниз. Индекс блока - это целое число, начиная с единицы, указывающее положение каждого блока в кадре. (Альтернативный метод отслеживания местоположения блока заключается в использовании пары целых чисел, которые представляют номера строк и столбцов его позиции.) В начале каждого записанного сеанса один полный видеокадр - начальный кадр - состоящий из из ряда начальных блоков обрабатывается и передается. После этого по мере обработки последующих кадров передаются только измененные блоки в измененных кадрах. В частности, переключатель KVM over IP сравнивает каждый блок текущего кадра с его соответствующим блоком в предыдущем кадре, чтобы определить, были ли какие-либо изменения, а затем сжимает измененные блоки.
Для каждого видеокадра, который содержит изменения (измененные кадры), коммутатор KVM over IP передает временную метку, за которой следуют измененные блоки, причем каждый измененный блок содержит индекс блока, указывающий его положение.
Отметка времени - это число, которое может представлять абсолютное или относительное значение времени. Абсолютное значение времени с точностью до секунды; относительное значение времени указывает количество долей секунды, прошедшее с момента последнего значения абсолютного времени. Для измененного кадра, если с момента последнего измененного кадра прошло более одной секунды, используется абсолютная временная метка. Если прошедшее время меньше одной секунды с момента последнего измененного кадра, который имел абсолютное значение, используется относительная временная метка. В одной реализации метка времени представляет собой 4-байтовое число, относительная метка времени представляет собой целое число от 0 до 999, представляющее количество миллисекунд с момента последнего значения абсолютного времени; абсолютная временная метка - это целое число, представляющее количество секунд с предопределенной точки абсолютного времени, например 00:00:00 1 января 2000 г. Таким образом, абсолютная временная метка и относительная временная метка могут различаться по тому, является ли ее значение больше 999. Альтернативой описанной выше реализации временной метки является запуск каждого сеанса записи. С начальной меткой времени, указывающей абсолютное время для начала, с последующими метками времени вставляется в фиксированный промежуток времени относительно последнего переданного кадра.
Метод хранения видео
Захваченные видеоданные передаются через коммутатор KVM over IP на сервер CCVSR. Сервер CCVSR поддерживает файл данных, таблицу виртуальных кадров и файл моментального снимка для каждого видеосеанса, который он записывает и сохраняет, как показано на рисунке 4.
В файле данных последовательно хранятся блоки данных изображения по мере их получения от коммутатора KVM over IP, а также индекс блока, который сохраняется вместе с блоком. Таким образом, в начале файла данных сохраняются все блоки, составляющие начальный кадр. После этого, когда временные метки и измененные блоки каждого из измененных кадров принимаются от коммутатора KVM over IP, они последовательно сохраняются в файле данных. Во время видеозаписи новые данные постоянно добавляются к файлу данных, и никакие данные не перезаписываются.
Для каждого блока видеокадра (представленного его индексом блока) таблица виртуальных кадров хранит местоположение данных в файле данных, где хранится блок или самое последнее вхождение этого блока. Местоположение данных в файле данных может быть представлено смещением от начала файла данных. Местоположение начала блока обычно используется в качестве местоположения данных этого блока. Первоначально таблица виртуальных кадров хранит местоположения данных блоков, содержащихся в начальном кадре. После этого таблица виртуальных кадров обновляется каждый раз, когда измененный блок записывается в файл данных, и новое местоположение данных заменяет или перезаписывает исходное местоположение данных для этого блока в таблице виртуальных кадров.
Таблицу виртуальных кадров можно рассматривать как виртуальный кадр, который делится на виртуальные блоки так же, как и реальный кадр. Разница в том, что каждый виртуальный блок виртуального кадра является ссылкой на расположение данных в файле данных, а не на сами данные. Таблица виртуальных фреймов постоянно обновляется и всегда хранит самое последнее местоположение для каждого блока, составляющего фрейм. Во время видеозаписи таблица виртуальных кадров сохраняется в памяти сервера CCVSR.
В файле моментального снимка хранятся копии или делается моментальный снимок таблицы виртуальных фреймов с различными интервалами. Моментальный снимок - это запись точки времени - она представляет собой копию таблицы виртуальных кадров в определенный момент времени и сохраняется с меткой времени, которая указывает абсолютное время точки времени (т.е. дата, час, минута и секунда). , или относительное время (то есть относительно времени начального кадра или относительно времени последнего снимка). Моментальные снимки момента времени постоянно добавляются к файлу моментального снимка, и никакие данные не перезаписываются. История сохраняется в файле моментального снимка через различные промежутки времени.
Таблица виртуальных кадров может быть удалена из памяти CCSVR после завершения сеанса записи, поскольку она больше не служит какой-либо цели. Однако файлы данных и моментальных снимков сохраняются, поскольку они составляют запись сеанса видео, и видеоизображения записанного сеанса можно воспроизводить с использованием этих двух файлов. (В качестве альтернативы, эти два файла можно объединить в один файл.) После завершения сеанса записи сервер CCVSR добавляет запись о времени начала и окончания в не-видео информацию, связанную с портом, на котором произошел сеанс записи. Они могут использоваться функцией поиска и фильтрации, чтобы предоставить пользователю список вариантов воспроизведения, из которых он может выбирать.
Воспроизведение видео
Процедура воспроизведения кадров изображения из сохраненных видеоданных использует программное обеспечение, называемое проигрывателем, и может выполняться сервером CCVSR или клиентским ПК. Сервер CCVSR предоставляет интерфейс, который позволяет пользователям выполнять поиск в сохраненных записях сеансов. Как только пользователь выбирает запись сеанса для воспроизведения, сервер CCVSR начинает воспроизводить ее на плеере. Если проигрыватель запускается на клиентском ПК, данные воспроизведения передаются с сервера CCVSR на клиентский ПК.
Каждая выбранная запись сеанса имеет файл моментального снимка и связанный с ним файл данных. Проигрыватель считывает виртуальную таблицу кадров, содержащуюся в файле моментального снимка, чтобы определить расположение данных всех блоков, составляющих кадр. На основе информации таблицы виртуальных кадров он считывает соответствующие блоки данных из файла данных. Затем проигрыватель обрабатывает каждый блок данных, что включает в себя распаковку данных и сборку распакованных блоков для формирования кадра видеоизображения. Проигрыватель повторяет эти процедуры для восстановления следующего видеокадра, но считывает только те кадры и блоки, которые изменились. Другими словами, как только кадр был восстановлен, он может непрерывно обновляться, заменяя только измененные блоки. В результате записанные видеоизображения последовательно воспроизводятся с момента начала.
Файлы моментальных снимков и данных по своей сути управляются сервером CCVSR и не могут управляться извне пользователями. Если пользователи хотят воспроизвести сеанс, не работая в рамках сеанса сервера CCVSR, проигрыватель может экспортировать воспроизводимую запись сеанса в отдельный защищенный паролем видеофайл и программу проигрывателя. Пользователи могут скопировать экспортированный видеофайл и программу проигрывателя на любой клиентский ПК для последующего воспроизведения.
Заключение
В этой технической статье обсуждается метод записи видеоданных, реализованный в решении ATEN CCVSR. Каждый кадр видеоизображения делится на несколько блоков. Коммутатор KVM over IP обрабатывает видеокадры и передает только измененные блоки для каждого кадра на сервер CCVSR. Сервер CCVSR сохраняет измененные блоки (с индексами блоков) в файле данных. Сервер CCVSR также поддерживает виртуальную таблицу фреймов, в которой хранится местоположение данных для каждого блока фрейма в файле данных. Таблица виртуальных кадров постоянно обновляется по мере того, как измененные блоки сохраняются в файле данных. Сервер CCVSR также хранит файл моментального снимка, содержащий моментальные снимки виртуальной таблицы кадров вместе с их временными метками. Файлы данных и моментальных снимков, которые составляют записанные видеоданные, доступные для воспроизведения, предлагают видеоформат, обеспечивающий высокую степень сжатия для определенных типов видеоизображений; в частности, медленно меняющиеся видеоизображения или видеоизображения, которые остаются неизменными для больших частей кадров изображения.