播放錄製的影片時,聲音好端端地出來,畫面卻在特定區段凍住,或越往後影片與聲音越來越偏差,那原因幾乎只有一個。因為影片以可變幀率(VFR, Variable Frame Rate)錄製了。解決的關鍵是強制固定幀率(CFR, Constant Frame Rate)並把擷取 FPS 固定在一個值。這篇文章依序整理在錄製階段就擋掉的方法,以及把已經會凍住的檔案救回來的方法。
為什麼聲音正常、卻只有畫面凍住
聲音通常以固定速度流動。相對地,畫面會依電腦狀況讓每秒幀數變動。遊戲變吃重的瞬間,60fps 掉到 54fps 再升回來,就是這種情況。像這樣幀間隔參差不齊的檔案,叫做可變幀率(VFR)。
錄製檔案裡寫著每一幀應該在何時顯示的時間戳。VFR 檔案的這個間隔不一致,但編輯器或部分播放器是假設幀間隔永遠相同來播放。於是在空著的區段抓住前一幀原樣不動,畫面看起來像凍住了;而聲音以自己的速度繼續流動,越來越偏差。
步驟 1:在錄製程式裡強制固定幀率(CFR)
最確實的解決不是去修會凍住的檔案,而是一開始就以固定幀率錄製。以 OBS Studio 為例,可以在設定裡強制固定幀率。

- 在 OBS 設定 > 視訊把 FPS 固定成整數值(例如 60)。
- 在設定 > 輸出把輸出模式改成進階。
- 切到錄製分頁,找到自訂 muxer 設定欄。
- 在那個欄位輸入 force-cfr=1 來強制固定幀率。
- 套用後做短短的試錄,確認結果檔案不會凍住。
步驟 2:把擷取 FPS 固定在一個值
就算開了固定幀率選項,擷取本身如果晃動,效果也會打折。畫面擷取 FPS 與遊戲幀以不同速度移動時,錄製程式會填補或丟棄空幀,於是又產生凍結。
- 錄製 FPS 訂在遊戲能穩定維持的值。60fps 經常崩掉的話,降到 30fps 凍結會比較少。
- 把遊戲內幀數限制(例如 60)與錄製 FPS 設成相同的值。
- 用無邊框視窗模式取代全螢幕(獨佔)模式,擷取往往更穩定。
- 錄製中把背景吃重的程式關掉,減少幀數變動幅度。
步驟 3:救回已經會凍住的檔案(CFR 重新編碼)
如果已經錄好的影片會凍住,用免費工具 HandBrake 做固定幀率重新編碼就行。它的做法是在重新編碼的同時,把參差不齊的幀間隔重新鋪成一致。
- 把會凍住的原始檔案載入 HandBrake。
- 在 Video 分頁把 Framerate 指定為 60(或原始基準值)。
- 把下面的選項選成 Constant Framerate(固定幀率)。
- 按 Start Encode 產生新檔案後,確認凍結是否消失。
編輯器相容:放上去之前先湊成 CFR
Premiere Pro、DaVinci Resolve、GOM Mix 這類編輯器是以固定幀率為前提運作。把 VFR 原始檔直接放上去,從做剪接的那一刻起,聲音與畫面就開始偏差。所以在剪輯前用上面的步驟 1 到 3 把固定幀率湊好最安全。像特戰英豪或絕地求生這種瞬間幀數變動大的遊戲,這項作業的效果越大。
從一開始就少凍結的錄製:DOR
如果每次都要手動湊上面這套流程很麻煩,用錄製階段就以固定幀率為預設的工具會比較輕鬆。DOR 以固定幀率錄製,畫面凍結與不同步較少。把錄製的檔案直接放上編輯器,往往不需另外轉換,畫面與聲音就對得上。

總結來說關鍵有兩個。在錄製程式裡強制固定幀率(CFR),並把擷取 FPS 固定在遊戲撐得住的一個值。光是守住這兩點,聲音正常卻只有畫面凍住的現象大多就會消失。已經會凍住的檔案用 HandBrake 重新編碼或編輯器重新輸出救回就行。

