Looking for the optimal AWS service for live stream storage, but not delivery

1

I'm looking for the optimal/inexpensive AWS service for live stream storage (from mobile device), but a live stream delivery/output funtion isn't needed.

I've looked at: Amazon IVS Amazon Kinesis Amazon Kinesis Data Firehose AWS Kinesis Video Streams AWS Kinesis Data Streams AWS Elemental MediaLive AWS Elemental MediaConvert

Regarding your reply/solution, would it require downloading something to my mobile device to accomplish this? Does your reply/solution include live stream encoding?

Additionally, I'd like to provide the live stream file as a download. What's the optimal way to do that ? Does your reply/solution include converting to a downloadable format?

I look forward to being enlightened. Much thanks...

2 Answers
1

Hi Dylan, Many thanks for your kind, informative reply. And thanks for "Let me know if you have any other questions".

  1. So, I would need to have SDK integrated into a mobile app to accomplish this...
  2. Regarding, "If the video data in Kinesis Video Streams is not already in a downloadable format" - how/why would it "already be..."?
  3. In regard to "Once stored, it can be moved into something like Amazon S3". Isn't S3 the storage? I don't understand "once stored".
  4. If GetClip is used to download (https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_GetClip.html) is there a cost to use that? Once again, I look forward to being further educated. Much thanks again
chrisj
answered 8 months ago
    1. Correct, or something along those lines.

    2. I'm not sure, it would depend on the specific way on the application side is handling the stream. For example, if the video is already .mp4 then it would likely not need to be converted.

    3. Kinesis Video Streams is designed for real-time ingestion and processing of video streams. While it does store video data, it's more of a temporary storage optimized for streaming. Check out "https://docs.aws.amazon.com/streams/latest/dev/kinesis-extended-retention.html". When we say "once stored," we mean after the video data has been processed and is ready for long-term storage and/or archiving. That's where Amazon S3 comes in. Amazon S3 is designed for long-term, durable storage. So, after processing in Kinesis Video Streams, you'd typically move the video data to S3 for long-term storage, backup, or distribution.

    4. AWS typically charges for API requests and the amount of data retrieved. The exact pricing can be found on the Kinesis Video Streams Pricing page - https://aws.amazon.com/kinesis/video-streams/pricing/. It's important to note that while there's a cost associated with using the service (data storage, data transfer, etc.), there might also be specific costs for certain API actions. Always refer to the official AWS pricing documentation to get detailed and up-to-date information, there are a number of examples on the pricing page.

0
Accepted Answer

Hi @chrisj, As you mentioned, AWS Kinesis Video Streams is likely the choice for an AWS opinionated route for streaming to AWS[1]. Amazon Kinesis Video Streams provides SDKs that make it easy for devices to securely stream media to AWS for playback, storage, analytics, machine learning, and other processing. Kinesis Video Streams can ingest data from edge devices, smartphones, security cameras, and other data sources such as RADARs, LIDARs, drones, satellites, dash cams, and depth-sensors[1].

To stream video from your mobile device to Kinesis Video Streams, you would typically use the AWS SDK[1][6]. This means integrating the SDK into your mobile application[1][6]. So, while you don't have to download a separate app per say, you'd instead need to have the SDK integrated into a mobile app[1][6]. Check out "Publishing Data to streams"[5]. There is no standalone maintained app for example that you can just download and stream to your personal S3 bucket (that is made and published by AWS at least).

Kinesis Video Streams supports various video codecs. However, the encoding would typically be handled on the mobile device side before sending the stream to AWS[2]. This means your mobile app or the SDK you use for capturing video would handle the encoding[2].

If the video data in Kinesis Video Streams is not already in a downloadable format, you can use AWS Elemental MediaConvert to convert the video into popular formats like MP4[3]. Once stored, it can be moved into something like Amazon S3 where the streams can be downloaded and stored in a cost-optimal/resilient fashion[4].

Let me know if you have any other questions, please accept this answer if it helped,

Dylan

Sources:

  1. Amazon Kinesis Video Streams - Overview & How it works - https://aws.amazon.com/kinesis/video-streams/
  2. AWS Mobile SDK Documentation - https://aws.amazon.com/mobile/sdk/
  3. AWS Elemental MediaConvert Documentation - https://aws.amazon.com/elemental-mediaconvert/
  4. Amazon S3 Official Documentation- https://aws.amazon.com/s3/
  5. Publishing Data to streams - https://aws.amazon.com/kinesis/video-streams/faqs/
  6. Kinesis Video Streams Producer Libraries - https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk.html
profile pictureAWS
answered 8 months ago
profile pictureAWS
EXPERT
reviewed 8 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions