HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 通过CloudFront进行私有HTTP直播大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个iOS应用程序,允许下载和私人视频的http直播.视频存储在Amazon S3存储桶中(如mp4并分段为m3u8 / ts文件).此外,CloudFront已打开并连接到存储桶.

由于内容是私有的,因此我需要在通过CloudFront连接时对URL进行签名.为了对URL进行签名,必须使用私钥,因此,如果不将私钥存储在捆绑包中,则无法在iOS应用程序中生成签名URl.这将是个坏主意!

所以我决定编写一个简单的Ruby服务器,它执行URL签名并重定向生成的签名CloudFront URL,如下所示:

http://signing.server.local/videos/1.mp4https://acbdefg123456.cloudfront.net/videos/1.mp4??Expires=XXX&Signature=XXX&Key-Pair-Id=XXX

http://signing.server.local/videos/1.m3u8https://acbdefg123456.cloudfront.net/videos/1.m3u8??Expires=XXX&Signature=XXX&Key-Pair-Id=XXX

对于视频下载,它运行良好,因为只有一个请求.但是,当我希望流式传输内容并为MPMoviePlayerController提供签名服务器的URL时,服务器只会签署第一个请求并重定向到CloudFront.对于下一个请求,MPMoviePlayerController将第一个签名的CloudFront URL作为基础,并尝试直接连接而不会抛出签名服务器.

@H_656_5@m3u8文件中的路径是相对的.

有关如何实现功能而无需通过签名服务器发送所有内容的任何建议?

解决方法

使用S3 / CloudFront或任何其他存储/ CDN执行专用HLS的正确方法是使用HLS加密.见 Apple documentation about this topic.

除了存储播放列表和分段视频文件的存储空间外,您还必须集成安全的httpS服务器,以存储顶级播放列表和密钥.这些密钥是在使用Apple HLS工具进行分段期间生成的.

下面是它的工作原理:

> MPMoviePlayerController获取指向安全httpS服务器上的顶级播放列表(.m3u8)的URl.
>在此文件中,有指向变体播放列表(prog_index.m3u8)的链接,这些链接存储在S3 / CloudFront中,并指向视频文件(.ts).
>此外,变体播放列表包含指向读取视频文件所必需的键的链接.这些密钥也存储在安全的httpS服务器上.

见下图:

摘自Mobile Movies with HTTP LIve Streaming (CocoaConf DC,Jun ’12)的演示文稿

当然,有可能使基础设施更安全,请参阅链接的Apple文档.

我还创建了一个用于分段的Ruby脚本,以生成具有给定基本URL的输出,这使事情变得更加简单.

大佬总结

以上是大佬教程为你收集整理的ios – 通过CloudFront进行私有HTTP直播全部内容,希望文章能够帮你解决ios – 通过CloudFront进行私有HTTP直播所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。