← 返回部落格

如何在 Chrome 中錄製 Bilibili 直播

Bilibili 直播採用 FLV 而非 HLS,主播下線後立即消失。本文教你如何錄製成可用的 MP4。

Bilibili (B站) 是中國最大的直播和影片社群,每晚有數百萬場直播,從虛擬主播到電競賽事再到學習直播應有盡有。如同 TikTok 直播,Bilibili 直播在主播結束後就會消失 — 大多數直播都沒有自動錄製的 VOD 檔案。如果你想保存某場直播,在直播進行時錄製是唯一的選擇。

Bilibili 直播與 Twitch 或 Kick 不同之處在於:Bilibili 透過 FLV (Flash Video) 和 HTTP-FLV 傳送直播,而非 HLS。這是 Flash 年代的遺留物,Bilibili 保留它是為了降低延遲。大多數基於瀏覽器的錄製工具都是為 HLS 設計的,遇上 FLV 就無法處理。本文將說明這些技術細節及如何順利錄製。

為什麼 Bilibili 使用 FLV 而非 HLS

技術原因是:FLV/HTTP-FLV 的端到端延遲約為 1 秒。而 HLS 採用分段傳輸,播放器需要緩衝 2-3 個分段,通常有 6-10 秒 的延遲。對於互動式直播(問答、遊戲、音樂表演),1 秒的延遲能讓觀眾互動感受實時;6-10 秒則會讓人覺得有延遲。

Bilibili 也提供 HLS 備用方案(.m3u8)供舊設備和 iOS Safari 網頁播放器使用,但主要傳輸方式仍是 FLV。如果你的錄製工具只支援 HLS,可能會完全無法錄製直播,或者退而求其次只能使用低品質的 m3u8。

你需要什麼

  • Chrome 或任何基於 Chromium 的瀏覽器(Edge、Brave、Opera)
  • 一個支援 HLS 和 FLV 的錄製工具。Video Downloader One-for-All 支援兩種格式。
  • Bilibili 帳號(大多數直播無須登入,僅限於會員或艦隊等級內容才需要)

需要「船員」(Bilibili 的訂閱等級)的直播需要你登入且有有效訂閱。存取控制發生在取得流網址的層級;如果瀏覽器能播放,錄製工具就能捕捉。

逐步教學

1. 開啟直播

進入直播網址 — 通常是 live.bilibili.com/<room-id>。不要混淆直播網址和影片網址(bilibili.com/video/BV...)。影片是已錄製且存在的 VOD — 用正常的方式下載

如果房間顯示未開播,就沒有東西可錄。直播只在主播正在進行時才存在。

2. 選擇畫質

Bilibili 播放器的畫質選單有多個選項,如原畫、蓝光(通常 4M+ 碼率)、超清(1080p)、高清(720p)、流暢(480p)。

開始錄製前請切換至原畫 — 如果你有足夠頻寬的話。自動選擇可能在錄製過程中降至較低的畫質,這樣你就只能錄到降低的品質了。

注意:並非每個 Bilibili 主播都以原畫品質直播。較小的頻道最高可能只有 1080p 甚至 720p。無論如何,下拉選單中的最高選項就是原始畫質。

3. 開始錄製

點擊擴充功能圖示。彈出視窗應該會顯示 Bilibili 直播和 LIVE 標籤。

點擊錄製。錄製工具將取得 FLV 串流並在分段到達時寫入磁碟。CPU 使用率約 1% — 沒有轉碼,只是位元複製。

4. 停止或讓它自動完成

開啟彈出視窗,完成後點擊停止。MP4(或根據錄製工具不同可能是 FLV)就會完成。

如果主播先結束直播,連線會中斷,錄製工具會自動完成檔案。

Bilibili 特定的眉角

地區限制

某些 Bilibili 直播有地區限制(僅在中國大陸、或排除中國大陸)。存取檢查發生在網址返還給瀏覽器之前。如果你能在你的地區播放該直播,就能錄製。如果播不了,沒有任何錄製工具能幫你。

直播中切換畫質會造成不連貫

如果在錄製時改變畫質下拉選單,Bilibili 會將你切換至新的串流網址。簡單的錄製工具會失去連線並停止;好的錄製工具會偵測到網址變更並繼續。

直接在開始錄製前選定畫質,然後別去碰它。

長時間直播和 FLV 檔案大小

FLV 對時間長度沒有上限,但很長的檔案(>4 小時)在某些設定中可能會遇到檔案系統限制。如果你正在錄製超過 6 小時的直播(24 小時馬拉松、長時間學習直播),錄製工具應該會自動在比如 4 小時的邊界處分割成多個檔案。

如果你的錄製工具沒有自動分割功能,產生的檔案可能在超過一定大小後無法播放。如果你計畫錄製長時間直播,先用短時間錄製測試一下。

彈幕 (弹幕) 無法被錄製

Bilibili 的招牌功能 — 在螢幕上飛過的彈幕 — 是單獨的 WebSocket 資料流。串流錄製工具會捕捉影片和音訊。彈幕是在用戶端疊加的,不在 FLV 串流中。

如果你想保留彈幕體驗:

  • 使用專門的 Bilibili 錄製工具如 BililiveRecorder(開源,同時捕捉串流和彈幕)
  • 或者接受錄製只含有影片和音訊

對於大多數「我想保存這場直播」的使用案例,影片和音訊就夠了。

直播前的「等待室」有時會阻礙錄製

Bilibili 會在實際直播開始前顯示等待中的畫面。某些錄製工具可能誤以為等待室就是直播內容,錄製 30 秒的靜態畫面然後停止。等到主播的實際影片出現在播放器中再點擊錄製。

FLV 與 HLS 對輸出檔案的影響

Bilibili 直播是 FLV 串流。你保存的檔案會是:

  • .flv 如果你的錄製工具保存原始容器 — VLC、MPV、ffplay 和大多數現代播放器都能通用。但不是所有的預設 Mac/Windows 播放器都支援 FLV(QuickTime 無法開啟;Windows Media Player 也無法)。
  • .mp4 如果你的錄製工具將 FLV 重新封裝為 MP4 — 相同的影片和音訊資料,只是重新打包。在 QuickTime / Windows Media Player 支援的地方都能播放。

如果你計畫與使用 QuickTime 或 Windows Media Player 的朋友分享錄製內容,優先選擇輸出 MP4 的錄製工具。如果你只在 VLC 中觀看,FLV 就很好,也能省去重新封裝的時間。

結論

Bilibili 直播是 FLV 串流,不是 HLS。大多數「Twitch 錄製工具」類型的工具在它們身上不會有效果。使用支援 FLV 的錄製工具(Video Downloader One-for-All 或類似工具),工作流程與 Twitch/Kick 相同:開啟房間、固定原畫品質、點擊錄製、點擊停止。輸出是以直播原始品質完整錄製的清晰影片和音訊檔案,完全不受 Bilibili 稍後是否存檔的影響(通常不會存檔)。