2012-08-11 78 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