0
A
回答
1
由於網絡條件在甚至中等長度的視頻的持續時間內可能會發生相當大的變化,因此很難確保在開始之前通過嘗試下載足夠的緩衝區來緩衝視頻。
保證它的唯一方法就是下載幾乎所有的視頻,即使如此,如果網絡變得非常緩慢,您可能仍會在最後緩衝。
嘗試獲得高質量體驗的常用方法是使用自適應比特率蒸汽。
要使用此功能,您需要在服務器上創建視頻的多個不同比特率版本,並按時間將每個視頻分成多個區塊。 10秒大塊。
然後,客戶端通過塊請求視頻塊,並進行一些正常緩衝,並根據網絡條件選擇要求下一個塊的比特率。
所以如果網絡好,用戶將獲得高分辨率的視頻體驗,如果它不好,分辨率將下降。只要有很好的比特率版本,就可以避免緩衝,除非網絡非常糟糕。
您可以在YouTube上看到YouTube,Netflix等使用的這種技術 - 如果您查看可以隨身攜帶的設置並強制它選擇一種特定的比特率大小並查看效果(如果您選擇高一個你可能會看到你描述的緩衝問題,除非你在一個非常好的互聯網連接上)。
該方法還允許通過從較低帶寬開始快速啓動視頻,然後再加速到較高視頻,再一次視頻被緩衝。
您還可以看到的比特率的步驟一個漂亮的圖形視圖,並通過右鍵單擊視頻,然後選擇「詳細統計」在YouTube上的緩衝區 - 它提供了這樣一個觀點:
如果您真的想在開始播放之前播放緩衝區的大小,那麼您可能需要修改播放器本身或創建自己的播放器。
在網絡播放器領域,HTML5播放器現在通常使用媒體源擴展(MSE),如果您願意,它可以讓您控制緩衝區。 MSE本質上是一種將緩衝區與HTML5視頻src關聯的機制,而不是通常的文件或URL。然後,您可以編寫自己想要的JavaScript來填充緩衝區。一個很好的介紹是在這裏(跳到下到MSE部分):
相關問題
- 1. MPMusicPlayerController緩衝/預加載
- 2. Android應用程序開發中的預加載或預緩衝區.mp4視頻
- 3. 有沒有使用JavaScript預加載視頻的方法?
- 4. 我如何緩存/預先加載Angular2 webapp的所有圖像?
- 5. 使用VideoView緩衝視頻
- 6. 如何在Android中播放/緩衝視頻只有幾分鐘?
- 7. 當視頻緩衝區下一幀顯示加載圖像
- 8. 文件流沒有緩衝,但部分流緩衝
- 9. 如何加載部分視圖內容並處理先前的部分視圖?
- 10. 緩衝YouTube視頻
- 11. 緩衝視頻導致頁面加載緩慢
- 12. 使用Node.js中其他緩衝區的一部分創建新緩衝區
- 13. jQuery ajax沒有預先加載圖像
- 14. hls.js - 如何增加預加載的緩衝區大小
- 15. HTML 5視頻,流媒體/緩衝僅限長視頻的特定部分
- 16. html5視頻預加載
- 17. iOS:AVPlayer視頻預加載
- 18. 緩衝的YouTube視頻
- 19. 如何預先加載我的網站和其他網頁中的所有視頻?
- 20. 如何使用laravel預先加載
- 21. 播放沒有緩衝區的音頻
- 22. 將視頻文件加載到C++中的緩衝區中
- 23. 如何讓Chrome僅加載HTML5視頻標籤的部分視頻?
- 24. 如何在VB/WPF項目中預先加載用於mediaelement的視頻文件
- 25. 加載音頻緩衝區並使用音頻標籤播放
- 26. HTML5視頻,如何檢測視頻已完全緩衝?
- 27. 何時忽略HTML5視頻預加載?
- 28. 減少視頻緩衝
- 29. HTML5視頻currentTime和緩衝
- 30. iPhone視頻緩衝區
你有任何想法如何,這些傢伙[fiveminute.gs(http://www.fiveminutes.gs/)做過了嗎?,他們預先加載了一部分視頻作爲加載屏幕,所以不存在緩衝問題。 –
加載屏幕只是一個圖像 - 當您進入該網站時,視頻開始。您可以通過觀看瀏覽器工具的網絡標籤並查看何時請求mp4文件來查看。如果你有足夠糟糕的連接,它仍然會失速(我可以看到這一點)。他們在Vimeo上託管它,並使用Vimeo CDN,這將爲他們提供非常好的用戶體驗。 – Mick
我注意到他們正在加載一個巨大的文件,而他們顯示加載屏幕[Here](http://www.fiveminutes.gs/scripts/db.js),這是什麼?看起來像base64格式的mp3文件。 –