字幕總是慢半拍?讓 FFsubsync 自己聽音軌把時間對回來
摘要
開源的字幕對時工具:從影片音軌裡找出有人說話的片段,再和字幕出現的時間比對,算出該平移多少;連影格率不一致造成的漂移也能一併修正。
推薦- 軟體名稱
- FFsubsync
- 版本
- 0.5.1
- 收費
- 免費
- 開源
- 開源
- 作業系統
- WindowsmacOSLinux
- 更新時間
- 2026-10-06 18:16
字幕比台詞快半句,問題出在版本
從網路上抓下來的字幕,幾乎不會跟手上的影片來自同一版。有的是給院線拷貝做的,有的是給光碟做的,有的對應串流版本,每一版開頭都塞著長度不同的片頭、前情提要或一段靜默。於是就成了熟悉的那種窘境:台詞還沒出口,字幕已經先跑出來兩三秒;或者反過來,一路落後同樣的距離,整部片都歪著。
想手動修,就得打開編輯器、先整體挪一段、聽一遍、再挪一次;遇到轉場又把時間軸推走的地方,還得一行一行往下追。兩個小時的片子,這是一個晚上的苦工,而且不保證收得乾淨。FFsubsync 就是為這件差事而寫:把影片和字幕一起交給它,它自己算出文字該移動多少。專案以寬鬆的開源許可釋出,個人使用不收費;截至 2026-09 仍在維護,現行版本 0.5.1 於 2026-07 推出。
它的思路:聽有沒有聲音,不去讀字
對齊的方式跟語言完全無關,這也是它能在沒有任何人工標註的檔案上跑得動的原因。工具先對音軌做語音活動偵測,找出真的有人在說話的時段;再從字幕檔裡取出每一行出現的時間,得到另一組時段。手上於是有了兩串時間區間,一串來自聲音,一串來自文字。

接著把兩串區間放到頻域裡互相比對:轉換之後找出讓兩者重疊得最好的位移量,再換算回秒數。整個過程不比對任何一個字,所以中文、英文、日文字幕都一視同仁,也不需要事先標記什麼。對於最常見的那種整份偏早或偏晚,通常第一次就能對準。
不只平移,還會處理影格率造成的漂移
另一種錯位根本不是固定偏移。一份照著每秒 23.976 格製作的母版做的字幕,拿到每秒 25 格的版本上播,開頭還算準,結尾卻差了好幾分鐘——誤差會隨片長一分一分累積。這種情況把整份字幕平移多少都沒用,因為無論挑哪個數值,都只能對上一端。
FFsubsync 會推斷參考時間與輸入時間之間的比例,據此重新縮放整份文字,把漂移攤掉,而不是推到一頭。遇到難纏的情況,它還備有其他的搜尋策略,包括黃金分割搜尋。常見字幕格式都能讀能寫,較新的版本加入對線上播放字幕格式 WebVTT 的支援,也能拿藍光碟的 PGS 圖形字幕當作對齊參考,並自動偵測檔案編碼,讓亂碼不再變成另一件雜事。
主要是命令列工具,瀏覽器裡也能用
FFsubsync 的本體是一支命令列程式,透過套件管理器安裝。它要靠音視訊處理工具把音軌從容器裡抽出來,Windows、macOS 與 Linux 都能跑,官方另外提供容器映像,方便直接放到伺服器上。
不想裝任何東西的人,官方也準備了瀏覽器版:打開那個站,把影片與字幕拖進去,同步就在本機完成,適合幾個月才需要一次的人。基本用法之外,它還能拿另一份字幕當對齊參考;手上完全沒有可用參考字幕時,也可以搭配語音轉寫工具湊出一個。
誰用得上,以及它的邊界
最典型的使用者是追劇、看電影時習慣另外抓字幕的人,老是遇到對不上的版本,通常一行指令就解決。想整理本機影片庫的人可以再進一步,把工具塞進腳本裡,讓整個資料夾自己跑完。
邊界也該講清楚:FFsubsync 處理的是時間,別的它不管。如果文字本身漏行、翻譯錯得離譜或根本填錯,時間對得再準,字幕還是錯的,那得另外想辦法。工具免費、原始碼公開,最合理的起手式是先拿手邊已經有的檔案試一次,走瀏覽器版或在本機敲一行指令都行。