2015-02-07 119 views
-1

使用SMIL文件在videojs播放器中使用自適應流式傳輸需要什麼。我在我的wowza應用程序中創建了SMIL文件,並創建了4個獨立的流並使其可用。不過,我無法讓我的網頁使用videojs正確播放SMIL文件。提示該編碼或去哪裏找到正確的文檔將不勝感激。SMIL自適應流式傳輸Videojs

回答

0

SMIL播放器的實現並不多。我確定我已經看到了wowza網址,它表明它會將SMIL輸出爲其他格式,比如whatever.smil/manifest.m3u8。這是HLS,它可以在本地移動和Safari上播放,並在其他地方使用videojs-contrib-hls

0

我知道這個問題很舊,但最近我一直在努力,所以我想分享我的經驗,以防萬一有人感興趣。我的場景非常相似:想要從Wowza向使用videojs的客戶端提供自適應比特率流。

有一個master link解釋瞭如何設置和運行Wowza Transcoder進行直播,以及如何使用SMIL文件設置自適應比特率流。在視頻之後,您可以實現使用ABS的流,但將SMIL文件附加到流名稱,所以如果您有來自另一個媒體服務器源的Wowza的流並且需要在被送達給客戶之前被轉碼。在文章中提到了一些關鍵的東西(比如Stream Name Groups),但不管怎樣,事情似乎並不清楚,至少對我而言。因此,這裏是一些澄清什麼,我從我讀了所有文章的理解和我做了什麼來實現ABS:

  • 可以實現Wowza ABS或者與SMIL文件或流名稱組(NGRP)。 NGRP反射到Transcoder模板中定義的可以使用多比特率流(動態)播放的流塊(這是我使用的)。 SMIL文件用於爲多比特率VOD流創建「靜態」流列表。如果您使用的是Wowza Origin-Edge Delivery,則需要.smil文件,因爲NGRP不會被轉發到邊緣。 (所有這些信息的來源:here)。
  • 如果您需要SMIL文件,您可能需要爲每個流生成一個新文件,並且可能希望以自動方式執行該操作,所以最好的方法是通過HTTP請求(在上面的鏈接中解釋如何實現這一點)。
  • 在你可以用NGRP生活情況下,事情有點容易:

    1. 您需要啓用Wowza轉碼器(這是很容易和步驟都在視頻我上面提到)。
    2. 您應該創建您自己的代碼轉換器模板,其中包含您想要提供的不同流預設,作爲一個例子,您可以查看已存在的默認代碼。您添加的預設數量越多,Wowza在流式傳輸時就需要做的工作越多,因爲它需要爲您定義的每個預設生成一個新流。
    3. 現在是當我們生成NGRPs。在您的Transcoder模板中,您可以根據需要生成儘可能多的NGRP(要澄清:這些就像是一組流,您可以在您的客戶端視頻播放器中設置)每個NGRP包含視頻將能夠在進行自適應比特率流傳輸時使用)。舉例來說,這些都是默認NGRPs:

enter image description here

如果你玩在客戶端視頻播放器NGRP「_mobile」,在玩家的ABS算法將能夠使自己適應於基於客戶端功能播放240p或160p流。

所以想象你有這兩個NGRP。 爲了在videoJS發揮他們,你需要將源設置爲

http://[wowza-ip-address]:1935/<name-of-your-application>/ngrp:myStream_all/playlist.m3u8 

http://[wowza-ip-address]:1935/<name-of-your-application>/ngrp:myStream_mobile/playlist.m3u8 

...根據你要多少選擇提供給客戶端播放器用於ABS。 (例如:如果你的目標是舊的移動設備,你可能只是想提供幾個低比特率的流)。 (如果您提供HLS流,則會出現這種情況。如果其他格式,擴展名會發生變化,例如,如果您要傳送DASH流,您將擁有「/manifest.mpd」而不是「」播放列表。 m3u8「)。

就是這樣,在video.js文檔中還有一個非常有用的鏈接,說明它如何進行比特率切換:here

我希望它可以幫助別人!至少澄清事情! :)