2016-09-15 210 views
0

的ExoPlayer樣品附帶以下默認值的影響:推薦緩衝液和重新緩存用於ExoPlayer實例數據的持續時間和改變這些

mPlayer = ExoPlayer.Factory.newInstance(RENDERER_COUNT, 1000, 5000);

其中1000是minBufferMs和5000是minRebufferMs。從文檔:

minBufferMs - 數據的最小持續時間必須被緩衝 回放開始或恢復之後的用戶操作,如尋道。

minRebufferMs - 數據的最小持續時間必須被緩衝 回放的播放器中調用重新緩存之後恢復(即,作爲起始於用戶的動作,例如 發生由於緩衝器枯竭,而不是由於一個重新緩存 播放或尋找)。

這些似乎是合理的默認值,但可能與播放器的平均視頻長度有關?在我的應用程序中,平均視頻大約是24s,但是,有些視頻可能是1秒或< 6s。我認爲這些默認值給我帶來了一些邊緣病例視頻的問題(因爲他們的持續時間是< minBuff或minRebuff在第一個buff後面),所以我正在考慮改變它們。

問題是,什麼是推薦值,以及將這兩個值設置爲500和2000的影響是什麼?

回答

1

這些值與視頻的總長度無關 - 它們與您希望緩衝的數量有關,以確保播放,而不必在緩存更多視頻時暫停視頻。

如果您的視頻非常短,例如您的第1個示例,那麼這可能是一個邊緣情況,可能值得嘗試一些不同的值。

我認爲任何推薦值都不會超過推薦值,但上面的默認值似乎並不合理。您可以嘗試更改這些值,但問題是您的結果將反映測試期間出現的網絡,CPU負載等情況。

隨着播放器在比特率之間切換,自適應比特率視頻也會混淆水分,以試圖找到當前網絡條件下的最高質量比特率。同樣,持續1秒的視頻是自適應比特率視頻可能沒有多大意義的邊緣情況,除非它們是連續視頻流的一部分,並且您希望能夠保持所有視頻的比特率相似。