2012-04-03 34 views
3

我一直在爲使用JW Player和Flash Media Server的客戶端維護視頻系統來流出一些視頻。直到最近,這只是推出一個比特率的流。這顯然不適合每個人,所以我一直在研究帶寬檢測。bandiwdth檢測如何在Flash/FMS中工作

我已經構建了一個演示系統,現在可以使用JW Player中的內置方法在三個比特率之間動態切換。在我推送它之前,我需要回答我的客戶提出的一個問題:

它是否具有內置遲滯功能,以便在帶寬邊際時流不振盪?理想情況下,如果帶寬接近頻帶底部(yeh,yeh ..),那麼我希望它使用下一個速度。

所以從這兩個問題:

  • 當用戶的帶寬是正確的兩個流之間的邊界會發生什麼?他們會在兩條流之間翻轉嗎?

  • 是否有任何最佳實踐來最大限度地減少像這樣(和一般)的用戶的流量跳躍?

回答

0

我不知道JW Player是如何做到的,但有一種「原生」的方式來做到這一點。可能這個玩家使用它,可能不會 - 誰知道。 Flash視頻播放器傳統上是根據具體情況制定的,而所有玩家的整體質量都很低。所以,考慮到您自己構建播放器的特殊要求,這可能是一件好事 - 這是相當多的測試,但不是太多的代碼。

它是如何工作的「本地」:detailed info。簡而言之,您需要實現2個功能:onBWCheckonBWDone作爲NetConnection實例的客戶端使用的對象。檢測過程或多或少是這樣的:服務器發送一定大小的數據包,接收數據包後將計算數據包傳輸所花費的時間。它會嘗試這樣做,直到它「認爲」它找到適當的帶寬。

現在來嘗試回答你的問題:由於帶寬檢查純粹是經驗性的,並且每個會話只執行一次,所以多個因素會導致結果偏差。所以估計不是很精確,可能很大程度上取決於客戶端機器同時激活某些內容,或者連接到另一個流媒體服務器,或者Windows決定更新一些非常重要的組件......您會得到理念。

真相被告知,Flash流設計是偏好低速,低滯後高速,可能更滯後。但是這些價值觀並不是絕對的,而是真的取決於每種特定的情況和通往服務器的路線,用戶的ISP等等。所以,如果我是你,我不會簽署那些說「沒有滯後」的論文,但是,提供良好的品質並非不合理:)

相關問題