0

At present I am streaming to an EC2-instance either video, audio, or both. I want to do this in the most cost efficient and scalable way possible. The way the service works is that any device is able to publish to the nginx ec2 instance. So from lets say a phone, I can publish to x.x.x.x:6000/live/stream1. From the same device, I can publish to x.x.x.x:6000/live/stream2. Neither of these rtmp push endpoints are predefined server side. They are created dynamically from the device. Is there an AWS service that will provide this type of functionality dynamically? This should not require user login to any AWS service for my needs. I have checked out AWS Live Streaming with Elemental Media Store, as well as Kinises. Media store seems to require RTMP push endpoints to be setup through AWS first before a device can publish a stream. Kinesis seems to require user account creation, which I'm assuming will also create an endpoint tied to the user that a user can rtmp publish too.

I do not need Kinesis' user account creation, as I am using a different service to manage users. I'm just looking for the ability to create rtmp push endpoints from the device, and publish that endpoint upon creation.

Any help is appreciated.

Thanks.

Thanks.

Pleirosei
  • 123
  • 1
  • 9

1 Answers1

0

When you say that creating the RTMP endpoint from the device should not require user login to any AWS service for your needs, do you mean the end user's needs or your needs as the creator of the platform?

None of the AWS Elemental Media Services can be configured without first having an AWS account, of course, which does require authentication. Most all API calls made to AEMS endpoints require AWS v4 Authentication so there isn't a way to avoid this as the administrator, but you could create the platform to handle these steps for the end user without them requiring any additional authentication mechanism.

MediaLive also requires you to predefine the RTMP input's Application and Instance name before attaching it to a Channel so that may also be a drawback for your use case. Currently, this is the only media-based service offered by AWS that accepts RTMP input but with some effort you could build an application that automates the creation of the end user's specified Application and Instance names such that it 'appears' as if the destination will accept dynamic input.

MediaStore is an origination endpoint and primarily used for storage of encoded content to be consumed by a downstream CDN for playback. It only accepts RESTful API calls so you cannot push RTMP directly do it unfortunately.

Should you have more specific questions about the information provided above please let me know!

  • Thank-you for your reply and I apologize for just responding. In the course of my research I began to come to the same conclusion that there must be authentication from within the application, but not necessarily created by the user. i explored some AWS Amplify usage, but couldn't figure out how I could use the RestAPI within the application to create a challen ID, and then retrieve the endpoint created to use for rtmp streaming. That is where I am drawing a blank right now. I am very new to AWS and their documentation; feels like a needle in a haystack right now for me. lol – Pleirosei Dec 07 '20 at 14:31
  • 1
    Thanks for the comment, @Pleirosei I would first start by familiarizing yourself with the service APIs outside of the Amplify platform to avoid confusion early on. The AWS SDKs are a good starting point for learning how to interface with AWS APIs because they handle the authorization mechanism and allow you to focus on specific integration goals. You can learn about the tools available here: https://aws.amazon.com/tools/ If you would like to speak with a Solutions Architect fill out this form here: https://www.elemental.com/about-us/contact-us – Matthew Bournival Dec 08 '20 at 22:37
  • Thanks Matthew. I'm going to do exactly that. I appreciate the advice and assistance. – Pleirosei Dec 09 '20 at 16:04