← 部落格

錄製影片只有畫面凍住、聲音卻正常時的解決法(把 VFR 轉成固定 FPS)

把只有畫面凍住、聲音正常的錄製影片修成固定 FPS 的方法
Photo · Pexels
重點摘要
  • 聲音正常卻只有畫面凍住的現象,原因是影片以可變幀率(VFR)錄製了。
  • 因為編輯器與部分播放器預期的是固定幀率(CFR),所以在 VFR 檔案上畫面會凍住或不同步。
  • 在錄製階段強制固定幀率並固定擷取 FPS,就能事先防止問題。
  • 已經會凍住的檔案,用 HandBrake 等做 CFR 重新編碼就能救回來。

播放錄製的影片時,聲音好端端地出來,畫面卻在特定區段凍住,或越往後影片與聲音越來越偏差,那原因幾乎只有一個。因為影片以可變幀率(VFR, Variable Frame Rate)錄製了。解決的關鍵是強制固定幀率(CFR, Constant Frame Rate)並把擷取 FPS 固定在一個值。這篇文章依序整理在錄製階段就擋掉的方法,以及把已經會凍住的檔案救回來的方法。

為什麼聲音正常、卻只有畫面凍住

聲音通常以固定速度流動。相對地,畫面會依電腦狀況讓每秒幀數變動。遊戲變吃重的瞬間,60fps 掉到 54fps 再升回來,就是這種情況。像這樣幀間隔參差不齊的檔案,叫做可變幀率(VFR)。

錄製檔案裡寫著每一幀應該在何時顯示的時間戳。VFR 檔案的這個間隔不一致,但編輯器或部分播放器是假設幀間隔永遠相同來播放。於是在空著的區段抓住前一幀原樣不動,畫面看起來像凍住了;而聲音以自己的速度繼續流動,越來越偏差。

確認方法:把會凍住的影片也用其他播放器(VLC 等)開開看。如果在某個播放器凍住、在另一個播放器正常,那檔案不是壞掉,很可能是 VFR 相容問題。

步驟 1:在錄製程式裡強制固定幀率(CFR)

最確實的解決不是去修會凍住的檔案,而是一開始就以固定幀率錄製。以 OBS Studio 為例,可以在設定裡強制固定幀率。

OBS Studio 的 FPS 與幀設定畫面
OBS Studio · Wikimedia Commons (GPL, OBS Project)
  • 在 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 產生新檔案後,確認凍結是否消失。
如果已經在用編輯器,把 VFR 影片放上 Premiere Pro 或 DaVinci Resolve 的時間軸後不剪,就直接輸出,結果也會以固定幀率輸出。這是不需另外工具就整理凍結的快速繞道法。

編輯器相容:放上去之前先湊成 CFR

Premiere Pro、DaVinci Resolve、GOM Mix 這類編輯器是以固定幀率為前提運作。把 VFR 原始檔直接放上去,從做剪接的那一刻起,聲音與畫面就開始偏差。所以在剪輯前用上面的步驟 1 到 3 把固定幀率湊好最安全。像特戰英豪絕地求生這種瞬間幀數變動大的遊戲,這項作業的效果越大。

從一開始就少凍結的錄製:DOR

如果每次都要手動湊上面這套流程很麻煩,用錄製階段就以固定幀率為預設的工具會比較輕鬆。DOR 以固定幀率錄製,畫面凍結與不同步較少。把錄製的檔案直接放上編輯器,往往不需另外轉換,畫面與聲音就對得上。

DOR 的固定幀率錄製畫面
DOR 以固定幀率錄製,畫面凍結較少

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

FAQ

常見問題

聲音正常、只有畫面凍住,是檔案壞掉了嗎?

大多不是壞掉。是以可變幀率(VFR)錄製的影片,在預期固定幀率的播放器或編輯器看起來凍住的相容問題。在 VLC 這類其他播放器能正常播放的話,檔案就是好的,做固定幀率(CFR)重新編碼就能解決。

VFR 和 CFR 到底是什麼?

VFR(可變幀率)是每秒幀數依狀況變動的方式,CFR(固定幀率)是幀間隔永遠一致的方式。聲音一致地流動,畫面幀間隔卻參差不齊,兩者就會偏差而產生凍結與同步問題。所以湊成 CFR 是解決的關鍵。

在 OBS 怎麼強制固定幀率?

把輸出模式改成進階後,在錄製分頁的自訂 muxer 設定欄輸入 force-cfr=1 就行。一併在視訊設定把 FPS 固定成 60 這樣的整數值,會更穩定。

已經會凍住的影片也能救回來嗎?

可以救回來。把檔案載入免費工具 HandBrake,指定 Framerate 後用 Constant Framerate(固定幀率)重新編碼就行。如果在用編輯器,放上時間軸不剪、就直接輸出,也會以固定幀率輸出。

用 DOR 錄製,這個問題會比較少發生嗎?

會。因為 DOR 以固定幀率錄製,所以畫面凍結與不同步較少。把錄製的檔案直接放上編輯器,往往不需另外轉換、畫面與聲音就對得上,每次手動做 CFR 轉換的需要也會減少。

Games

錄製這些遊戲

繼續閱讀

相關文章

立即開始使用 DOR

安裝後只要啟動遊戲,精彩瞬間就會自動累積成剪輯