Kinesis Video Streams

Learn via video courses
Topics Covered

Overview

You can use Amazon Kinesis Video Streams, a fully managed AWS service, to build apps for batch-oriented video analytics or to stream live video from devices to the AWS Cloud. Kinesis Video Streams is more than just video data storage. It allows you to view your video streams as they arrive in the cloud in real-time. You can either create your monitoring software that leverages the Kinesis Video Streams API library to display live video, or you can monitor your live streams through the AWS Management Console.

Introduction to Amazon Kinesis Video Stream Services

Security cameras are now frequently employed for video real-time visualization due to numerous security dangers. Along with security, there are other purposes such as military, journalism, employee monitoring, patient operation monitoring, and employee monitoring. Processing and transferring data to the cloud are both necessary for video processing and live streaming.

The excellent Amazon Kinesis Video Services offering from AWS (Amazon Web Services) makes it possible to receive live streaming video frames from camera modules and IoT (Internet of Things) gadgets. Additionally, we can use computer vision and machine learning modules to process the video and store it in the cloud.

How Kinesis Video Stream Works?

Using Amazon Kinesis Video Streams, a fully managed AWS service, you can stream live video from devices to the AWS Cloud and durably store it. After that, you can implement batch-oriented video analytics or develop your own real-time video processing tools.

The graphic below shows how Kinesis Video Streams work in general.

How Kinesis Video Stream Works

  • Producer: A Kinesis video stream can receive information from any source. Any device that can produce videos, such as a dashboard camera, body-worn camera, smartphone camera, or security camera, qualifies qualifies qualifies as a producer. In addition to sending video data, a producer can also submit audio feeds, pictures, or RADAR data. One or more video streams can be created by a single producer. For instance, a video camera can push audio and video data to different Kinesis video streams.
    • Kinesis Video Streams Producer Libraries: Installable apps and libraries that are simple to use that you may put up on your devices. These libraries make it simple to establish a secure connection and to stream video in a variety of ways, such as in real-time, after a brief buffering period, or as post-production media uploads.
  • Kinesis Video Stream: A tool that lets you send live video data over the network, store it if you choose, and make it accessible for use both in real-time and batches or on an as-needed basis. A Kinesis video stream typically just has one producer broadcasting data into it. The stream can carry depth-sensing feeds, RADAR feeds, and other time-encoded data streams in addition to audio and video. Using the AWS Management Console or the AWS SDKs, you can programmatically create a Kinesis video stream. A Kinesis video stream can be consumed concurrently by numerous independent applications.
  • Consumer: Obtains information from a Kinesis video stream, such as frames and fragments, for viewing, processing, or analysis. These users are frequently referred to as Kinesis Video Streams apps. When low latency processing is not necessary, applications can be created that ingest and analyze data from Kinesis video streams after the data has been durably stored and time-indexed. These consumer applications can be developed to run on Amazon EC2 instances.

Features

SDKs That Allow Devices to Stream Data Securely

For your connected devices, Amazon Kinesis Video Streams offers SDKs in C++ and Java that you can build and set up. These SDKs take care of collecting data from the device's media source and safely sending it, frame by frame, in real-time, to a Kinesis video stream. The SDK can also be used to build unique media-data flows by way of a GStreamer plugin.

HTTP Live Streaming(HLS) Allows For The Playback of Live and Recorded Video

Thanks to Amazon Kinesis Video Streams, the ingested video may be played back utilising a completely-managed HTTP Live Streaming (HLS) capability. As devices feed video into Kinesis Video Streams, you can do live playback and replay archival video on any browser or mobile platform.

Integrated Support for Amazon Rekognition Video

You can choose any of your Amazon Kinesis video streams as an input with Amazon Rekognition Video. You may now automatically find and identify faces in streaming video. You may create computer vision applications for use cases like security monitoring rapidly with this built-in integration.

Improved Replay or Machine Learning Applications Using Image Extraction

You may extract images from your video streams with the help of the APIs and SDKs provided by Amazon Kinesis Video Streams. These images can be used in machine learning pipelines or for improved playback applications like thumbnails or improved scrubbing.

Get Notified When New Media is Available for Viewing

You will receive an SNS notificationfrom Amazon Kinesis Video Streams when amedia fragment` has persisted and is available for consumption.

Real-Time APIs

To develop real-time applications, Amazon Kinesis Video Streams provides simple-to-use APIs that let you access data from your streams frame by frame.

Support for WebRTC-Based Low-Latency Two-Way Media Streaming

Amazon Kinesis Video Streams supports WebRTC, maintaining a low, peer-to-peer, two-way media streaming. WebRTC is an open-source project that makes it possible for web browsers, mobile apps, and connected devices to communicate and stream video in real time using straightforward APIs.

Applications can safely connect for peer-to-peer live media streaming thanks to controlled WebRTC signaling endpoints included in Kinesis Video Streams. Next, it has managed end-points for TURN, which enables media relay across the cloud when peer-to-peer media streaming is not possible for applications.

Robust Storage

Your data is securely and durably preserved since Amazon S3 is used as the underlying data store for Amazon Kinesis Video Streams. You can cost-effectively store the data in your streams for a set amount of time or indefinitely by setting and controlling retention periods on a per-stream basis. The stream retention time can be changed at any time.

Pay Per Use

You only pay for the amount of data you ingest, store, and use through the service with Amazon Kinesis Video Streams. You don't have to worry about paying for unused video streams because there are no upfront costs or minimum fees.

Retrieval by Automatic Indexing

Amazon Kinesis Video Streams dynamically indexes the information you provide in your video streams based on timestamps generated by the device or timestamps generated by Kinesis Video Streams when it receives the video. You can combine stream-level tags with dates and times to easily search for and obtain specific video fragments for play, analytics, and other processing.

Library for Video Stream Parsing

You can use the stream parser library provided by Amazon Kinesis Video Streams in your applications to quickly retrieve objects at the frame level, extract and gather metadata from fragments, merge successive fragments, and more. It enables simple integration of well-liked ML frameworks like Apache MxNet, TensorFlow, and OpenCV.

Data Encryption that is Automatic Both in Transit and at Rest

The Amazon Kinesis Video Streams SDK uses Transport Layer Security (TLS), a mechanism that assures data confidentiality and authenticity between two interacting apps, to encrypt the frames and fragments generated by the device's hardware for safe streaming.

To help you protect your data at rest, Amazon Kinesis Video Streams automatically encrypts the information you input into your video streams using AWS Key Management Service (KMS). Before being written to the Kinesis Video Streams storage, data is encrypted; after being retrieved from storage, it is decrypted.

Access Management using AWS IAM

You can manage who has access to your video streams thanks to an integration between Amazon Kinesis Video Streams and AWS Identity and Access Management (IAM). You can set up rules that restrict which users and groups are permitted to perform particular tasks, like inserting data into or removing data from your video streams.

Kinesis Video Stream System Architecture

Using Amazon Kinesis Video Streams, a fully managed AWS service, you can stream live video from devices to the AWS Cloud and durably store it. After that, you can implement batch-oriented video analytics or develop your real-time video processing tools. 

The diagram below shows the system architecture of Kinesis Video Streams works in general.

Kinesis Video Stream System Architecture

Additionally, you can set up your Kinesis video stream to retain media information for the designated retention period. This information is automatically stored and at rest encrypted by Kinesis Video Streams. Furthermore, Kinesis Video Streams time-indexes the data that has been saved using both the producer and ingestion time stamps. Applications can be made that require ad hoc access to historical data for various use cases, or they can be built that batch-process the video data on a regular basis.

Kinesis Video Stream System Architecture 2

On `Amazon EC2 instances, your unique applications—whether real-time or batch-oriented—can operate. These programs might employ third-party programs interacting with Kinesis Video Streams to process data using open-source deep-learning techniques.

AWS Video Services

Kinesis Video Service with Producer and Consumer SDKs

On cutting-edge gadgets including camera modules, Internet of Things (IoT) gadgets, mobile phones, web browsers, and tablets, the Kinesis video service producer SDK (Software Development Kit) will be accessible. By gathering video frames, this producer SDK transmits them to Amazon's Kinesis video service. To accept video frames from the Kinesis video stream and show them to the end-user, the Consumer SDK operates on the application side, which could be a laptop or a mobile device.

Kinesis Video Service with Producer and Consumer SDKs

Kinesis Video Streams enables quick development of computer vision and video analytics-focused applications by integrating with Amazon Rekognition Video and libraries for ML (Machine Learning) frameworks like TensorFlow, Apache MxNet, and OpenCV. Users can view or playback video on demand and can do so with Kinesis Video Streams.

Kinesis WebRTC Service

WebRTC is supported by Kinesis Video Streams as well. WebRTC offers real-time, and peer-to-peer media exchange between two devices with the use of STUN and TURN servers.

While a TURN server assists in the sharing of real-time data between the clients, a STUN server assists in the connection setup between the two clients. Using WebRTC, we can develop applications that provide two-way real-time communication and extremely low latency live streaming.

Benefits of AWS Kinesis Video Stream

Connect to Various Devices and Stream Content

Kinesis Video Streams allow you to connect to and stream video, audio, and other data from millions of devices, including consumer cellphones, drones, dashcams, and more. With the help of the Kinesis Video Streams producer libraries, you can configure your hardware and dependably stream media either in real-time or as post-production media uploads.

Control Apps Instead of Infrastructure

There rs no infrastructure to put up or administer with Kinesis Video Streams because it is serverless. You shouldn't worry about elastic infrastructure scalability as your data streams and the variety of consuming applications increase and decrease. You can focus on the applications rather than the infrastructure since Kinesis Video Streams handles all the administration and maintenance necessary to manage streams automatically.

Index, Store, and Encrypt Data with Durability

Your Kinesis video stream can be configured to permanently save media data for predetermined retention intervals. Kinesis Video Streams also builds an index over the stored data based on producer-generated or service-side time stamps. Your apps can quickly get specific data from a stream using the time index.

Utilize Data Streams to Produce Batch and Real-Time Applications

You can develop batch or ad hoc applications that run on durably stored data without being restricted by strict latency requirements with Kinesis Video Streams, as well as the unique real-time programs on live data streams. Through the AWS Marketplace applications, you can create, implement, and manage customized internal, external, open-source, or third-party solutions to process and analyze data streams. You can create numerous concurrent programs that handle data in real-time or in batches using Kinesis Video Streams Get APIs.

The Stream of Data is More Protected

All information is encrypted using Kinesis Video Streams both during transit and after storage. Kinesis Video Streams enforces Transport Layer Security (TLS)-based encryption on data flowing from devices and encrypts all data at rest using AWS Key Management Service (AWS KMS). You can manage who has access to your data with the help of AWS Identity and Access Management (IAM).

Use Cases of Kinesis Video Streams

  • Smart Cities: Parking lots, shopping centers, traffic lights, and all other public areas contain a high number of surveillance cameras that are continually recording footage. We can easily transfer video to the AWS cloud and store it in S3 for less money by using Kinesis video streams. We can examine the recordings to identify and address additional traffic problems, such as emergency dispatch and violations of traffic laws.
  • Smart Home: You can effortlessly stream live both audio and video from household appliances with webcams, such as motion sensors, baby monitors, cameras, and alarm systems, to AWS using Amazon Kinesis Video Streams. The streams might then be used to create a range of smart home applications. For two-way, interactive streaming video and discussions, WebRTC features can be used. For example, you could control your camera-equipped device from your phone or have a conversation at your doorstep.
  • Industrial Automation: High-capacity cameras, as well as occasionally LIDAR and RADAR, are used to record live industrial activity. We can stream this data into the AWS cloud using AWS Kinesis video streams, store it in storage services, and then process it using TensorFlow, Amazon Rekognition, MxNet, and OpenCV for machine learning.
  • Real-Time Video Chat Application: Real-time live video charts may be readily created in web or mobile applications thanks to AWS Kinesis video streams, which can provide live video and audio files.

Pricing

You just pay for the amount of Amazon Kinesis Video Streams that you use. There are no upfront costs, minimum payments, or resources that need to be provided.

You simply pay for the amount of data you ingest, store, and use through the service with Kinesis Video Streams. When using WebRTC features, you must pay for the total number of active signaling channels, the total amount of signaling messages transmitted and received, and the total number of TURN streaming minutes used to relay media in a given month. If a device or application connects to a signaling channel at any point in the month, the signaling channel is deemed active for that month. The number of TURN streaming minutes is billed in 1-minute blocks.

Kinesis Video Streams Pricing

You only pay for the amount of data that your video streams ingest, store, and use.

Pricing for Kinesis Video Streams for the region Asia Pacific(Mumbai)(ap-south-1) is given below. Pricing for other regions may be different according to the region you are using.

Data Ingested into Kinesis Video Streams (per GB data ingested)$0.01040
Data Consumed from Kinesis Video Streams (per GB data egressed)$0.01040
Data Consumed from Kinesis Video Streams using HLS (per GB data egressed)$0.01450
Data Stored in Kinesis Video Streams (per GB-Month data stored)$0.02500
Images generated from streams with resolution 1080p or lower$10 per million
Images generated from streams with resolution greater than 1080p$18 per million

WebRTC Pricing

When using WebRTC features, you must pay for the total number of active signaling channels, the total amount of signaling messages transmitted and received, and the total number of TURN streaming minutes used to relay media in a given month. If a device or application connects to a signaling channel at any point in the month, the signaling channel is deemed active for that month. The number of TURN streaming minutes is billed in 1-minute blocks.

Pricing for WebRTC for the region Asia Pacific(Mumbai) is given below:

Active signaling channels (per channel per month)$0.04000
Signaling messages (per million)$2.750
TURN Streaming minutes (per thousand)$0.150

Conclusion

  • You can use Amazon Kinesis Video Streams, a fully managed AWS service, to build apps for batch-oriented video analytics or to transmit live video from endpoints to the AWS Cloud.
  • Amazon Kinesis Video Streams follow a pay-as-you-go pricing model. In this model, we only pay for the entities we use.
  • By enabling simultaneous streaming of both video and audio, AWS's Kinesis Video Streams contribute to the development of smart homes, industrial monitors, smart cities, and live video chat applications.
  • It durably stores encrypts, and indexes video data in your streams, and allows you to access your data through easy-to-use APIs.
  • Kinesis Video Streams enables you to playback video for live and on-demand viewing, and quickly build applications that take advantage of computer vision and video analytics through integration with Amazon Rekognition Video, and libraries for ML frameworks.
  • Amazon Kinesis Video Streams offer the benefits of being extremely quick and having a low cost of storage.