免費剪短影音實測:FFmpeg加Whisper做黃字關鍵字字幕、推鏡、音效
直接回答
不用付費剪輯軟體,用FFmpeg加OpenAI Whisper加opencc就能把口播影片剪成有黃字關鍵字字幕、畫中畫標卡、分段推鏡、多樣音效的reels。我在一台Windows HP i7筆電上全程CPU跑完,產出一支60秒成品,字幕用whisper turbo模型轉繁中,所有視覺樣式靠一個Python生成的ASS字幕檔控制。
最近想幫自己的口播影片加上那種短影音常見的效果:講到重點時關鍵字自動變黃放大、畫面角落浮出小標卡、講到關鍵句時鏡頭推近、轉場來一聲音效。剪映跟CapCut都做得到,但我不想付費、更不想每支影片都手動一格格拉。
我決定用全免費的開源工具加上AI判斷,看能不能把整套做成可重複的規格。結果是可以,而且全程在一台Windows HP筆電的i7 CPU上跑完,產出一支60秒成品。
—
先講為什麼不直接用付費軟體。付費軟體適合單支精修,但每支都要從頭手動操作一次。我要的是另一件事:把樣式變成一組固定參數,以後同類影片丟進去就自動套,關鍵字變黃、字幕位置、推鏡幅度全都一致。這件事手動軟體做不到,程式化的流程才做得到。
免費剪短影音工具鏈:FFmpeg負責剪接濾鏡燒字音效,OpenAI Whisper turbo模型負責語音轉字幕且CPU可跑,opencc的s2twp模式負責簡轉繁台灣用字。零授權費零雲端費。
—
工具鏈只有三個:FFmpeg做剪接、濾鏡、燒字、合成音效,OpenAI Whisper把語音轉成字幕,opencc把whisper常出的簡體字轉成繁體。所有視覺樣式不是靠軟體介面拉,是靠一個Python腳本生成的ASS字幕檔控制。ASS格式支援行內覆寫標籤,可以精準控制每個字的顏色、大小、位置、動畫。
流程分三步:第一步氣口切除加轉字幕,第二步生成ASS字幕檔,第三步合成推鏡、燒字、音效。
—
真正花時間的不是跑程式,是踩坑。這裡記4個實際踩到的:
第一個,畫面卡頓。氣口切除如果用FFmpeg的stream-copy直接把片段拼接,因為切點沒有落在關鍵影格上,播放時畫面會停頓一下。解法是改用select濾鏡做單次重編碼,雖然慢一點,但畫面順。
第二個,字幕開頭多一個逗號。這個bug卡了好幾版才抓到根因:ASS的Dialogue行如果欄位數沒跟Format宣告對齊,多出來的空欄位逗號會被併進字幕文字,變成每句開頭都多一個逗號。把欄位對齊就好了。
第三個,大字被切掉。字放大之後,中文因為沒有空格不會自動折行,一長句就從畫面兩邊被切掉。解法是自己算每句寬度,太長的句子自動縮小字級到剛好塞滿一行,強制單行、絕不換兩行也不切邊。
第四個,中文變豆腐方塊。ASS字幕如果沒指定中文字型,燒出來全是空方框。指定Microsoft JhengHei就正常了。
—
踩完坑之後,我把樣式調成一組定稿規格:字幕用Microsoft JhengHei白字、細外框、無底框,大小預設120、長句自動縮到單行,位置距畫面底部40%,關鍵字自動變黃並放大到1.15倍。畫中畫小標卡在每段開頭從角落滑入。推鏡把重點段放大1.10倍對準主體、其他段保持原景,段落切換時就像重新運鏡。音效用ffmpeg lavfi合成四種不同聲音,轉場用whoosh、chirp、ding,關鍵字出現用pop點綴,不會單調。
字幕定稿規格:Microsoft JhengHei白字無底框,預設字級120、長句自動縮到單行不切邊,位置距底部40%,關鍵字變黃放大1.15倍。推鏡把重點段scale放大1.10倍加crop、分段單次重編碼避免卡頓。
—
最後產出的是一支1080乘1920直式、60秒的成品,libx264編碼、crf 24、aac音訊,檔案約20MB,可以直接發社群。
這件事真正的收穫不是省下剪一支影片的時間。是這套流程一旦寫成固定規格,價值就從一次性變成可重複:下一支同類影片,只要告訴程式主題方向讓它抓關鍵字跟分段,其他全自動套上,而且每支的樣式都一致。付費軟體給你的是這一次剪得快,程式化給你的是每一次都不用重來。