2012-03-12 26 views
6

我想在播放器中傳輸音頻/視頻文件。播放器可以是HTML5或Flash播放器,具體取決於客戶端瀏覽器是否支持HTML5 audio()。我正在考慮的流媒體服務器是AMAZON Cloudfront。我已經通過亞馬遜http://docs.amazonwebservices.com/AmazonCloudFront/latest/DeveloperGuide/RTMPStreaming.html#d0e4668的指導,但它只談論Flash播放器。 Amazon Cloudfront的流媒體可以使用HTML5播放器嗎?用於從Amazon Cloudfront進行流式傳輸的HTML5或Flash播放器

回答

7

ACF(亞馬遜CloudFront的)分佈利用閃存介質爲RTMP服務器所以,在自己,CF分佈麥凱納t提供了一個完整的解決方案,提供非閃存播放器/設備的流媒體功能!

這給你留下2個選擇;

  1. 報價流只閃存用戶/有規律的, 漸進式下載使用HTML5的選項或
  2. 設置一個WOWZA媒體服務器與內容設備以流如果HTML 模式。

無論哪種方式,這可以通過使用播放器的模式來實現[] VAR在那裏你可以提供不同的設置參數,如路徑/文件和其它變量,例如流光 & 提供商在您的播放列表/播放器


讓我們假設你有以下的設置;

  1. 一桶,'my-music.s3.amazonaws.com/'。這是您存儲您的 媒體的地方。例如,對於視頻,用於音頻 和'my-music.s3.amazonaws.com/video/'的'my-music.s3.amazonaws.com/audio/'。
  2. RTMP流媒體發佈與您的 「my-music.s3.amazonaws.com/」桶作爲源。這將是您的流光閃存 ,類似於 'XXXXXXXXXXX.cloudfront.net/cfx/st/'。
  3. 位於'/audio/song.mp3'位置的MP3。

爲了使這項工作在任何的Flash(與RTMP流)或HTML5(作爲漸進式下載),你需要有一個球員設置如下...

<script type="text/javascript"> 
/* set var baseURL to your media BUCKET 
NOT your streaming distribution */ 
var baseURL = "https://my-music.s3.amazonaws.com/"; 

jwplayer('mediaplayer').setup({ 
'id': 'playerID', 
'width': '480', 
'height': '270', 
'file': 'audio/song.mp3', /* change to your song/video path */ 
'provider': 'rtmp', 
'streamer': 'rtmp://XXXXXXXXXXX.cloudfront.net/cfx/st/', 
'modes': [ 
    { 
     type: 'flash', 
     /* set the location of your SWF object */ 
     src: 'https://my-player.s3.amazonaws.com/plugins/jwplayer/player.swf' 
    }, 
    { 
     type: 'html5', 
     config: { 
      /* prepend your BUCKET URL (baseURL var) to the file path */ 
      'file': baseURL + 'audio/song.mp3', 
      /* set provider */ 
      'provider': 'video' 
     } 
    } 
] 
}); 
</script> 

當然,如果您使用的是CMS,插件,插件或模塊來管理你的球員,你可能可以將這些參數在管理界面或可替代訪問&編輯,以編程方式設置它們。

有一點要注意,就是順序您將類型模式[]數組對象是在JW播放器將嘗試加載順序。


欲瞭解更多信息,請參閱JW Embedder Modes here

提供雙數據流 如果你想提供使用HTML5的流,你會使用同樣的方法,改變了流光,供應商在HTML5類型的對象相應的屬性。

希望這有幫助!

蓋孜

+0

@gentrobot假設您不介意在** HTML5 **模式下使用漸進式下載(即非流式傳輸)提供內容,是的,* CloudFront **將獨自完成這項工作。但是,如果您想要使用Flash或HTML5傳輸內容,則需要查看另一種基於非Flash的技術,如wowza。無論哪種方式,我的答案都解釋瞭如何實現這一點。祝你好運,Gez – MyBO 2012-05-03 14:51:56

+0

Gr8回答!非常感謝。我正在瀏覽Wowza網站和他們的服務,看看是否適合我的需求。 – gentrobot 2012-05-04 14:20:34

+0

嗨@gentrobot,沒有probs ... Wowza可能不是唯一的選擇,但你一定要得到一個非基於閃存的媒體服務器/服務來爲他們服務。同時,您可以通過使用html5來測試播放器模式,如示例中所示。至少你知道邏輯/播放器在你的環境中工作。祝你好運,Gez – MyBO 2012-05-04 15:37:08

1

JWplayer將很容易地從Cloudfront同時完成html5和flash流式傳輸。

詳情請見以下... http://www.longtailvideo.com/support/jw-player/jw-player-for-flash-v5/49/using-cloudfront

喬恩

+0

2個問題:1。 我可以用我自己的HTML5和Flash播放器? 2.我是否需要分別購買Amazon S3和Amazon CloudFront服務? – gentrobot 2012-03-13 05:03:18

+2

只要他們支持rtmp流媒體協議,那麼你可以使用任何你喜歡的東西,只需將源指向雲端連接/播放字符串即可。 您不必單獨購買S3/Cloudfront,它們就在您註冊的單個AWS賬戶下。 有一個有用的流測試器,我用它來檢查連接字符串。 http://d1k5ny0m6d4zlj.cloudfront.net/diag/CFStreamingDiag.html Cloudberry S3瀏覽器也是一個非常非常有用的工具,在你的武庫。 – JonLovett 2012-03-14 12:45:38

+0

非常感謝JonLovett。你有很大的幫助。 – gentrobot 2012-03-14 13:02:47

相關問題