HLS 還是 MP4?
使用新的 Brightcove 播放程式時,我們建議您選擇或建立同時具有 HLS 和 MP4 轉譯的內嵌描述檔,以達到最多的裝置和瀏覽器數量。此表格顯示播放程式如何在執行階段決定在特定瀏覽器上播放哪些轉譯。
瀏覽器類型 | 預設使用的播放技術 |
---|---|
桌面瀏覽器 34+、桌面火狐 42 以上、邊緣和 Chrome 34+ | HTML 為基礎的 HLS (使用 MSE) |
桌面 (macOS) 野生動物園、行動裝置 (iOS) 野生動物園 | 原生 HLS (由瀏覽器實作) |
較舊的瀏覽器和瀏覽器 | 以快閃記憶體為基礎的 HLS;需要快閃 10.3+ (如果停用快閃記憶體,將會回復至 MP4) |
智能視窗 11 | HTML 為基礎的 HLS (使用 MSE) |
HLS 和 DASH 再現選擇
HLS和短跑視頻分為多個部分。這些持續時間通常約為 10 秒,但可以更長或更短。如果已知頻寬和解析度,播放器將會根據這些準則選擇轉譯。如果分辨率或帶寬未知(例如,使用display:none
),播放器將從最接近.5 MB / s(相當於4000 kbs)的再現開始。在區段邊界上,它會切換到以下文字和影像中描述的較高或較低的轉譯。
根據可用的頻寬和編碼,HLS 和 DASH 都試圖確保最高品質的觀看體驗,同時考慮播放器的大小。這並不一定意味著使用可用的最高位元率轉譯。例如,如果播放器是 300 像素的 150 像素,這將是一個浪費帶寬下載 4K 流。
預設情況下,播放程式會嘗試載入小於最近偵測到的區段頻寬的最高位元率變體,但有一個條件:如果有多個變體尺寸大於目前播放器大小,它只會切換大於目前播放器大小的一個大小。
播放期間,播放器會根據下列演算法切換至更高或較低的節目。這個算法的輸入是:
- 可用頻寬
- 播放器尺寸
高階演算法概觀
- 移除比測量頻寬高於位元速率的所有轉譯。
- 依解析度 (水平行數) 高至低排序剩餘的節目。
- 指向最接近播放器尺寸的那個。
- 選擇比這個高一個的一個。
這個過程如下所示:
- 每當下載新區段時,下載位元速率會根據區段的大小和下載所花費的時間來計算:
- 所有比新測量比位元率高的轉譯都會被篩選掉:
- 任何比目前玩家尺寸大的轉譯都會被篩選掉:
- 因為您的播放器的一個像素太小,所以我們將重新加入下一個最高解析度。剩下的最高比特率轉譯是被使用的那個:
如果根據上述過濾條件,不可接受轉譯,則會使用主播放清單中列出的第一個編碼。
如果您希望播放器使用不同的優先順序,可以完全取代轉譯選擇邏輯。例如,您可以隨時依解析度選擇最合適的轉譯,即使這可能意味著在播放期間會有更多停機。請參閱以下文檔player.hls.selectPlaylist更多細節。
MP4格式選擇
如果在行動裝置上執行並播放 MP4 (根據上述規則),播放器會選擇具有最接近 .5 MB/s 的位元速率的 MP4。如果使用桌上型電腦或筆記型電腦裝置,則會選擇最接近 3 MB/s 的裝置。
音軌選擇
清單根據選擇的視頻軌道確定要加載的音軌。
範例
播放列表-1.m3u8
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="stereo",LANGUAGE="en",NAME="English",DEFAULT=YES,AUTOSELECT=YES,URI="audio/stereo/en/128kbit.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="stereo",LANGUAGE="dubbing",NAME="Dubbing",DEFAULT=NO,AUTOSELECT=YES,URI="audio/stereo/none/128kbit.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="surround",LANGUAGE="en",NAME="English",DEFAULT=YES,AUTOSELECT=YES,URI="audio/surround/en/320kbit.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="surround",LANGUAGE="dubbing",NAME="Dubbing",DEFAULT=NO,AUTOSELECT=YES,URI="audio/stereo/none/128kbit.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Deutsch",DEFAULT=NO,AUTOSELECT=YES,FORCED=NO,LANGUAGE="de",URI="subtitles_de.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="en",URI="subtitles_en.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Espanol",DEFAULT=NO,AUTOSELECT=YES,FORCED=NO,LANGUAGE="es",URI="subtitles_es.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Français",DEFAULT=NO,AUTOSELECT=YES,FORCED=NO,LANGUAGE="fr",URI="subtitles_fr.m3u8"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=258157,CODECS="avc1.4d400d,mp4a.40.2",AUDIO="stereo",RESOLUTION=422x180,SUBTITLES="subs"
video/250kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=520929,CODECS="avc1.4d4015,mp4a.40.2",AUDIO="stereo",RESOLUTION=638x272,SUBTITLES="subs"
video/500kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=831270,CODECS="avc1.4d4015,mp4a.40.2",AUDIO="stereo",RESOLUTION=638x272,SUBTITLES="subs"
video/800kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1144430,CODECS="avc1.4d401f,mp4a.40.2",AUDIO="surround",RESOLUTION=958x408,SUBTITLES="subs"
video/1100kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1558322,CODECS="avc1.4d401f,mp4a.40.2",AUDIO="surround",RESOLUTION=1277x554,SUBTITLES="subs"
video/1500kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=4149264,CODECS="avc1.4d4028,mp4a.40.2",AUDIO="surround",RESOLUTION=1921x818,SUBTITLES="subs"
video/4000kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=6214307,CODECS="avc1.4d4028,mp4a.40.2",AUDIO="surround",RESOLUTION=1921x818,SUBTITLES="subs"
video/6000kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=10285391,CODECS="avc1.4d4033,mp4a.40.2",AUDIO="surround",RESOLUTION=4096x1744,SUBTITLES="subs"
video/10000kbit.m3u8
在上面的示例中,有兩個音頻組,立體聲和環繞 .還有 8 種比特率的 6 種視頻分辨率:
- 3 個較低的比特率使用立體聲音頻組
- 5 個更高的比特率使用環繞音頻組
這兩個音頻組有兩個具有不同語言和名稱的流。當它存在時,它會在播放器的菜單中顯示為備用音軌。
注意事項
-
HLS 不允許在解復用音頻場景中調整音頻流。因此,如果您有不同的音頻組或替代音頻(如上例所示),則無法指定立體聲或環繞音軌的多種質量再現。
但是,如果播放列表是純音頻的,如果音頻是通過常規提供的,則可以這樣做
EXT-X-STREAM-INF
標籤。 - 對於 DASH,您可以擁有自適應音頻,但我們目前不支持對其進行自適應,除非它是純音頻清單。我們選擇與視頻再現相關聯的單一再現。這是我們發現的第一個音頻再現。