Amazon Kinesis Video Streams Documentation
Amazon Kinesis Video Streams is designed to enable you to ingest, process, and store video and time-encoded data from devices for near 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 allow you to 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 browsers or mobile apps. It also is designed to store, encrypt, and index the video streams and provide 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 can detect and recognize faces in streaming video. Kinesis Video Streams also provides a library to integrate machine learning frameworks with video streams to build custom applications.
Key features
SDKs to 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 transmitting it to a Kinesis video stream on a frame-by-frame basis in near real-time. The SDK is also available as a GStreamer-plugin for constructing custom media-data flows.
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 browsers or mobile platforms.
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 detect and recognize faces in streaming video. Using this built-in integration, you can build computer vision applications for many use cases.
Amazon Kinesis Video Streams offers APIs and SDKs to help you extract images from your video streams. You can use these images for enhanced playback applications such as thumbnails or enhanced scrubbing, or for use in Machine Learning pipelines.
Amazon Kinesis Video Streams is designed to notify you when a media fragment is persisted and ready for consumption.
Near real-time APIs
Amazon Kinesis Video Streams offers APIs that allow you to retrieve the data from your streams on a frame-by-frame basis for building near real-time applications.
Amazon Kinesis Video Streams supports the WebRTC open-source project for peer-to-peer, two-way media streaming.
Storage
Amazon Kinesis Video Streams uses Amazon S3 as the underlying data store. You can set and control retention periods on a per-stream basis, allowing you to store the data in your streams for a limited time period or indefinitely. You can change the stream retention period at any point.
Indexing for retrieval
Amazon Kinesis Video Streams 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 search and retrieve specific video fragments for playback, analytics, and other processing.
Video stream parser library
Amazon Kinesis Video Streams offers a stream parser library that you can use within your applications to retrieve frame-level objects, extract and collect metadata attached to fragments, merge consecutive fragments, and more.
Data encryption in transit and at rest
The Amazon Kinesis Video Streams SDK is designed to encrypt the frames and fragments generated by the device’s hardware using Transport Layer Security (TLS), a protocol that is designed to provide privacy and data integrity between two communicating applications.
Amazon Kinesis Video Streams is designed to encrypt the data you put into your video streams using AWS Key Management Service (KMS), helping you protect your data at rest. The service is designed so that data is encrypted before it is written to the Kinesis Video Streams storage, and decrypted after it is retrieved from storage, helping you encrypt your data at rest within the stream.
Access control with AWS IAM
Amazon Kinesis Video Streams integrates with AWS Identity and Access Management (IAM), helping you to control access to your video streams. You can create policies designed so that only specific users and groups can take specific actions such as putting data into, or retrieving data from your video streams.
Time-encoded data
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 for cost-effective, efficient ingestion and storage of all kinds of time-encoded data.
Fully managed
Amazon Kinesis Video Streams is fully managed, so there is no infrastructure to manage. Kinesis Video Streams is designed to provision and scale to millions of devices, and scale down when the devices are not transmitting video, without the need to provision a fleet of servers.
Edge recording and scheduled cloud streaming
Locally record and store video from on-premises IP cameras and upload media to the cloud on a defined schedule for long-term storage, playback, and analytical processing. For access to the Amazon Kinesis Video Streams Edge Agent, see here.
For additional information about service controls, security features and functionalities, including, as applicable, information about storing, retrieving, modifying, restricting, and deleting data, please see https://docs.aws.amazon.com/index.html. This additional information does not form part of the Documentation for purposes of the AWS Customer Agreement available at http://aws.amazon.com/agreement, or other agreement between you and AWS governing your use of AWS’s services.