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
Related
If the resolution is 1080P, how much does it cost if 10000 viewers watch the live stream for 1 hour?
You have several options :
MediaLive plus S3 plus CloudFront is one valid workflow if you don't need DASH formats or Encryption. Each service in the workflow has its own line item in the combined price.
MediaLive plus MediaPackage plus CloudFront is the high-end workflow most often chosen by media professionals. It provides multi-format streaming (creating DASH + CMAF automatically for example), and provides optional Encryption and optional Ad Insertion via MediaTailor. Each service in the workflow has its own line item in the combined price.
The AWS Interactive Video Service (IVS) offers "twitch-quality" 1080P HLS streaming at attractive prices with very fast easy configuration. This would be a one-stop shop solution with simplified pricing.
To answer your question you can look at the public pricing guides, or start a conversation with an AWS salesperson via the web form at: https://aws.amazon.com/contact-us/sales-support/
Good luck with your project!
AWS Elemental MediaLive is a Live encoder and it does not serve the content to viewers. In order to serve the video content to viewer, you have to output the video to an origin server such as AWS S3 or AWS Elemental MediaPackage. If you have 10,000 viewers, it is advised to use CloudFront when streaming the content.
AWS Elemental MediaLive is charged on a fixed rate base on the combination of codec, bitrate, and resolution of the input stream and output stream. Detail of the pricing can be found here:
https://aws.amazon.com/medialive/pricing/
I want to extract one frame or screenshot of a video stored in s3 at specific time, what can i use to make it ?
Lambda functions
Using the SDK
Amazon Elastic Transcoder has the ability to create videos from sources files. For example, it can stitch together multiple videos, or extract a portion of video(s).
Elastic Transcoder also has the ability to generate thumbnails of videos that it is processing.
Thus, you should be able to:
Create a job in Elastic Transcoder to create a very short-duration video from the desired time in the source video
Configure it to output a thumbnail of the new video to Amazon S3
You can then dispose of the video (configure S3 to delete it after a day) and just use the thumbnail.
Please note that Elastic Transcoder works asynchronously, so you would create a Job to trigger the above activities, then come back later to retrieve the results.
The benefit of the above method is that there is no need to download or process the video file on your own Amazon EC2 instance. It is all done within Elastic Transcoder.
The AWS SDK does not have an API that extracts pictures from a video. You can use AWS to analyze videos - such as the Amazon Rekognition service. For example:
Creating AWS video analyzer applications using the AWS SDK for Java
You can use the Amazon Rekognition to detect faces, objects, and text in videos. For example, this example detects text in a video:
https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javav2/example_code/rekognition/src/main/java/com/example/rekognition/VideoDetectText.java
The Amazon S3 API has many operations, but extracting a pic from a video is not one of them. You can get an inputstream of an object located in a bucket.
To extract a pic from a video, you would need to use a 3rd party API.
I'm working on an app for on-demand HTTP Live video streaming using Amazon AWS. I was able to set up Amazon's default video-on-demand HLS workflow using the link below (i.e. video is uploaded, auto-encoded and stored in a different bucket with a unique ID). I'm trying to find a way to automatically group videos by category (in DynamoDB or another database) when I upload them. Has anyone done something similar before? Do I need to use a Lambda function?
https://docs.aws.amazon.com/solutions/latest/video-on-demand/appendix-a.html
FYI - in case anyone else is looking for a way to do this. You can upload your video to AWS and use a javascript lambda function to automatically categorize them in a nosql database
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?
I have an application which streams video like(NetFlix, Youtube).
I am trying to host it in the AWS platform. I have found two different options with this:
first one is store video files in s3.
the second one is store video files in AWS MediaStore.
In my existing platform, I have a problem with downloading video through IDM by end users.
So, I have to prevent downloading the video from IDM.
How can I do this in the AWS platform? Which AWS service will suit my case of preventing downloading?
Please take note of data-out charge when you use AWS as the primary mean to serve your video streams. Personally I found It prohibitively expensive to use AWS's service to serve your video
Netflix for example use S3 as a part of main storage for their video streams.
To the question of which service you can use to hide direct link / download link from AWS. Currently there is no service provided natively by AWS for that purpose