awslabs / aws-streamer

Video Processing for AWS
Apache License 2.0
44 stars 9 forks source link
aws-streamer gstreamer gstreamer-python kinesis-video-streams video-processing

AWS Streamer

The AWS Streamer is a collection of video processing and streaming tools for AWS platform. It will enable users to stream from multiple camera sources, process the video streams and upload to the cloud and/or local storage. It can be used standalone on the edge device, inside AWS Lambda functions, AWS ECS container or running on an AWS IoT Greengrass as a Lambda.

Key FeaturesBuildUsageNotesDebuggingSecurityLicense

Key Features

List of features provided by this library:

Build

Prerequisites

Install

CMake Options

CMake flag Description Default value
-DBUILD_KVS Build KVS GStreamer plug-in OFF
-DBUILD_KVS_WEBRTC Build KVS WebRTC binaries OFF
-BUILD_NEO_DLR Build SageMaker NEO runtime OFF
-BUILD_MXNET Build MXnet GStreamer plug-in OFF

Usage

Using JSON Configuration

cd examples/test_app
python3 app.py ../configs/testsrc_display.json

Demos

There are two full-blown demos available:

Click on links above to read more and see detailed architecture.

Using AWS Streamer as SDK

import awstreamer

client = awstreamer.client()

Notes

If you use AWS plug-in (e.g. KVS) outside of AWS environment (i.e. not in AWS Greengrass IoT, AWS Lambda, etc.), remember to set the following env variables:

export AWS_ACCESS_KEY_ID=xxxxxxxxx
export AWS_SECRET_ACCESS_KEY=xxxxxxxxxx
export AWS_DEFAULT_REGION=us-east-1 (for example)

Debugging

To enable more debugging information from Gstreamer elements, set this env variable:

export GST_DEBUG=4

More details here: https://gstreamer.freedesktop.org/documentation/tutorials/basic/debugging-tools.html?gi-language=c

Security

See CONTRIBUTING for more information.

License

This project is licensed under the Apache-2.0 License.