Amazon Kinesis Video Streams enables you to securely ingest, process, and store video and time-encoded data from devices at any scale for real-time and batch-oriented machine-vision based applications that power smart homes, smart cities, industrial automation, security monitoring, and more. Kinesis Video Streams provides SDKs that make it easy to securely stream video to AWS from connected devices. Amazon Kinesis Video Streams supports HTTP Live Streaming (HLS) to enable live and on-demand playback of video ingested from devices on any browser or mobile app. It also durably stores, encrypts, and indexes the video streams and provides easy-to-use APIs so that applications can access and retrieve indexed video fragments based on tags and timestamps. Kinesis Video Streams is integrated with Amazon Rekognition Video, enabling you to build computer vision applications that detect and recognize faces in streaming video. Kinesis Video Streams also provides a library to integrate machine learning frameworks such as Apache MxNet, TensorFlow, and OpenCV with video streams to build custom applications. Kinesis Video Streams automatically provisions and elastically scales all the infrastructure needed to ingest video streams from millions of devices.
SDKs to Securely Stream Data from Devices
Amazon Kinesis Video Streams provides SDKs in C++ and Java that you can build and configure for your connected devices. These SDKs manage receiving data from the device's media source and securely transmitting it to a Kinesis video stream on a frame-by-frame basis in real-time. The SDK is also available as a GStreamer-plugin for constructing custom media-data flows.
You can build the SDK from sources or use Docker images available for Ubuntu, MacOS, and Raspberry Pi devices that you can deploy with a simple Docker pull and get started with streaming video in minutes.
To learn more about the SDKs, see the documentation.
Built-in Integration with Amazon Rekognition Video
Amazon Rekognition Video allows you to specify any of your Amazon Kinesis video streams as an input. This enables you to automatically detect and recognize faces in streaming video. Using this built-in integration, you can quickly build computer vision applications for use cases like security monitoring.
Pay per Use
With Amazon Kinesis Video Streams, you pay only for the volume of data you ingest, store, and consume through the service. There are no upfront costs or minimum fees, and you need not worry about paying for idle video streams. For more information, see the pricing page.
Video Stream Parser Library
Amazon Kinesis Video Streams offers a stream parser library that you can use within your applications to easily retrieve frame-level objects, extract and collect metadata attached to fragments, merge consecutive fragments, and more. It allows you to readily integrate popular ML frameworks such as Apache MxNet, TensorFlow, and OpenCV. For more information, see the documentation.
Access Control with AWS IAM
Amazon Kinesis Video Streams integrates with AWS Identity and Access Management (IAM), enabling you to control access to your video streams. You can create policies that allow only specific users and groups to take specific actions such as putting data into, or retrieving data from your video streams. For more information about using IAM policies with Kinesis Video Streams, see the documentation.
Amazon Kinesis Video Streams is fully managed, so there is no infrastructure to manage. Kinesis Video Streams automatically provisions and elastically scales to millions of devices, and scales down when the devices are not transmitting video, without the need to provision a fleet of servers.
Live and On-demand Video Playback with HTTP Live Streaming (HLS)
Amazon Kinesis Video Streams enables playback of the ingested video using a fully-managed HTTP Live Streaming (HLS) capability. As devices stream video into Kinesis Video Streams, you can do live playback and replay archived video on any browser or mobile platform.
Amazon Kinesis Video Streams offers easy-to-use APIs that allow you to retrieve the data from your streams on a frame-by-frame basis for building real-time applications.
Amazon Kinesis Video Streams uses Amazon S3 as the underlying data store, which means your data is stored durably and reliably. You can set and control retention periods on a per-stream basis, allowing you to cost-effectively store the data in your streams for a limited time period or indefinitely. You can change the stream retention period at any point.
Automatic Indexing for Retrieval
Amazon Kinesis Video Streams automatically indexes the data you store 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 timestamps to easily search and retrieve specific video fragments for playback, analytics, and other processing.
Automatic Data Encryption in Transit and at Rest
The Amazon Kinesis Video Streams SDK encrypts the frames and fragments generated by the device’s hardware for secure streaming using Transport Layer Security (TLS), a protocol that provides privacy and data integrity between two communicating applications.
Amazon Kinesis Video Streams automatically encrypts the data you put into your video streams using AWS Key Management Service (KMS), helping you protect your data at rest. Data is encrypted before it is written to the Kinesis Video Streams storage, and it is decrypted after it is retrieved from storage. As a result, your data is always encrypted at rest within the stream. To learn more, see the documentation.
Time-encoded data is any data in which the records are in a time series, and each record is related to its previous and next records. Video is an example of time-encoded data, where each frame is related to the previous and next frames through spatial transformations. Other examples of time-encoded data include audio, RADAR, and LIDAR signals. Amazon Kinesis Video Streams is designed specifically for cost-effective, efficient ingestion and storage of all kinds of time-encoded data for analytics and ML use cases.