HTTP Live Streaming via AWS cloudfront
Asked Answered
R

4

11

Like to know if anyone been able to stream HLS video via AWS Cloudfront with Signed URL.

My experience so far is, it is not possible. AWS documentation is not clear. AWS Forum is silent.

I seem to be able to get the first file ( .m3u8 ) then it stops. Using JW player, which complains cannot get media file.

If answer is yes, please point me in the right direction.

Thanks.

Renwick answered 20/6, 2013 at 16:55 Comment(0)
E
15

The scenario with unsigned URLs will most definitely work. I've successfully segmented video streams with ffmpeg onto S3 and served from CF. It's all HTTP after all.

If you wish to restrict access to your HLS content, your playlist file would need to include signed URLs as well. You would typically compute these as the playlist is requested, based on whatever credentials you wish to authenticate the user with. Thus, you need a server-side implementation that generates session-unique m3u8's for you in order for the signed-URL scheme to make sense.

Depending on your needs, another option would be to look into DRM. JW Player supports single/rotating key fragment decryption, which arguably tends to be a more complicated solution. You would then be left with the matter of securely distributing decryption keys to your clients.

I hope this somewhat addresses your concerns. If not, feel free to leave a comment.

Eckart answered 17/7, 2013 at 15:52 Comment(1)
Please note this is now possible with the use of signed cookies - which removes the need for signed TS URLs. It'd be good to factor this into the answer above and mark it as accepted.Outbrave
G
3

Use signed URLs in the following cases:

  • You want to use an RTMP distribution. Signed cookies aren't supported for RTMP distributions.
  • You want to restrict access to individual files, for example, an installation download for your application.
  • Your users are using a client (for example, a custom HTTP client) that doesn't support cookies.

Use signed cookies in the following cases:

  • You want to provide access to multiple restricted files, for example, all of the files for a video in HLS format or all of the files in the subscribers' area of a website.

  • You don't want to change your current URLs.

For more : http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-choosing-signed-urls-cookies.html

Guise answered 11/8, 2016 at 7:16 Comment(0)
A
1

According to this article, cloudfront does support HLS. I am currently attempting to implement this on my site using flowplayer with html5 video. I will update this answer once it is running. Amazon Web Services site also had this to say about HLS Support although it does not seem as neat and tidy as the rtmp approach.

Araceli answered 31/10, 2013 at 8:15 Comment(1)
have you implemented it?Disreputable
D
-2

According to CloudFront's description of its streaming:

Streaming of pre-recorded media: You can deliver your on-demand media using Adobe’s Real Time Messaging Protocol (RTMP) streaming via Amazon CloudFront. You store the original copy of your media files in Amazon S3 and use Amazon CloudFront for low-latency delivery of your media content. Amazon CloudFront integrates with Amazon S3 so you can configure media streaming by making a simple API call or with a few clicks in the AWS Management Console. You also benefit for the high throughput delivery of your media when using Amazon CloudFront, so you can deliver content in full HD quality to your viewers.

The short answer is pretty much no. Streaming from CloudFront is RTMP.

Link: http://aws.amazon.com/cloudfront/

That said, AWS's Elastic Transcoder can make HLS filesets and playlists, and those can be served from CloudFront. So then the answer becomes "yes if you can do the work/figure it out."

Here's a link to their FAQ telling you how to do it: http://aws.amazon.com/elastictranscoder/faqs/#Can_I_get_segmented_output_for_HTTP_Live_Streaming_(HLS)

Discursion answered 26/6, 2013 at 17:57 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.