LAPLACE Chatterbox 內建「自動畫質」與「自動追幀」兩項播放器輔助功能,可協助觀眾在進入直播間時自動切換至最高畫質,並透過即時微調播放速度讓緩衝始終保持在指定的目標延遲附近,藉此將觀看延遲縮到最短
兩項功能均以事件驅動實作,未啟用時幾乎沒有任何執行開銷;同時支援一般視訊串流與 僅音訊模式
追幀與畫質切換的核心演算法參考自 c-basalt 的 Bilibili 直播自动追帧
使用者腳本(GPL-3.0),LAPLACE Chatterbox
在此基礎上改為事件驅動實作,不再依賴定時輪詢
自動畫質
特性
- 在進入直播間、原生播放器初始化完成的瞬間呼叫一次
livePlayer.switchQuality(),將畫質切換至目前房間可用的最高等級 - 透過監聽
#live-player video的掛載事件觸發,而非輪詢,未開播或不存在的房間不會產生額外開銷 - 僅在頁面載入時執行一次,之後使用者手動選擇的畫質(例如切回 720P 省流量)會完整保留
- 自動偵測
qualityCandidates中可用的最大qn值,自動適應嗶哩嗶哩未來新增的更高畫質等級(例如 HBR 高位元率qn=30000) - 啟用 僅音訊模式 時自動略過,避免與僅音訊的
stopPlayback守護機制互相衝突
使用方式
- 在彈幕助手面板的「設定」標籤頁中,找到「播放器追幀」區域
- 勾選「進入直播間時自動切換至最高畫質」
- 下次進入任一直播間時自動生效,無需手動操作
注意事項
- 切換至最高畫質會增加頻寬消耗,行動網路或流量受限的情境請視需要啟用
- 切換發生在頁面載入後的極短時間內,可能會看到畫質從預設等級瞬間跳到最高等級
- 僅在頁面載入階段執行一次,若直播途中切換房間或手動改回低畫質,本次工作階段內不會再次自動切換
自動追幀
直播延遲主要來自播放器緩衝區的累積。自動追幀會即時監測緩衝區長度,在緩衝過多時小幅提高播放速度(最高 1.3 倍),在緩衝過少時降低播放速度(最低 0.1 倍)以避免卡頓,讓緩衝長度穩定在使用者設定的「目標延遲」附近
特性
- 事件驅動:監聽播放器原生的
progress/waiting/timeupdate/playing事件觸發調整,沒有setInterval輪詢,未啟用或頁面位於背景時幾乎不消耗任何資源 - 背景不調速:偵測到
document.hidden時暫停所有播放速度調整,切回前景後自動重新同步 - 加速 / 減速階梯:參考 c-basalt 上游的實測數值
- 加速階梯(緩衝長度超出目標的秒數 → 速度倍率):
[+2s, 1.3×]/[+1s, 1.2×]/[+0s, 1.1×] - 減速階梯(緩衝長度絕對值 → 速度倍率):
[0.2s, 0.1×]/[0.3s, 0.3×]/[0.6s, 0.6×]
- 加速階梯(緩衝長度超出目標的秒數 → 速度倍率):
- 支援僅音訊:自動偵測目前是否處於 僅音訊模式,對隱藏的
<audio>元素同樣有效,邏輯完全一致 - 自動重新綁定:嗶哩嗶哩在畫質切換、僅音訊開關、串流網址更新等情境會替換
<video>/<audio>元素,本功能透過MutationObserver自動重新掛載監聽 - 即時狀態面板:啟用後會在設定面板中顯示「目前延遲」「目標延遲」「目前播放速度」,並以顏色提示目前的緩衝健康度(綠色 = 健康,黃色 = 正在追趕,紅色 = 即將卡頓)
使用方式
- 在彈幕助手面板的「設定」標籤頁中,找到「播放器追幀」區域
- 勾選「啟用自動追幀」
- 在「目標延遲」輸入框中設定希望維持的緩衝長度(秒),預設為 1.7 秒
- 啟用後下方會出現即時狀態面板,方便隨時觀察追幀效果
選項說明
| 選項 | 說明 | 預設值 |
|---|---|---|
| 啟用自動追幀 | 主開關,關閉後停止所有播放速度調整 | 關 |
| 目標延遲(秒) | 希望維持的緩衝長度,緩衝超過此值會加速、低於此值會減速;可輸入範圍 0.3 ~ 10 秒 | 1.7 |
目標延遲過低(例如低於 1 秒)在網路波動時容易頻繁卡頓,過高則失去追幀的意義。建議維持預設值,或在 1.5 ~ 2 秒的區間內微調
狀態面板
啟用自動追幀後,設定面板中會顯示以下即時資料:
| 欄位 | 意義 |
|---|---|
| 目前延遲 | 目前緩衝區中已載入但尚未播放的內容長度(秒) |
| 目標延遲 | 使用者設定的目標緩衝長度(秒) |
| 差 | 目前延遲與目標延遲的差值,正值表示緩衝過多正在追趕,負值表示緩衝過少正在減速 |
| 目前播放速度 | 播放器目前的實際倍速,正常值為 1.00× |
顏色提示:
- 🟢 綠色:緩衝在目標值附近(差值約 ±0.5 秒),運作健康
- 🟡 黃色:緩衝明顯高於目標(差值 > 1 秒),正以更高倍速追趕
- 🔴 紅色:緩衝低於 0.2 秒,即將卡頓;或播放速度低於 1.0× 正在減速
注意事項
- 自動追幀是透過修改
playbackRate實作,可能導致音訊音調出現極輕微的變化,絕大多數情境下不易察覺 - 若直播間的網路極不穩定,建議適度提高目標延遲,以減少觸發減速的頻率
最後更新於 2026年9月19日