2017-09-26 523 views
0

花費了一些時間在AWS上設置轉碼過程後,我發現視頻的加載時間並未像HLS(m3u8)預期的那樣降低。播放m3u8播放列表時,AVPlayer會自動調整嗎?

看來,如果我直接使用AVPlayer,沒有AVPlayerViewController,我可能需要自己管理視頻流的質量嗎?我的理解是,如果我有一個M3U8,那麼這些事情會自動完成,並根據網絡條件/設備等使用最好的質量?

到目前爲止,如果AVPlayer按原樣使用,加載時間似乎相同,如果不比m3u8稍差。

爲了更好地理解發生了什麼,我一直在嘗試一些事情。

1),而這樣做一直在努力減少加載時間,我寧願做一點不僅僅是降低它一路當不上wfifi:

self.player?.currentItem?.preferredPeakBitRate = 1 

這似乎給我一個漂亮的低質量的視頻,但加載非常快。我還沒有弄清楚如何檢測正在使用的實際比特率(因爲設置這個值顯着改善了加載時間,我將假設AVPlayer不會自行處理調整)。

2)此外,還沒有與(導致無限的微調,甚至與preferredPeakBitRate設置爲1)如果幸運的話:

self.player.automaticallyWaitsToMinimizeStalling = false 

3)我打開使用第三方庫,可以處理這發現了一種叫做VKVideoPlayer的東西,可能會做一些這樣的事情?

謝謝

回答

1

它現在可能在iOS8及以上。

繼蘋果的documentation複製:

所需的極限,在比特每秒,對網絡帶寬的消耗 此項目。 SWIFT:VAR preferredPeakBitRate:雙 的Objective-C:@property(非原子)雙preferredPeakBitRate

設置preferredPeakBitRate爲非零,表明玩家 應該嘗試項目的播放限制爲比特率,單位爲每 位第二。

如果無法降低網絡帶寬消耗以滿足 preferredPeakBitRate,將盡可能減少網絡帶寬消耗,而 將繼續播放該項目。

+1

嗨,是的,雖然我已經使用這個變量,我仍然不確定如何獲得比特率值(所以檢查真正的比特率實際上是什麼)。 – JasonAddFour