- RESTful API for managing streams and their consumers
- App Engine serverless functions
- Data stored in Firestore
-
Create RTMP stream
-
Payload
{ "activation": "datetime", "duration": "number of days", "max_bitrate": "integer", "name": "string", "dedicated": true }
If
dedicated
is set totrue
then we create a dedicated node in the cluster. Otherwise, we will use a shared node. -
Returns:
{ "id": "uuid", "inbound_url": "an RTMP URL", "outbound_url": "a DASH manifest URL", "expiration": "datetime", "options": { ... } }
-
-
Update RTMP stream
-
Payload
{ "activation": "datetime", "duration": "number of days", "max_bitrate": "integer", "name": "string", "dedicated": true }
If
dedicated
is set totrue
then we create a dedicated node in the cluster. Otherwise, we will use a shared node. -
Returns:
{ "id": "uuid", "inbound_url": "an RTMP URL", "outbound_url": "a DASH manifest URL", "expiration": "datetime", "options": { ... } }
-
-
Upload VOD file
-
Payload (multipart/form-data)
file=BINARY_CONTENT name=string activation=datetime duration=integer breakpoints[]=array of bitrate versions
-
Returns:
{ "id": "uuid", "outbound_url": "a DASH manifest URL", "expiration": "datetime" }
-
- A node.js docker container with node-media-server
- Single-tenant - docker container created for each RTMP creation
- App Engine node.js / ffmpeg API to create a stream and push it to Outbound shaka packager
- On demand docker container with shaka packager installed to convert a UDP stream or video file to a DASH manifest and media segments
- Media segments and DASH manifest uploaded to cloud storage
- https://google.github.io/shaka-packager/html/tutorials/live.html#examples
- Front-end library to use Shaka Player to consume DASH manifest