h5 video

video 想要更好的控制分段請求,需要前後端共同設置。前端可以藉助 video.js 這樣的庫,再其 7 版本之後已經集成對於流媒體視頻播放的支持(支持 HLS,DASH 等協議)。

“Media Source Extensions”(通常簡稱爲“ MSE”)是 W3C 的一種規範,當今大多數瀏覽器都在實現。它的創建是爲了直接使用 HTML 和 JavaScript 允許那些複雜的媒體使用案例。

當我們在 html 中放一個 video 標籤,瀏覽器會直接發起一個 Range: bytes=0- 的請求,向服務器請求從開始到結尾的完整文件,如果服務器不支持 Range Requests,響應碼爲 200,瀏覽器會正常按流式加載整個視頻文件; 如果服務器支持 Range Requests,響應碼爲 206,則瀏覽器會在接收到足夠字節(一般是比當前播放進度往後推20s)時結束掉請求,以節省網絡流量;當播放進度繼續往前,緩存不夠時,瀏覽器會發起一個新的 Range Requests 請求,請求的 Range 直接從緩存結尾的字節開始,只加載剩餘的部分文件;

mp4 不能流式加載。

dash flv 需要加載清單文件,該清單文件對應後端的分片視頻。dash flv 屬於流媒體協議。

緩衝播放——邊下邊播時,選擇開始播放的最佳時間點
當視頻越來越長或者網絡慢時,等待視頻全部下載完再播放也不是好的體驗,最好能邊下邊播,緩衝到流暢狀態就開始播放,那什麼時候播放纔是最佳時間點呢?在iOS中,canplaythrough事件就是這個最佳時間點,它是通過動態計算緩衝量和下載速度得出的視頻可以流暢播放的狀態反饋。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章