How to Live Stream an exist video store in S3? - amazon-web-services

I upload a video to S3, use AWS MediaConvert to transcoding then transfer to the end-user using MediaPackage (VOD). And now, I need Live stream a video available in S3.
I know about MediaLive, the document told me the input of MediaLive is Live stream source like Camera or Broadcast Software. I'm not sure MediaLive accepts the source from a video available in S3.
Please let me know how to solve my problem?

Related

How to upload real time video to AWS S3 Bucket

I am trying to upload a real-time video stream from the video camera to the AWS S3 bucket. Here assuming that camera settings like target IP or domain are fully controllable. But I don't know how to implement this on AWS services. Any advice would be appreciated. Thanks in advance.
In AWS you can achieve this by using Amazon Kinesis Video Streams.
You can use the Gstreamer Docker image to stream video from the camera to Kinesis Video Streams. Have a look at the docs here

Is it ok to process AWS IVS recordings while the streaming is going on?

AWS IVS provides option to auto-record streaming video in S3 buckets in fixed intervals. I want to do some live analysis of the live stream and am wondering if it is okay to add a lambda trigger for the s3 bucket, so that whenever a new video segment is inserted in the bucket, I can process it and do some processing on it?
In the docs they say,
We recommend that you play back or process recorded streams only after the Recording End event is sent.
Does this mean, I can't rely on those video segments that are uploaded to S3?

FFMPEG upload output to S3

I have a video file stored in my S3 bucket. I want to take that file as the input, do some processing with FFMPEG and directly upload it to S3. How can I do this?
You can either do it yourself, or use Amazon Elastic Transcoder.
If you wish to use FFMPEG yourself, you will need somewhere to run it. This could be on an Amazon EC2 instance, or on your own computer. Your program or script would need to download the video from the S3 bucket, process it with FFMPEG and then upload the resulting file to S3.
Or, you could use Amazon Elastic Transcoder to transcode the file. It is not FFMPEG, but it has many of the same capabilities. It can read the video directly from S3 and output the result to S3. Pricing is based on the length of the input video file (eg 3c per minute).
Actually, a newer product called AWS Elemental MediaConvert is also an option. It is a professional video system used by the broadcasting industry, so it has a lot more options.

Using AWS Elemental MediaStore as a backend for MediaPackage

I think what I want to do is utilize MediaStore as a backend to MediaPackage, but it's possible mediaPackage has everything I need I just haven't been able to find any answers.
What I'm looking for is a way to record live video, and have it available for playback. I was looking at this solution from AWS for livestreaming, and while it is close to what I want I want to store the video for playback at a later date as well as broadcast the video live.
My customer also wants the ability to upload videos that were not live recorded, so I think what I want to do is add MediaStore between the lambda function and MediaPackage, so I can upload videos to MediaStore manually or setup a channel within MediaStore for live streams. Then I can have MeidaPackage reference the MediaStore to create the different file formats for consumption. The problem is that MediaPackage doesn't accept a MediaStore endpiont, only an S3 endpoint.
Any advice?
TTIA
Using S3 and MediaPackage should be sufficient in your case. It is not necessary to use MediaStore.
I am assuming you are using AWS MediaLive or encoder from other vendor to create a HLS feed that ingest to MediaPackage. In MediaPackage, you can create endpoints as needed. This AWS Media Service Simple Live workflow should give you the idea how to build the workflow. [1]
To record the live video or create live to VOD asset, you can create a harvest job in MediaPackage. MediaPackage will harvest the timeframe that you indicated in the harvest job and will save the copy in your S3 Bucket. For more information please read this article. [2]
To playback the live to VOD asset or a upload video, you can use the VOD functionality in MediaPackage to make the asset available for playback. For more information please read this article. [3]
[1] https://github.com/aws-samples/aws-media-services-simple-live-workflow
[2] https://docs.aws.amazon.com/mediapackage/latest/ug/ltov-how.html
[3] https://docs.aws.amazon.com/mediapackage/latest/ug/vod-content.html

Audio streaming through MediaLive server

I want to have live audio streaming and broadcasting setup. I would stream audio from laptop or mobile through Altacast/rtpmic or any cast to inputs of AWS Elemental MediaLive Input.
I setup AWS Elemental MediaLive Input (RTMP) and then had a AWS MediaPackage configured ahead of it. I created endpoints from MediaPackage.
I tried streaming audio from rtpmic to a IPv4 address and port number provided that I got from Elemental MediaLive and tried to hit the endpoints (output) that I got from MediaPackage. But I keep getting "error 404" at the endpoints. I have also setup channels which takes up input from MediaLive output. And the channels have endpoint which I am trying to check for output.
Where do you think I might be going wrong? How can I investigate if Inputs of Elemental MediaLive is getting Audio? Cant I use AWS Elemental MediaLive for audio streaming?
I am new to this, so please excuse me if I am stating anything incorrectly or not providing any information correctly.
I spoke with chat support of AWS Media Live, and I understand that they havent created Elemental MediaLive for audio only streaming. Hence it cannot be done, what I was thinking to do. Users have tried sending black screen as video input and audio, but thats not the ideal way of doing it.
I am trying wowza now.