Designing and developing an affordable, cloud-connected video platform for surveillance cameras and smart home devices requires seamless integration of a streaming service that can handle large volumes of unstructured media data. The platform should be flexible enough to support unpredictable surges in demand. Video streaming from smart home devices can be challenging due to buffering, latency, dropped connections, and storage issues. Therefore, a key objective for a smart camera solution is scalability and flexibility to support millions of devices and petabytes of data. Serverless computing eliminates the need for servers, enables automatic scaling, reduces operational complexity, and accelerates time-to-market.
To create a scalable and reliable video streaming service, it’s important to consider the costs associated with managing servers, storage, and network hardware. Procuring and maintaining hardware can distract from creating differentiated applications and delivering a better user experience. Amazon Kinesis Video Streams is a fully managed AWS service that eliminates the need for provisioning servers for media streaming. It can be combined with AWS IoT for connected products. HTTP Live Streaming (HLS) and Dynamic Adaptive Streaming over HTTP (DASH) are two protocols used to deliver video content. WebRTC enables real-time and low-latency communication between web browsers or mobile applications. Kinesis Video Streams offers options for live video streaming using HLS, DASH, or WebRTC.
With Amazon Kinesis Video Streams, there is no need to build and operate signaling servers or media relay servers for secure media streaming. The service provides a fully-managed capability for WebRTC infrastructure. Smart cameras can be onboarded to AWS IoT Core for secure device management using X.509 certificates. AWS IoT Core includes a device gateway and a message broker for communication based on MQTT protocol. Amazon DynamoDB can be used for identity verification and storage of user and device data. Amazon Cognito provides a user directory for authentication and authorization of users accessing backend services. Amazon API Gateway handles access token verification and proxy requests to backend services. AWS Lambda functions can be used to verify devices, bind user accounts with cameras, and request session credentials to access the signaling channel of the camera on Kinesis Video Streams.
Deploying the Amazon Kinesis Video Streams Serverless Surveillance Platform incurs costs. You can follow the steps in the Clean Up section to delete the infrastructure and stop incurring charges. The code sample can be deployed using AWS Cloud9, a cloud-based development platform accessible from anywhere.