A reference code and solution to simplify the live streaming by using the browser APIs and webRTC to capture the video. The solution is based on small, independent, and decoupled blocks to capture cameras and transwrap video into RTMPS, sending to (Amazon Interactive Video Service(https://aws.amazon.com/ivs/)).
- Broadcaster app: This application uses basic browser APIs to capture audio and video media, and a client web socket to send data to the server web socket. It uses AWS Amplify, which offers tools to build scalable full-stack applications.
- Amazon IVS: A managed live streaming solution that is quick and easy to set up and is ideal for creating interactive video experiences.
- Proxy video transwrap: This application uses Node.js to open an HTTPS server for the WebSocket communication, and FFmpeg to transwrap the stream in RTMPS to Amazon IVS.
A reminder that this is a reference solution is not for use in a production environment, but is ideal for testing and accelerating your cloud adoption. Please reach your AWS representative, click or here, for more information on architecting a custom solution for large-scale production-grade events.
This is a serverless application, leveraging Amazon IVS, AWS Amplify, Amazon API Gateway, AWS Lambda, Amazon DynamoDB, Amazon S3. The web user interface is built using React.js.
We will need to deploy the API's, Lambda Functions and Authentication resources, we will use AWS Amplify.
This is an optional step to provisione a ECS Docker Container to work a remote transwrap proxy, that will translate from WebRTC to RTMPS.
This sample demo app, captures the video and use a proxy in node.js to transwrap the stream to Amazon IVS
The server - transwrap-http.js can be local or remote, according to the steps that you will follow. For improving browser compatibility, the video element was embedded in a canvas element, as HTMLMediaElement.captureStream() has limited support. HTMLCanvasElement.captureStream() compatibility can be observed in the link captureStream()
Deploy the application API's and run the client app locally
- Backend: Transwraping Amazon ECS container:Install the remote video transwrap server.
- Create a IVS Channel using a shell script
- Customize the web app and compatibility discussions
This project uses FFMPG, http://www.ffmpeg.org, please check lisensing usage.
See CONTRIBUTING for more information.
This library is licensed under the MIT-0 License. See the LICENSE file.