Amazon Kinesis Video Streams service enable you to securely capture media stream from connected devices to AWS for storage, processing, and analytics.


What is Video Stream?

A video stream is a continuous flow of video data – a video-type of time-encoded data.

In time-encoded data, each record has special relation to its previous and next record – to create a time-series.


Following diagram shows how Kinesis Video Streams service works:

Kinesis Video Streams - How it works

Image courtesy of AWS


Key Components of Kinesis Video Streams



  • Any source that generates or puts data into a Kinesis Video Stream.
  • Examples – security or dashboard camera, smartphone camera, RADAR
  • Kinesis Video Streams Producer Libraries enable your connected devices to stream videos


Kinesis Video Stream

  • A resource that enables transporting video data, optionally store it, and make it available for consumption in real-time and on batch / ad-hoc basis
  • The stream can carry audio, video, and similar time-encoded data streams.


  • Any application that receives data from a Kinesis Video Stream – to view, process, or analyze it.
  • Kinesis Video Stream Parser Library enables consumers to get media from Kinesis Video Streams in a low-latency manner.


Following diagram shows a simplified view of Producers, Media Streams, and Consumers

Simplified view of Producers, Media Streams, and Consumers

Image courtesy of AWS


The media stream is transported in chunks, with each chunk consisting of:

  • A copy of the media metadata
  • A fragment – a self-contained sequence of media frames. Each fragment is independent of the other fragments.
  • Kinesis Video Streams-specific metadata (such as fragment number, producer-side and server-side time stamps)


Following diagram shows flow of chunks:

Flow of Chunks in Kinesis Video Streams

Image courtesy of AWS


Key Points

  • Kinesis Video Streams is a fully managed service. It automatically provisions and elastically scales all the infrastructure needed to ingest streaming video data.
  • The service encrypts, stores, and indexes the video data.
  • You can playback video for live or on-demand viewing.
  • You can integrate other services like Amazon Rekognition Video, and other Machine Learning libraries (such as MxNet, TensorFlow, and OpenCV) for video analytics.
  • Kinesis Video Streams also support WebRTC – an open-source project.
  • The service supports SDKs (in C++ and Java) to securely stream data from devices.
  • You can view a Kinesis Video Stream using any of the following methods:
    • GetMedia API – to get real-time data in low-latency
    • HTTP Live Streaming (HLS) – an industry standard media streaming communication protocol
    • MPEG-DASH (Dynamic Adaptive Streaming over HTTP) – an adaptive bitrate streaming protocol
    • GetClip API – to download a clip
  • Security – Server-side encryption feature allows encryption of data before it’s at rest by using KMS CMK.
  • Data is encrypted before it is written to Kinesis Video Streams storage layer, and is decrypted after it is retrieved from storage.
  • WebRTC – an open source technology for enabling real-time communication (RTC) across browsers and mobile applications via simple APIs.
    • Signaling Channel allows applications to establish peer-to-peer connectivity by exchanging metadata in signaling messages
    • TURN streaming allows relaying media via the cloud when applications are unable to connect to each other directly for peer-to-peer streaming


Kinesis Video Streams is billed for following components:

  • Data ingested into Kinesis Video Streams – per GB
  • Data consumed from Kinesis Video Streams – per GB
  • Data consumed from Kinesis Video Streams using HLS – per GB
  • Data stored in Kinesis Video Streams – per GB per Month



  • WebRTC – if you use WebRTC capabilities it’s charged based on what all features you turn on:
    • Active signaling channels – per channel per month
    • Signaling messages – per million messages
    • TURN Streaming minutes – per thousand minutes


External Resources