2012-08-11 75 views
0

我是流媒体新手。我正在使用Symfony 1.4构建的Web应用程序。它具有音频播放器,我正在使用jPlayer作为播放器。我使用ffmpeg来编码音频文件。目前,我将我的音频文件存储在开发服务器上。但是,我希望使用Amazon S3 Storage Service来存储我的音频文件。在浏览WWW和Amzon网站上提供的信息的同时,我意识到它需要一个流媒体分发服务。亚马逊Cloudfront。目前,我在使用服务器播放音频时没有使用任何流媒体分发。是否有必要使用Amazon Cloudfront?我无法通过提供URL作为http://s3.mybucket.com/XXX直接向Amazon S3提供音频文件吗?直接从Amazon S3提供文件而不使用Cloudfront会有什么后果?服务流式传输内容,无流媒体分发

,我使用这里可以看到玩家的演示:http://audiodip.org/project/detailsProject/id/5

+0

进一步挖掘,我意识到Amazon Cloudfront更像CDN。我对么 ?此外,这是否意味着,如果我不希望我的音频文件通过传送网络分发,并且想始终从静态位置进行流式传输,我可以不使用Cloudfront吗?我能仅通过Amazon S3流式传输音频吗? – gentrobot 2012-08-11 11:55:49

回答

0

如果音频文件必须从远程服务器检索(在你的情况下,S3),你应该阅读并发挥它作为流音频。 否则,就像将完整的音频文件下载到应用程序服务器然后播放它一样。

Cloudfront是一项内容传输服务,流式传输不需要额外成本。 所以最好使用cloudfront的流媒体服务。

您必须启用音频播放器才能播放流数据。

+0

因此,只要该文件与Web应用程序位于同一服务器上,就不会有任何问题。但是,一旦我将文件移动到亚马逊,应用程序应开始下载文件到VPS,然后播放? – gentrobot 2012-08-11 12:06:55

+0

不仅亚马逊,无论是任何远程服务器或存储服务.. 多媒体对象的流式传输完成,只是不让最终用户等待很长时间的对象下载。以Youtube视频为例。 – 2012-08-11 12:12:10

+0

@Nnnnakuhtum - 这是不正确的。如果你的播放器在S3上指向一个URL,它将被直接提供给浏览器,并且不会通过网络服务器。此外,Youtube使用渐进式下载进行视频服务,而不是流式传输。请参阅http://blog.mydeo.com/2009/01/12/streaming-vs-progressive-download-understanding-the-difference/了解关于流式传输与渐进式下载的更多信息 – 2012-08-13 12:09:51

1

我不能直接服务于亚马逊S3我的音频文件提供了一个网址为http://s3.mybucket.com/XXX

是的,可以。如果您在S3上的文件是公开的,那么您的网址将采用格式http://bucket.s3.amazonaws.com/filename,否则您需要使用GUI toolAWS S3 API之一创建预签名url。

只需使用该网址作为播放器中的音频源。它将直接提供给浏览器,并将而不是通过您的Web服务器。

您可以将Cloudfront放在S3前面,它可以提高性能,但这不是必需的。你当然不需要使用流媒体发布。

+0

嗯。我明白了你的观点,但你会建议我使用cloudfront,不是吗?因为没有使用流媒体发布,它将成为媒体的下载而不是媒体流,不是吗? – gentrobot 2012-08-13 13:24:49

+1

Cloudfront可以设置为流媒体发布或使用渐进式下载作为标准CDN。除非您有特定的理由使用流媒体发布,否则我建议您坚持逐步下载。尽管它仍然是一个下载,而不是纯粹的流媒体,媒体将在下载足够多的时候开始播放 - 例如,在播放之前,你不需要下载整个文件。 – 2012-08-13 14:34:38