Общие вопросы

Вопрос: Что такое Amazon Kinesis Video Streams?

Сервис Amazon Kinesis Video Streams обеспечивают простую и безопасную потоковую передачу видео с подключенных устройств в AWS для анализа, машинного обучения (ML) и других видов обработки. Kinesis Video Streams автоматически выделяет и эластично масштабирует инфраструктуру, используемую для приема потоковых видеоданных с миллионов устройств. Сервис также надежно хранит, шифрует, индексирует данные видеопотоков и позволяет получать доступ к этим данным с помощью простых в использовании API. Kinesis Video Streams позволяет быстро создавать приложения компьютерного зрения и машинного обучения посредством интеграции с Amazon Rekognition Video и библиотеками для платформ машинного обучения, таких как Apache MxNet, TensorFlow и OpenCV.

Вопрос: Что такое данные с временными кодами?

Данные с временными кодам – это любые данные, в которых записи находятся в строгой временной последовательности, и каждая из них связана с предыдущей и последующей записями. Примером данных с временными кодами являются видеозаписи, поскольку каждый их кадр связан с предыдущим и последующим кадрами пространственными трансформациями находящихся в них объектов. Другими примерами данных с временными кодами являются аудиозаписи, сигналы лидаров и радаров. Сервис Amazon Kinesis Video Streams специально разработан для экономичного и эффективного сбора и последующего хранения любых данных с временными кодами в примерах использования, связанных с аналитикой и машинным обучением.

Вопрос: Каковы наиболее распространенные примеры использования Kinesis Video Streams?

Сервис Kinesis Video Streams идеально подходит для создания приложений для машинного обучения на основе машинного зрения, которые постепенно выходят на первый план в целом спектре различных примеров использования, включая перечисленные ниже.

Умный дом

С помощью Kinesis Video Streams можно легко передавать в AWS видео- и аудиоматериалы с домашних устройств, оснащенных камерами, таких как видеоняни, веб-камеры и домашние системы наблюдения. Эти потоки можно использовать для создания разнообразных интеллектуальных домашних приложений, от простого воспроизведения видео до автоматического освещения, систем кондиционирования и решений по обеспечению безопасности.

Умный город

Во многих городах установлено большое количество видеокамер на светофорах, автостоянках, в торговых центрах и почти во всех общественных местах, при этом видео записывается круглосуточно. Kinesis Video Streams можно использовать для безопасного и экономичного приема, хранения и анализа этого огромного объема видеоданных. Это позволит решать проблемы с трафиком, предотвращать преступления, вызывать аварийные службы и выполнять многие другие задачи.

Автоматизация производства

Kinesis Video Streams можно использовать для сбора разнообразных данных с временными кодами, таких как сигналы радаров и лидаров, температурные профили и данные об уровне погружения от промышленного оборудования. Затем можно анализировать эти данные с помощью выбранных платформ машинного обучения, таких как Apache MxNet, TensorFlow или OpenCV. Такую технологию можно использовать для автоматизации таких производственных процессов, как профилактическое техническое обслуживание. Например, можно прогнозировать срок службы прокладок или клапанов и заранее планировать замену таких деталей, сокращая время простоев и количество дефектов на производственной линии.

Вопрос: Какие виды управления берет на себя Amazon Kinesis Video Streams?

Amazon Kinesis Video Streams – это полностью управляемый сервис сбора и хранения видеоданных. Он позволяет безопасно собирать, обрабатывать и хранить видеоданные в любом масштабе для приложений, которые обеспечивают функционирование роботов, систем умного города, систем автоматизации производства, а также контроль безопасности, машинное обучение (ML) и решение других задач. Помимо этого, Kinesis Video Streams собирает любые типы иных данных с временными кодами – например, аудиозаписи, сигналы радаров и лидаров. Kinesis Video Streams предоставляет различные SDK для установки на пользовательские устройства, которые обеспечат простую и безопасную потоковую трансляцию видеоданных в AWS. Kinesis Video Streams автоматически выделяет и эластично масштабирует всю инфраструктуру, необходимую для сбора потоковых видеоданных с миллионов устройств. Кроме того, сервис надежно сохраняет, шифрует, индексирует видеопотоки и предоставляет удобные API, с помощью которых приложения могут обращаться к проиндексированным видеофрагментам и извлекать их, ориентируясь на теги или временные метки. Kinesis Video Streams предоставляет библиотеку, которая позволяет интегрировать видеопотоки с такими платформами ML, как Apache MxNet, TensorFlow и OpenCV, для создания приложений машинного обучения. Kinesis Video Streams интегрирован с сервисом Amazon Rekognition Video, что позволяет создавать приложения машинного зрения, способные идентифицировать различные объекты, события и людей.

Основные понятия

Вопрос: Что такое видеопоток?

Видеопоток – это ресурс, который позволяет захватывать видео в режиме реального времени и другие данные с временными кодами, опционально сохранять их и обеспечивать доступность для использования как в режиме реального времени, так и в режиме пакетных или спонтанных запросов. При сохранении данных в видеопотоке Kinesis Video Streams шифрует эти данные и генерирует для них временной индекс. В типовой конфигурации видеопоток Kinesis имеет только один источник, который публикует данные в него. При этом каждый видеопоток Kinesis может иметь несколько приложений-потребителей, которые обрабатывают его контент.

Вопрос: Что такое фрагмент?

Фрагмент представляет собой изолированную последовательность кадров. Принадлежащие фрагменту кадры не должны каким-либо образом зависеть от кадров в других фрагментах. В момент доставки фрагмента Kinesis Video Streams присваивает ему уникальный номер в порядке возрастания. Он также сохраняет временные метки для каждого фрагмента, созданные как на стороне источника, так и на стороне сервера, в качестве специальных метаданных Kinesis Video Streams.

Вопрос: Что такое источник?

Источник – это обобщенный термин, которым обозначают устройство либо иной источник, с которого загружаются данные в видеопоток Kinesis. Источником может быть любое производящее видеоданные устройство, например камера безопасности, нагрудная камера, камера смартфона или видеорегистратор. Источник также может посылать другие данные с временными кодами, помимо видео, например аудиозаписи, изображения или данные радаров. Один источник может генерировать один или несколько видеопотоков. Например, видеокамера может направлять видеоданные в один видеопоток Kinesis и аудиоданные в другой.

Вопрос: Что такое потребитель?

Потребитель – это пользовательское приложение, которое потребляет и обрабатывает данные видеопотоков Kinesis в режиме реального времени или после того, как данные были надежно сохранены и проиндексированы (в тех случаях, когда обработка с низкой задержкой не требуется). Эти приложения-потребители можно создавать для запуска в инстансах Amazon EC2. Для обработки видеопотоков также можно использовать другие сервисы Amazon на основе искусственного интеллекта (например, Amazon Rekognition) или сервисы сторонних поставщиков услуг видеоаналитики.

Вопрос: Что такое блок данных?

Получая мультимедийные данные от источника, Kinesis Video Streams сохраняет их в виде блоков. Каждый блок содержит в себе сам фрагмент мультимедийных данных, копию отправленных источником мультимедийных метаданных, а также некоторые специальные метаданные сервиса Kinesis Video Streams, например номер фрагмента и временные метки, которые были проставлены на стороне источника и на стороне сервера. Когда потребитель запрашивает мультимедийные данные вызовом API GetMedia, сервис Kinesis Video Streams возвращает ему поток блоков данных, начиная с фрагмента, номер которого был указан в запросе.

Вопрос: Из чего складывается задержка в Amazon Kinesis Video Streams?

Задержка в сквозном потоке мультимедийных данных формируется четырьмя основными факторами.

  • Время, проведенное в аппаратном мультимедийном конвейере устройства: данный конвейер может состоять из датчика изображения и любых связанных с ним аппаратных преобразователей. Теоретически такая задержка может не превышать длительности одного кадра. На практике добиться такого результата удается редко. Для эффективной компрессии мультимедийных данных все преобразователи накапливают несколько кадров, из которых затем формируется фрагмент. Этот процесс, а также любые задействованные в нем алгоритмы компенсации движения добавляют от одной до нескольких секунд задержки на стороне устройства еще до того, как данные будут упакованы для передачи.
  • Задержка в ходе реальной передачи данных в Интернете: качество пропускной способности сети и связанные с ней задержки сильно колеблются и зависят от местоположения устройства-источника.
  • Задержка, добавляемая сервисом Kinesis Video Streams при получении данных от источника: входящие данные становятся немедленно доступны для получения любым приложением-потребителем с помощью вызова API GetMedia. Если будет принято решение сохранить данные, Kinesis Video Streams зашифрует их с помощью AWS Key Management Service (AWS KMS) и сгенерирует временной индекс на отдельные фрагменты видеопотока. При обращении к этим сохраненным данным с помощью API GetMediaforFragmentList сервис Kinesis Video Streams извлекает их из отказоустойчивого хранилища, дешифрует и обеспечивает доступ к ним приложению-потребителю.
  • Задержка при передаче данных к потребителю: мультимедийные данные могут запрашиваться устройствами-потребителями, находящимися в Интернете или в других регионах AWS. Качество пропускной способности сети и связанные с ней задержки сильно колеблются и зависят от местоположения устройства-потребителя.

И наконец, консоль управления Kinesis Video Streams получает данные в поддерживаемом мультимедийном формате H.264 и производит их преобразование для воспроизведения в различных браузерах для задач разработки или тестирования.

Публикация данных в потоки

Вопрос: Как публиковать данные в видеопоток Kinesis?

Публиковать данные в видеопоток Kinesis можно с помощью операции PutMedia или пакетов SDK источника Kinesis Video Streams для Java, C++ или Android. В случае применения операции PutMedia пользователь несет ответственность за упаковку мультимедийного потока в соответствии со спецификациями Kinesis Video Streams, за формирование самого потока, ротацию токенов и другие действия, необходимые для надежной трансляции данных в облако AWS. Для упрощения всех этих задач и ускорения работы рекомендуется использовать SDK источника.

Для чего нужна операция PutMedia сервиса Kinesis Video Streams?

Сервис Kinesis Video Streams предоставляет API PutMedia для записи мультимедийных данных в видеопоток Kinesis. В запросе PutMedia источник отправляет поток мультимедийных фрагментов. В момент доставки фрагмента Kinesis Video Streams присваивает ему уникальный номер в порядке возрастания. Он также сохраняет временные метки для каждого фрагмента, созданные на стороне источника и на стороне сервера, в качестве специальных метаданных сервиса Kinesis Video Streams.

Что такое SDK источника сервиса Kinesis Video Streams?

SDK источника сервиса Kinesis Video Streams – это набор удобных библиотек с широкими возможностями настройки, которые можно установить и настроить для использования конкретными источниками. SDK позволяет без труда создать локальное приложение, которое будет устанавливаться на устройство и обеспечит безопасное подключение к видеопотоку и надежную публикацию видео и других мультимедийных данных в Kinesis Video Streams. Он берет на себя все технические задачи, которые необходимы для упаковки кадров и фрагментов, сгенерированных мультимедийным конвейером устройства. Помимо этого, SDK обеспечивает управление процессом создания потока, ротацию токенов для безопасной и бесперебойной трансляции, обработку полученных от Kinesis Video Streams подтверждений, а также выполнение многих других задач.

Вопрос: Для каких платформ программирования доступны SDK источника сервиса Kinesis Video Streams?

Ядро SDK источника Kinesis Video Streams написано на языке С, что обеспечивает эффективность и простое портирование на множество различных аппаратных платформ. Большинство разработчиков предпочтут использовать SDK источника Kinesis Video Streams в версиях для C++ или Java. Помимо этого, существует Android-версия SDK источника для разработчиков мобильных приложений, которые хотят транслировать видеоданные с устройств под управлением Android.

Вопрос: Что необходимо знать перед началом работы с SDK источника Kinesis Video Streams?

SDK источника Kinesis Video Streams берет на себя основную работу по упаковке кадров и фрагментов, установке безопасного соединения и надежной трансляции видео в AWS. Однако комбинаций аппаратных устройств и работающих на них мультимедийных конвейеров может быть множество. Для упрощения интеграции с мультимедийным конвейером рекомендуется иметь определенные представления о (1) границах кадра, (2) типах кадров, используемых для создания границ (I-frame и не-I-frame), и (3) кадрах с временной меткой.

Чтение данных из потоков

Вопрос: Что такое API GetMedia?

API GetMedia используется для извлечения мультимедийного контента из видеопотока Kinesis. В запросе необходимо указать имя потока или его Amazon Resource Name (ARN), а также начальный блок данных. Kinesis Video Streams вернет поток блоков, расположенных в порядке возрастания номера фрагмента. При помещении мультимедийных данных (фрагментов) в поток Kinesis Video Streams сохраняет каждый входящий фрагмент и связанные с ним метаданные в так называемых «блоках данных». API GetMedia возвращает поток этих блоков, начиная с блока, номер которого был указан в запросе.

Вопрос: Что такое API GetMediaForFragmentList?

С помощью API GetMediaForFragmentList можно извлекать мультимедийные данные, сохраненные в видеопотоке Kinesis, для фрагментов из заданного списка (по указанным номерам фрагментов). Как правило, вызову этой операции API предшествует вызов API ListFragments.

Вопрос: Что такое API ListFragments?

API ListFragments обращается к сохраненным данным и возвращает список фрагментов из указанного видеопотока с заданного начального местоположения, используя для этого номер фрагмента или временные метки.

Вопрос: Как долго можно хранить данные в Kinesis Video Streams?

Время хранения данных в потоках не ограничено. Kinesis Video Streams позволяет настроить продолжительность хранения данных в соответствии с потребностями пользователя.

Вопрос: Что такое библиотека парсера Kinesis Video Streams?

Библиотека парсера Kinesis Video Streams упрощает для разработчиков процесс получения и обработки результатов операции GetMedia. Разработчики могут включать библиотеку в свои приложения видеоаналитики и обработки, работающие на основе видеопотоков. Сами приложения смогут работать на инстансах сервиса EC2, принадлежащих клиенту, либо на любой другой подходящей инфраструктуре. Библиотека располагает возможностями, которые позволяют вычленить объект и связанные с ним метаданные на уровне кадра, извлечь и сохранить специальные метаданные сервиса Kinesis Video Streams, прикрепленные к фрагментам, а также извлечь и сохранить последовательность фрагментов. Такие возможности позволяют создавать клиентские приложения, которые могут просто использовать необработанные видеоданные в различных сценариях.

Вопрос: У меня есть собственное приложение, для которого требуются кадры (и фрагменты), сохраненные в видеопотоке Kinesis. Как мне их получить?

Обычно для получения видеопотоков и последующих манипуляций с ними для обеспечения работы собственных приложений требуется выполнить два ключевых действия. Во-первых, получить байты кадра из отформатированного потока, предоставленного операцией GetMedia API. Для получения объектов кадра можно использовать библиотеку парсера потока. Затем следует получить такие необходимые для декодирования кадра метаданные, как высота пикселя, его ширина, идентификатор кодека и его частные данные. Подобные метаданные передаются как элементы дорожки. Библиотека парсера упрощает извлечение таких данных, предоставляя вспомогательные классы для сбора информации о дорожке для выбранного фрагмента.

Дальнейшие шаги в большой мере зависят от используемого приложения. Пользователи могут по желанию расшифровывать кадры, форматировать их для повторного воспроизведения, выполнять перекодирование для распространения или преобразовывать их в специальный формат для приложений глубокого обучения. Библиотека парсера Kinesis Video Streams имеет открытый исходный код, ее можно надстраивать для конкретных примеров использования.

Консоль

Вопрос: Что такое консоль управления Kinesis Video Streams?

Консоль управления Kinesis Video Streams позволяет создавать, обновлять и отслеживать видеопотоки, а также осуществлять управление ими. Помимо этого, консоль позволяет воспроизводить мультимедийные потоки в режиме реального времени или по требованию, если контент потоков относится к одному из поддерживаемых типов мультимедийных данных. Используя элементы управления воспроизведением, можно просматривать потоки в режиме реального времени, перемещаться по ним вперед или назад с шагом в 10 секунд или с помощью счетчика даты и времени перемещаться к моменту в прошлом, если был задан соответствующий период хранения видеопотока. Возможности воспроизведения видео в консоли управления Kinesis Video Streams представляют собой инструмент быстрой диагностики для целей разработки и тестирования и предназначены для разработчиков, создающих свои решения с помощью Kinesis Video Streams.

Вопрос: Какие типы мультимедийных данных поддерживает консоль управления Kinesis Video Streams?

Единственным поддерживаемым типом мультимедийных данных, доступным для воспроизведения в консоли управления Kinesis Video Streams, является популярный формат H.264. Этот мультимедийный формат широко поддерживается различными устройствами, программными и аппаратными декодерами, а также механизмами воспроизведения. Заметим, что пользователи могут собирать для своих приложений и сценариев использования видео, аудио и другие данные с временными кодами любых мультимедийных типов, но консоль управления не будет их воспроизводить.

Вопрос: Какова задержка воспроизведения видео в консоли управления Kinesis Video Streams?

При воспроизведении в консоли управления Kinesis Video Streams видео от источника, передающего данные в видеопоток, в режиме реального времени возможна задержка от 2 до 10 секунд. Большая часть этой задержки обусловлена устройством-источником, поскольку оно вынуждено накапливать кадры и формировать из них фрагменты перед отправкой данных через Интернет. Когда данные достигнут сервера Kinesis Video Streams и пользователь запросит их воспроизведение, консоль выполняет следующие действия: получает фрагменты из отказоустойчивого хранилища в мультимедийном формате H.264 и выполняет их преобразование в формат, подходящий для воспроизведения в различных веб-браузерах. Преобразованный мультимедийный контент будет передан к местоположению пользователя, из которого был сделан запрос на воспроизведение, через Интернет.

Шифрование

Вопрос: Что представляет собой шифрование на стороне сервера в Kinesis Video Streams?

Шифрование на стороне сервера – это особая возможность сервиса Kinesis Video Streams, которая позволяет автоматически шифровать данные перед отправкой на хранение с помощью главного ключа клиента (CMK) AWS KMS, который устанавливается самим пользователем. Данные шифруются перед записью на уровне хранилища Kinesis Video Streams и дешифруются по извлечении. Как следствие, на протяжении всего времени хранения в сервисе Kinesis Video Streams данные находятся в зашифрованном виде.

Вопрос: Как начать работу с шифрованием на стороне сервера в Kinesis Video Streams?

Шифрование на стороне сервера включено для всех видеопотоков Kinesis. Если при создании потока пользователем не был указан конкретный ключ шифрования, будет использован ключ по умолчанию, предоставленный сервисом Kinesis Video Streams.

Назначать главный ключ AWS KMS для конкретного потока Kinesis Video Streams требуется в момент создания потока. Присвоить потоку иной ключ с помощью API UpdateStream позже будет уже невозможно.

Присвоить главный ключ клиента AWS KMS видеопотоку Kinesis можно двумя способами: 1) указать главный ключ AWS KMS в разделе «Encryption» (Шифрование) на странице создания нового потока в консоли управления Kinesis Video Streams; 2) указать идентификатор ключа в параметре KmsKeyId при создании потока с помощью API CreateStream.

Вопрос: Какова стоимость использования шифрования на стороне сервера?

Плата за использование шифрования на стороне сервера начисляется в соответствии со стоимостью использования API AWS KMS и самого ключа шифрования. В отличие от пользовательских главных ключей AWS KMS, главный ключ клиента (CMK) для потребителей с адресом aws/kinesis-video предоставляется бесплатно. При этом требуется оплачивать использование API, к которым Kinesis Video Streams обращается от имени владельца аккаунта. Стоимость использования API применяется ко всем ключам CMK, в том числе к пользовательским. Kinesis Video Streams обращается к AWS KMS приблизительно раз в 45 минут для выполнения ротации ключа данных. Итоговая стоимость вызовов API AWS KMS, инициированных одним потоком Kinesis Video Streams за 30-дневный период, составит несколько долларов США. Необходимо учесть, что данная стоимость будет расти пропорционально количеству учетных данных пользователей, используемых источниками и потребителями данных, так как каждой единице учетных данных требуется уникальный вызов API AWS KMS.

Цены и оплата

Вопрос: Доступен ли сервис Amazon Kinesis Video Streams на уровне бесплатного пользования AWS?

Нет. В настоящее время сервис Amazon Kinesis Video Streams недоступен на уровне бесплатного пользования AWS.

Вопрос: Сколько стоит использование Kinesis Video Streams?

В Kinesis Video Streams вы платите только за используемые ресурсы. Сервис не предусматривает авансовой оплаты или минимальных стартовых взносов. Стоимость использования сервиса Kinesis Video Streams зависит от объема собранных данных (ГБ), объема потребленных данных (ГБ) и объема данных, сохраненных во всех видеопотоках пользовательского аккаунта (ГБ-месяц).

Kinesis Video Streams начисляет плату только за успешно полученные сервисом мультимедийные данные с минимальным размером одного блока данных, равным 4 КБ. Для сравнения, аудиозапись с битрейтом 64 КБ/с имеет размер 8 КБ, так что минимальный размер блока данных установлен на достаточно низком уровне, чтобы подходить самым малым аудио и видеопотокам.

Вопрос: Как происходит начисление платы за данные, сохраненные в потоках Kinesis Video Streams?

Kinesis Video Streams начисляет плату за общий объем данных, сохраненных в любом из имеющихся потоков. Общий объем сохраненных в потоке данных можно контролировать с помощью настройки срока хранения (в часах).

Подробнее о ценах на Amazon Kinesis Video Streams

Перейти на страницу цен
Готовы начать работу?
Регистрация
Есть вопросы?
Свяжитесь с нами