Shaka Player 是一個用於自適應媒體的開源 JavaScript 程式庫。它在瀏覽器中播放自適應媒體格式(例如 DASH、HLS 和 MSS),無需使用外掛程式或 Flash。相反,Shaka Player 使用開放網路標準 MediaSource Extensions 和 Encrypted Media Extensions。
Shaka Player 也支援使用 IndexedDB 離線儲存和播放媒體。內容可以儲存在任何瀏覽器上。許可證的儲存取決於瀏覽器支援。
我們的主要目標是使用現代瀏覽器技術盡可能輕鬆地傳輸自適應比特率視訊和音訊。我們努力保持該程式庫輕量、簡單且不受第三方依賴。建置和部署所需的一切都在原始程式碼中。
有關接下來的詳細信息,請參閱我們的開發路線圖。
有關 Shaka Player 維護的分支的最新列表,請參閱maintained-branches.md。
瀏覽器 | 視窗 | 蘋果 | Linux | 安卓 | iOS >= 9 | iOS >= 17.1 | iPadOS >= 13 | Chrome作業系統 | 其他 |
---|---|---|---|---|---|---|---|---|---|
鉻合金1 | 是 | 是 | 是 | 是 | 本國的 | 本國的 | 本國的 | 是 | - |
火狐瀏覽器 | 是 | 是 | 是 | 未經測試⁵ | 本國的 | 本國的 | 本國的 | - | - |
邊緣1 | 是 | - | - | - | - | - | - | - | - |
邊緣鉻 | 是 | 是 | 是 | 未經測試⁵ | 本國的 | 本國的 | 本國的 | - | - |
IE | 氮 | - | - | - | - | - | - | - | - |
野生動物園1 | - | 是 | - | - | 本國的 | 是 | 是 | - | - |
歌劇¶ | 是 | 是 | 是 | 未經測試⁵ | 本國的 | - | - | - | - |
Chromecast²。 | - | - | - | - | - | - | - | - | 是 |
蒂森電視³ | - | - | - | - | - | - | - | - | 是 |
網路作業系統⁶ | - | - | - | - | - | - | - | - | 是 |
海信⁷ | - | - | - | - | - | - | - | - | 是 |
Xbox One | - | - | - | - | - | - | - | - | 是 |
遊戲機 4⁷ | - | - | - | - | - | - | - | - | 是 |
遊戲機 5⁷ | - | - | - | - | - | - | - | - | 是 |
筆記:
iOS 與 iPadOS 的注意事項:
src
元素設定為清單/媒體。所以我們依賴支援清單的瀏覽器。格式 | 視訊點播 | 居住 | 事件 | 正在進行的錄音 |
---|---|---|---|---|
短跑 | 是 | 是 | - | 是 |
HLS | 是 | 是 | 是 | - |
MSS | 是 | - | - | - |
您也可以建立清單解析器外掛程式來支援自訂清單格式。
支援的 DASH 功能:
不支援 DASH 功能:
支援的 HLS 功能:
不支援的 HLS 功能:
有關 HLS 格式和這些標籤含義的詳細信息,請參閱 https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis
#EXT-X-STREAM-INF:<attribute-list>
<URI>
#EXT-X-MEDIA:<attribute-list>
#EXT-X-IMAGE-STREAM-INF:<attribute-list>
#EXT-XI-FRAME-STREAM-INF:<attribute-list>
#EXT-X-SESSION-DATA:<attribute-list>
#EXT-X-SESSION-KEY:<attribute-list>
EME 金鑰系統選擇與預先載入#EXT-X-START:TIME-OFFSET=<n>
#EXT-X-CONTENT-STEERING:<attribute-list>
內容引導#EXT-X-DEFINE:<attribute-list>
變數替換( NAME,VALUE,QUERYPARAM
屬性) #EXTM3U
#EXTINF:<duration>,[<title>]
#EXT-X-PLAYLIST-TYPE:<type
#EXT-X-ENDLIST
#EXT-X-MEDIA-SEQUENCE=<n>
#EXT-X-TARGETDURATION=<n>
#EXT-X-DISCONTINUITY
#EXT-X-DISCONTINUITY-SEQUENCE=<n>
#EXT-X-BYTERANGE=<n>[@<o>]
#EXT-X-MAP:<attribute-list>
#EXT-X-KEY:<attribute-list>
( KEYFORMAT="identity",METHOD=SAMPLE-AES
只支援 MP4 片段)#EXT-X-PROGRAM-DATE-TIME:<attribute-list>
#EXT-X-START:TIME-OFFSET=<n>
#EXT-X-SERVER-CONTROL:<attribute-list>
#EXT-X-PART-INF:PART-TARGET=<n>
#EXT-X-PART:<attribute-list>
#EXT-X-SKIP:<attribute-list>
Delta 播放列表#EXT-X-DATERANGE:<attribute-list>
元數據#EXT-X-DEFINE:<attribute-list>
變數匯入和替換( NAME,VALUE,IMPORT,QUERYPARAM
屬性)#EXT-X-GAP
#EXT-X-PRELOAD-HINT:<attribute-list>
#EXT-X-BITRATE
僅在支援媒體來源擴充 SourceBuffer 的瀏覽器上支援
MPEG-5 Part2 LCEVC 解碼支援(解碼由 lcevc_dec.js 提供,必須單獨包含)
整合文檔:文檔
有關 MPEG-5 第 2 部分 LCEVC 的更多信息
支援的 MSS 功能:
不支援的 MSS 功能:
瀏覽器 | 寬藤 | 遊戲就緒 | 公平競賽 | 清除密鑰⁶ |
---|---|---|---|---|
鉻合金1 | 是 | - | - | 是 |
火狐² | 是 | - | - | 是 |
邊緣3 | - | 是 | - | - |
邊緣鉻 | 是 | 是 | - | 是 |
狩獵之旅 | - | - | 是 | - |
歌劇 | 是 | - | - | 是 |
Chromecast | 是 | 是 | - | 是 |
蒂森電視 | 是 | 是 | - | 是 |
網路作業系統⁷ | 未經測試⁷ | 未經測試⁷ | - | 未經測試⁷ |
海信⁷ | 未經測試⁷ | 未經測試⁷ | - | 未經測試⁷ |
Xbox One | - | 是 | - | - |
遊戲機 4⁷ | - | 未經測試⁷ | - | 未經測試⁷ |
遊戲機 5⁷ | - | 未經測試⁷ | - | 未經測試⁷ |
其他 DRM 系統如果具有互通性並且符合 EME 規範,則應該可以開箱即用。
筆記:
顯現 | 寬藤 | 遊戲就緒 | 公平競賽 | 明鍵 |
---|---|---|---|---|
短跑 | 是 | 是 | - | 是 |
HLS | 是 | 是 | Y 1 | - |
MSS | - | 是 | - | - |
筆記:
streaming.useNativeHlsForFairPlay
配置值。 沙卡播放器支援:
預設情況下,字幕由瀏覽器呈現。應用程式可以為客戶渲染建立文字顯示插件,以超越瀏覽器支援的屬性。
沙卡播放器支援:
沙卡播放器支援:
沙卡播放器支援:
Shaka Player 支援 DASH 和 HLS 中的內容引導 (v1)。
支援的內容引導功能:
不支援內容引導功能:
Shaka Player 在以下情況下支援 VR:
prji
和hfov
框支援的 VR 模式:
筆記:
如需一般協助以及在提交任何錯誤之前,請閱讀常見問題。
如果您有改進或修復,我們很樂意收到您的貢獻。請閱讀 CONTRIBUTING.md,以了解有關我們希望貢獻者遵循的流程的更多資訊。
Shaka 團隊沒有足夠的資源和經驗來提供將 Shaka Player 與特定框架整合的指導和支持,但我們的一些用戶已經成功地做到了這一點,並創建了教程來幫助其他初學者。
Shaka + ReactJS 函式庫
Shaka + ReactJS 整合:
Shaka + Next.js 整合:
Shaka + Vue.js 整合:
Shaka + Nuxt.js 整合:
Shaka + video.js 整合:
Shaka + Angular 整合:
如果您已經發布了 Shaka Integration 代碼/教程,請隨時提交 PR 將其添加到此列表中,我們將很樂意批准!