我是Streaming Media的新手。我正在使用Symfony 1.4构建的Web应用程序。它具有音频播放器,我正在为播放器使用jPlayer。我使用ffmpeg来编码音频文件。目前,我正在将我的音频文件存储在开发服务器上。但是,我希望使用Amazon S3 Storage Service来存储我的音频文件。在浏览WWW和Amzon网站上提供的信息时,我意识到它需要一个流媒体分发服务即。亚马逊Cloudfront。目前,当我从服务器播放音频时,我没有使用任何流式传输。是否有必要使用Amazon Cloudfront?我不能通过提供http://s3.mybucket.com/XXX的URL直接从Amazon S3提供我的音频文件吗?直接从Amazon S3提供文件而不使用Cloudfront会产生什么后果?
我在这里可以看到我正在使用的玩家的演示:http://audiodip.org/project/detailsProject/id/5
答案 0 :(得分:1)
我不能通过提供http://s3.mybucket.com/XXX
的网址直接从Amazon S3提供我的音频文件
是的,你可以。如果您在S3上的文件是公开的,那么您的网址将采用http://bucket.s3.amazonaws.com/filename
格式,否则您需要使用GUI tool或其中一个AWS S3 API创建预先签名的网址。
只需将该网址用作播放器中的音频源即可。它将直接提供给浏览器,不通过您的网络服务器。
您可以将Cloudfront置于S3之前,它可以提高性能但不是必需的。您当然不需要使用流式传输。
答案 1 :(得分:0)
如果必须从远程服务器(在您的情况下为S3)中检索音频文件,您应该阅读并将其作为流式音频播放。 否则就像将完整的音频文件下载到应用程序服务器然后播放它一样。
Cloudfront是一种内容交付服务,使用该服务无需额外费用。 因此,最好使用来自cloudfront的流媒体服务。
您必须启用音频播放器才能播放流媒体数据。
答案 2 :(得分:0)
取决于您说“流”时的真正含义。仅仅因为您正在网站上播放视频或音频,并不意味着视频或音频在技术上是“流式”的。对于普通人来说,这可能并没有多大区别,但是在科技界,有difference between streaming video and progressive downloads。
因此,如果您仅想使用Amazon S3托管视频/音频,则可以将其公开(除非像bot这样疯狂地运行AWS账单的机器人,否则不建议这样做),然后将公共URL插入您的网站或音频播放器。
或更妙的是,使用https://S3MediaVault.com之类的插件并创建签名的URL,并自动创建安全的视频/音频播放器。
以上两个都是渐进式下载。
如果您想进行真流(S3MediaVault does that too),则必须使用AWS MediaConvert之类的服务将媒体文件转换为HLS流,然后使用Videojs之类的播放器来播放流在您的网站上。