1

I'm developing an android app where user can start live streaming using his/her android-camera. I have AWS & GCP resources at hand. What I understand after some reading is,

  1. I have to stream/publish, whatever android-camera is picking, to some server over some protocols(RTMP or HLS, etc..)

  2. I have to setup server that will pull this input source and packages & stores it in a form that could be streamed/consumed on the mobile/web browser(Basically, an URL) and I believe AWS's MediaLive, MediaPackage, etc.. resources should do that.

  3. I could use this URL are MediaSource for players on Android(like ExoPlayer)

My problem is I couldn't find good documentation on 1st part. I found this, https://github.com/bytedeco/javacv, which doesn't appear to be production-level work. While trying out 2nd part, while creating MediaLive channel on AWS, I was asked to point the channel to 2 destinations(I don't know what it means) which made me doubt my understanding of this process. I'm looking for some skeleton-procedure with official documentation on how to achieve this.

EDIT 1:

For the Input-Production part, I'm experimenting with this answer. https://stackoverflow.com/a/29061628/3881561

EDIT 2:

I've used https://github.com/ant-media/LiveVideoBroadcaster to send video source to RTMP server. I've created RTMP push input source in MediaLive and a channel with output - Archive(stores .ts files in S3). Now that the flow is working, How can I modify this architecture to allow multiple users to create live streaming?

Selim Emre Toy
  • 510
  • 9
  • 22
tezz
  • 349
  • 2
  • 19
  • I suggest using a service that does this for you, like [mux.com](http://mux.com) – szatmary May 23 '19 at 13:25
  • 2
    Setup would be like Android -->(rtmp/rtp/hls, input) Medialive(output hls/dash) --> Mediapackage --> Cloudfront, the setup is easy, medialive provides 2 endpoints but you can only use one if you choose rtp push or rtmp push. However, the main problem is how you're using to send rtmp/rtp stream from your android device to medialive, simple camera won'r encode it for, you need some encoder to create rtmp/rtp stream for you and push it to medialive, the better option for you to use kinesis video streaming and use sdk to generate that stream for you. – James Dean May 23 '19 at 18:06
  • @JamesDean 1. What does "Destination Name & Instance" mean, while creating Input for MediaLive? 2. Does this implementation work if more than 1 user tries to create Live Stream? – tezz May 24 '19 at 10:50
  • AWS SDK provides methods to createChannel and such that would allow you to create new channels for new users. What I would like to know is since those channels take a minute to "initialize," does that mean it will also cost money if there is no input feed pushing data into the channel? I would hate to create a new channel for a new user and get charged when they aren't streaming anything. – SacWebDeveloper Jul 18 '20 at 07:44

0 Answers0