AUTOMOVIE 操作手冊

🚴 影片 + FIT 檔 → 自動生成 AI 旁白與字幕

單機版工具:把騎乘的第一人稱行車紀錄影片,配上 Garmin / Wahoo 匯出的 FIT 檔, 自動生成有畫面根據、有數據支撐的熱血旁白配音、動態字幕、心率功率驅動的節奏背景音。 全程在你自己的電腦上跑,影片不上傳、不複製,只讀取原檔路徑。

Windows 11 單機執行,無雲端上傳 GPU / CPU 自動切換 可自帶 AI(Claude Code / Codex / Antigravity)

成品範例

這支影片就是用 AUTOMOVIE 產生的:原始素材是一段第一人稱行車紀錄影片加上 FIT 檔, 影片裡的旁白配音、動態字幕、節奏背景音全部由程式自動生成, 內容根據截圖畫面與騎乘數據撰寫,再經人工逐句校對修改。

🎙 旁白:edge-tts 語音合成 💬 字幕:依畫面與數據生成 🥁 背景音:心率+功率驅動 ✍ 人工校對後輸出

在 YouTube 上觀看:https://youtu.be/SApBGdFJeu8

🧪互動示範:直接操作看看

不用安裝、不用準備素材,直接在瀏覽器裡把整個流程走一遍: 開啟互動示範 →

資料來自一趟真實的 2025 雪巴阿里山 爬坡賽——4 段影片、13 個 AI 分析出的高光時段、 15 句旁白、233 秒逐秒遙測。按鈕都能按,會重播當初真實跑出來的結果 (不會真的呼叫 AI 或轉檔)。

⏱ 四段一鍵對時 🤖 連拍場景分析 ✨ 旁白生成 📟 儀表盤疊在畫面上 🎛 儀表盤編輯器可拖曳
最值得看的一步 走到「4 旁白 / 字幕」後點任何一句旁白:上方會同時顯示該秒的截圖、 AI 對那張圖的描述、以及疊在畫面上的真實功率/心率/時間。 這是校對「旁白講的跟畫面對不對得起來」的方式。

i這是什麼/不是什麼

✔ 是這樣的
  • 單機工具,影片、FIT 檔留在你電腦上原本的位置,程式只記路徑、不複製
  • 旁白內容根據真實截圖畫面與 FIT 數據寫成,不是憑空生成
  • AI 部分是「帶你自己的」——你自己裝好 Claude Code / Antigravity CLI 等 指令列工具,程式呼叫它,額度算你自己的
  • 不需要 AI 也能用:退回數據規則生成(只播數字,沒有畫面劇情)
  • 支援同一趟騎乘的多段影片自動接成一支(相機分段錄影也沒問題)
  • 可疊加儀表盤(速度/功率/心率/迴轉數/高度/坡度/時間), 位置大小顏色都可自訂並存成配置,跟旁白字幕一次轉檔完成
  • 可設定多個 AI 工具依序備援,一個額度用完自動換下一個
✘ 不是這樣的
  • 不是雲端服務,沒有帳號、沒有訂閱
  • 不會把你的影片上傳到任何地方(TTS 配音例外,需連微軟的語音服務)
  • 不保證 AI 寫的每一句都 100% 正確——程式有自動查核機制會標出可疑句子, 但最終還是要你人工確認

1系統需求

項目需求
作業系統Windows 11(Windows 10 未測試)
Python已內建可攜式版本,免另外安裝
ffmpeg已內建(含 GPU 編碼版本),免另外安裝
網路語音合成(edge-tts)需要連線;若有設定 AI CLI,AI 那部分也需要網路
GPU(選用)NVIDIA 顯卡若驅動支援 NVENC 會自動使用,加速轉檔;沒有就自動退回 CPU
AI CLI(選用)Claude Code 或 Antigravity CLI 擇一,用來做「截圖場景辨識」與「旁白撰寫」;不裝也能用,但旁白會比較平淡
關於 GPU / CPU 生成影片畫面的「解析度」下拉選單旁邊會顯示目前偵測到的編碼方式(自動/GPU/CPU)。 NVENC 需要驅動版本配合,程式啟動時會實際測試一次是否可用,不是單看版本號猜測。

2快速開始

整體流程只有五步,畫面上由上到下依序編號:

AUTOMOVIE 完整介面總覽
介面總覽:由上而下依序是「專案」「設定」「提示詞範本」, 接著才是編號 1~5 的主要工作流程。
  1. 選擇素材 — 貼上影片路徑與 FIT 路徑(或用「選擇…」跳出檔案總管挑選), 同一趟騎乘有多段影片可以「+ 新增影片片段」逐段加入,按「建立專案」
  2. 對時 — 讓程式知道「影片的第幾秒」對應「FIT 檔裡的哪個真實時間」, 原始相機檔可以一鍵用檔案本身的錄影時間對時,不用看畫面
  3. 分析截圖 — 抽取畫面、用 AI 描述每張截圖的騎乘情境; 可以手動設定間隔,也可以交給 FIT 數據自動找出高光時段
  4. 旁白 / 字幕 — 按「重新產生旁白」讓 AI 根據截圖說明+數據寫腳本, 逐句檢查修改
  5. 生成影片 — 選解析度、要不要節奏背景音與儀表盤配置, 按「生成影片」,完成後直接在頁面上播放

3Step 1:選擇素材

專案下拉選單
頁面最上方是「專案」下拉選單,之後每次要接續之前做過的專案, 從這裡選就好,不用重新選路徑。

在「1 選擇素材」區塊貼上影片FIT 的絕對路徑,或直接按旁邊的 「選擇…」跳出 Windows 原生選檔視窗(這個視窗是在你自己電腦上開的,不會有任何檔案被傳出去)。

填好路徑並建立專案後的狀態
建立專案後會顯示影片的解析度、長度、FIT 紀錄筆數; 下方「參考附件」可以額外加圖檔/網頁連結/文件檔(見下方說明)。
為什麼是貼路徑,不是上傳檔案? 這是單機工具,影片動輒好幾 GB,透過瀏覽器上傳再複製一份完全沒必要, 也拖慢速度。程式只記錄路徑,實際讀取都是直接對原始檔案操作。

多影片組合(同一趟騎乘的多段錄影)

行車紀錄器有時會自動分段錄影,或某段路你分開錄了好幾支—— 按「+ 新增影片片段」可以依序加入多支影片,它們會依照你加入的順序 自動接在同一條 FIT 時間軸上,最後一次轉檔輸出成一支完整影片, 不需要先用其他軟體剪接、也不會二次轉檔。

四段影片片段的素材選擇畫面,各自有獨立路徑欄位
每個片段各自一列,可各自「選擇…」或用 ✕ 移除; FIT 只需要一份,涵蓋所有片段的時間範圍即可。 上圖是一趟被相機自動切成四段的實際專案。
片段規格要一致 多段合併需要相同解析度與幀率(同一台相機同一次設定通常沒問題)。 規格不一致的話,建立專案時就會直接報錯告訴你哪一段不對, 不會等轉到一半才失敗。
明明沒直拍,卻說某一段是直的? 相機的方位感測器在按下錄影的瞬間判斷錯誤時,會在畫面完全正常的橫幅影片上 蓋一個「播放時轉 90 度」的標記,那一段就會被當成直拍而擋下來。 程式分得出這兩種情況:如果所有片段存下來的畫面一樣大、只有顯示方向不同, 就會指名是哪一段、標記幾度,並讓你一鍵「忽略旋轉標記,照原樣使用」。 真正直拍的片段存的就是直幅畫面,尺寸不同,仍舊照規格檢查擋下。
掃描資料夾會跳過讀不到的檔案 記憶卡上常留著錄製沒成功的 0 byte 空檔,它們副檔名照樣是 .MP4、 靠檔名還能湊出一個時間,看起來就像正常片段。掃描時會實際確認每個檔案打不打得開, 打不開的直接不列入,並在下方標「已略過 N 個無法讀取的檔案」。
片段之間沒錄到的空檔怎麼算? 完全不影響——每一段各自對時之後,程式會用真實時間戳記把 FIT 數據 正確對應到每一段裡,段落之間沒拍到的時間會自動跳過, 儀表盤上的時鐘、心率、功率等數據到了下一段會正確接續,不會有錯位。

參考附件(選填)

按「+ 新增附件」可以加入三種類型的參考資料,內容會被整理成文字, 在後面「產生旁白」時提供給 AI 參考(例如排行榜截圖裡的名次、對手名字):

類型用途限制
圖檔排行榜截圖、路線圖等;AI 會讀圖描述內容 需要先設定好 AI CLI
網頁連結公開的活動介紹頁、部落格文章 需要登入才看得到的頁面(例如 Strava 活動頁)抓不到, 會被自動偵測並擋下,請改用截圖
文件檔.txt / .md / .csv 直接讀;.docx 也支援

每一筆附件旁邊都有「測試讀取」按鈕,加進去當下就能確認抓不抓得到內容,不用等到跑到一半才發現。

4設定 AI(選填,但強烈建議)

這是整個工具「有沒有靈魂」的關鍵設定。AI CLI 負責兩件事:看截圖描述畫面內容、 根據截圖說明與數據寫旁白。不設定也能用,但旁白會退回純數據播報(沒有畫面劇情)。

AI 指令鏈設定,由上而下依序嘗試多個工具
按「🔍 自動偵測我電腦上裝了什麼」掃描已安裝的工具,再按「全部依序帶入」 一鍵建立整條指令鏈;▲▼ 可調整先後順序。

AI 指令鏈:一個掛了自動換下一個

可以設定多個 AI 工具,由上而下依序嘗試。第一個連不上、額度用完、 或發生任何錯誤,會自動換下一個,全部失敗才報錯(錯誤訊息會列出每個工具各自的原因)。 成功的那個會被記住,之後直接從它開始,不會每次都重試掛掉的那個—— 這點很重要,一次連拍分析可能呼叫數十次,每次都先等一個壞掉的工具逾時會多花好幾分鐘。

目前程式認得並且已經實測驗證過能正常運作的工具:

工具安裝方式備註
Claude Code npm install -g @anthropic-ai/claude-code 用你目前登入的 Claude 額度,不用另外申請
Codex CLI npm install -g @openai/codex 最快:圖片用 -i 直接附加給模型,不是叫它自己開檔。 實測 6 張連拍 10.2 秒,Claude Code 同樣 6 張要 22.6 秒
Antigravity CLI winget install Google.AntigravityCLI Google 出的終端 AI 代理工具, 完整安裝與認證步驟看這裡 →
Gemini CLI 自行安裝並登入 指令範本尚未實測驗證,填入後請按「測試」確認
這格到底要填什麼? 「AI 指令模板」就是「怎麼呼叫你電腦上已裝好的工具」的完整指令。{prompt} 執行時會被換成程式要問的問題,{image} 會被換成一張截圖的實際路徑。 例如填 claude -p "{prompt} 圖片路徑: {image}" --allowedTools Read, 實際執行時就會變成 claude -p "描述這張圖...圖片路徑: C:\...\f_001.jpg" --allowedTools Read。 金鑰、登入額度都是你自己的 CLI 在管,本程式不會儲存任何金鑰,只存這串指令文字本身。
變數作用
{prompt}程式要問的問題文字
{image} 截圖路徑。單獨當成一個參數時會展開成多個檔案, 給 -i a.jpg b.jpg 這種多圖參數用; 純文字呼叫(寫旁白)時會連同前面的旗標一起移除,不會留下沒有值的 -i
{out} 暫存檔路徑。填了就從該檔讀答案而不是讀螢幕輸出—— 適合會在畫面印出工作階段訊息、token 統計的工具(例如 Codex)

5Step 2:對時

對時區塊,用檔案時間一鍵對時的結果
對時完成後會顯示這個時間窗口涵蓋的距離、均速、心率、功率統計, 用來確認對時抓對了範圍。

程式需要知道「影片第幾秒」對應「FIT 檔裡的哪個真實時間戳記」, 才能把心率、功率、速度這些數據跟畫面對上。只需要抓一個對應點, 剩下的時間軸就會自動算出來。三種方式由簡到繁:

常見誤會 輸入框裡的「時:分:秒 (例如 08:57:11)」是灰色的格式提示,不是已經幫你填好的值。 手動輸入時一定要照畫面上實際看到的時間填,欄位空著按確認會被擋下並提示重填。
多片段:一鍵全部對時 相機自動分段的原始檔,每一段自己都帶錄影時間,所以不必一段一段點—— 對時區的「⏱ 全部片段一鍵對時」會依序把每段都對好。 (若要逐段處理,切換「對時片段」下拉選單即可;手動或 AI 對完一段後 會自動跳到下一個還沒對時的片段。全部對完才能進下一步。)

6Step 3:分析截圖

這一步做兩件事:抽取畫面(純本機運算,不花 AI 額度)跟 AI 場景辨識(每張截圖真的會呼叫一次 AI,會花額度跟時間)。

截圖間隔設定區,含透過 FIT 自動分析場景的選項
「透過 FIT 自動分析場景」勾選後截圖間隔改由數據決定, 「每批連拍張數」在兩種模式下都通用。

兩種找截圖時機的方式

每批連拍張數(兩種模式都能用)

設 1 是傳統的「單張看圖說故事」模式;設大於 1(例如 5)時, 連續的幾張截圖會整批一次送給 AI,改問「這幾秒發生了什麼變化」—— 誰從哪一側超車、跟前車距離拉近或拉開、隊形怎麼變化, 這種跨張比較單張截圖天生看不出來,連拍多張後描述會明顯更生動、更連貫。 自動分析場景模式下,每個高光時段就是連拍「每批連拍張數」張、每秒一張。

展開的截圖說明清單,連拍分析產生的動態描述
連拍分析產生的描述會寫在整批的每一張截圖上(清單裡看到重複是正常的), 展開後每一列都有縮圖跟可編輯文字,AI 講錯了直接在這裡改。
換過間隔、換過批次大小,都不會浪費之前的辨識結果 截圖說明是用「時間點」存的快取。已經辨識過的時間點永遠不會重花一次 AI 額度; 「🗑 清除辨識重新分析」按鈕只清描述文字,已經抽好的截圖檔案會保留、不重抽, 省下重新解碼影片的時間。

7提示詞範本庫

提示詞範本庫編輯區
可以編輯「截圖說明」跟「旁白生成」兩種範本, 存成多組、跨專案重複使用;內建預設鎖住不能改,按「另存新範本」複製一份修改。

如果你發現旁白的風格、用詞、規則想要調整(例如想要更活潑、想要固定的收尾格式、 想要主角用特定名字稱呼),這裡就是動手的地方。範本存在本機的 SQLite 資料庫 (app/data.db),每個專案可以各自選用不同範本。

範本作用
截圖說明範本決定 AI 怎麼描述每一張截圖的畫面內容
旁白生成範本決定 AI 怎麼把「截圖說明+騎乘數據+附件+補充背景」 寫成最終的旁白台詞,可用變數如 {"{"}duration{"}"} {"{"}table{"}"} {"{"}scenes{"}"} {"{"}context{"}"}
格式錯誤會直接被擋下 旁白生成範本存檔時,程式會先檢查裡面用到的變數是不是都合法(避免打錯字), 格式有誤會在存檔當下就告訴你哪裡錯了,不會等到跑一半才爆炸。

8Step 4:旁白 / 字幕編輯

旁白編輯區,點選某一列後上方顯示對應畫面預覽
點選任何一句旁白,上方會顯示該時間點最接近的截圖畫面、AI 對那張圖的說明, 並把儀表盤直接畫在畫面上——數值取自該秒真實的 FIT 遙測, 可以直接核對旁白講的功率/心率/時間對不對。
長片是分段寫的 影片會切成每段約 10 分鐘,各自呼叫一次 AI,最後再用一次很小的呼叫補上 開場與收尾。原因是輸出量:一支 103 分鐘的片子在 20 秒密度下等於要 AI 一口氣吐出 310 句,實測三個 CLI 全部撞上逾時。分段之後每次只要約 30 句, 而且 AI 每次只看一個時間窗、不用消化整趟的場景描述,內容也比較貼。 工作日誌會逐段回報「第 3/10 段 1240~1860s:28 句」。
AI 失敗時不會拿數據播報充數 某一段失敗,就只有那個時段安靜,並在日誌明講是哪個區間; 全部失敗就直接告訴你「沒有產生旁白」而不是給你一份看起來有、實際不能用的稿子。 (之前的作法是退回規則法再用同一句型把空白填滿, 103 分鐘的片子會得到 261 句裡有 254 句是「時速X,心率Y,功率Z瓦,持續推進」。) 真的需要純數據版本,請在分析截圖那步取消勾選 AI,那是明確的選擇。
校對畫面與旁白的訣竅 預覽區同時給你三件事:截圖、AI 對那張圖的描述、以及該秒的真實數據。 旁白如果說「功率兩百多瓦硬撐」,就看儀表盤上的功率對不對; 說「超越左側車手」,就看截圖與描述有沒有這件事。三者對得起來才算過關。
補充背景怎麼寫比較有效 可以直接寫:主角要怎麼稱呼、今天的天氣心情、想強調的劇情轉折、 收尾要不要固定格式(例如「Strava 路段完成,平均功率/心率/時間」)。 這欄位會被完整送進旁白生成的提示詞裡,寫得越具體,AI 產出的內容越貼近你要的。
主角名字沒生效?先看工作日誌用了哪份範本 「在範本庫裡選一份」跟「這個專案要用哪一份」是兩件事。若範本裡寫了主角名字 但旁白仍自稱「他」,多半是這個專案當下套用的其實是內建預設。 產生旁白時工作日誌會明寫 AI 生成旁白…(旁白範本:正式版),看那一行就知道實際用了哪一份。

9Step 5:生成影片

生成影片控制項與完成後的網頁內建播放器
轉檔完成後直接在頁面上播放,不用下載。 「📁 開啟檔案所在資料夾」會直接跳出檔案總管並選中該檔案。
選項說明
解析度原始(依來源)/1080p/720p
編碼自動(偵測到可用 GPU 就用 GPU)/強制 GPU/強制 CPU
旁白聲音14 個中文聲音(edge-tts,全部免費),與 Step 4 的選擇連動
節奏背景音心率+功率驅動的節奏底層音效,音量可調
片尾停留(秒)最後一個畫面多停幾秒,讓收尾的旁白唸得完
旁白提前(秒) 整份旁白與字幕一起往前挪,預設 0.5。因為講話需要時間, 在該秒才開口的話,關鍵字唸出來時畫面往往已經過去了; 提前一點可以讓描述正好落在那個畫面上。字幕與語音永遠一起移動, 不會互相錯開

生成過程中有真實的進度條(不是假動畫,是解析 ffmpeg 實際回報的編碼進度算出來的), 右側有「⏹ 中止」按鈕,按下去約 1 秒內就會真的停止轉檔行程並清掉半成品檔案。

解碼也交給顯示卡,不只編碼 「用 GPU」一般只指編碼,但長片真正卡住的是解碼:在 i7-4790 上軟體解碼 HEVC 只有 3 倍即時,而 nvenc 編碼每分鐘成品只花 1.9 秒——GPU 一直在等 CPU 餵資料。 現在每一處讀影片的地方都走硬體解碼,實測轉檔快 2.7 倍、抽圖快 11 倍、 成品驗證從 3.7 倍即時提升到 9.4 倍,而輸出畫面完全相同(PSNR 53.5 dB)。 編碼選「強制 CPU」時會連硬解一起關掉,維持「完全不動用 GPU」的語意。 遇到顯示卡不支援的格式,ffmpeg 會自動退回軟體解碼,不會失敗。
工作管理員看不到 GPU 在動? 左側那個 GPU 百分比看的是 3D 引擎,影片編碼的負載記在 Video Encode 這個計數器上,預設不顯示,所以純轉檔工作在那裡看起來永遠是 0%。 要確認的話看工作日誌那行 encoder: h264_nvenc decode: GPU(cuda), 那才是實際採用的路徑。

📟 儀表盤(從 FIT 數據疊加到畫面)

勾選「儀表盤」後,主流程只需要選一個配置並填標題文字即可。 要調整每個數值的位置、大小、顏色,按「🎛 開啟編輯器」會在新分頁打開專用編輯器。

儀表盤編輯器:左側即時預覽,右側每個項目的位置大小顏色
左邊是即時預覽,右邊是每個項目的開關/X/Y/大小/顏色。 調整後畫面立刻更新,不用等轉檔。
位置與大小都是畫面比例 X/Y 用百分比、大小用倍率,所以同一份配置在 720p、1080p、4K 都適用, 不必為不同解析度各存一份。坡度是 FIT 沒有的欄位,程式用高度變化反推 (25 公尺平滑窗),避免氣壓式高度計逐秒微幅跳動造成坡度數字閃爍。
不用再靠 DJI Studio 二次轉檔 儀表盤跟旁白字幕是同一份 ASS 疊加圖層,在同一次 ffmpeg 轉檔裡一起燒錄進畫面, 不會有先套用儀表盤再匯出、又匯入剪輯軟體轉一次檔的重複轉檔耗時與畫質損失。 多影片組合的專案,儀表盤時鐘也會正確對應到每一段各自的真實時間。

原始碼下載

整套程式的原始碼可以直接下載: AUTOMOVIE_source.zip(約 8 MB)。 裡面是 FastAPI 後端、網頁前端、這份手冊,以及開發過程的驗證腳本。

沒有包進去、需要自己準備的:

項目說明
ffmpeg 建議 8.0.1。8.1.x 需要 NVENC API 13.1(顯卡驅動 610 以上), 8.0.1 只要 550 以上,比較不容易踩到驅動版本問題
字型 字幕用 Microsoft JhengHei,Windows 內建即可。 刻意不附字型檔(授權問題),程式也刻意不指定字型目錄, 交給系統解析反而最快
Python 套件 pip install fastapi uvicorn fitparse edge-tts
不含任何個人資料 這包裡沒有影片、沒有 FIT 騎乘資料、沒有專案檔,也沒有任何金鑰或帳號設定—— AI 的登入額度本來就都在你自己的 CLI 裡,本程式從不儲存金鑰。 解壓後 cd app && python main.py 即可啟動。

?常見問題

影片會被複製或上傳嗎?

不會。程式只記錄你貼的路徑,讀取都是直接對原始檔案操作。 唯一會離開這台電腦的資料是:語音合成(連微軟的 edge-tts 服務)、 以及你自己設定的 AI CLI 呼叫(連你自己 CLI 對應的服務)。

沒有 AI CLI 可以用嗎?

可以。分析截圖那步把「使用 AI 辨識畫面內容」取消勾選, 旁白生成就會退回純數據規則生成(照時速/心率/功率的變化播報), 不會有畫面劇情內容,但功能完全能跑。

轉檔跑到一半可以中止嗎?半成品會留在硬碟上嗎?

可以中止,每個工作階段(分析截圖/產生旁白/生成影片)進度條旁邊都有中止鍵。 中止轉檔時,半成品的 mp4(打不開的壞檔)會被自動刪除,不會留下垃圾檔案。

旁白內容不準確、憑空編造細節怎麼辦?

三層防護:①提示詞明定「不可編造,時間點誤差不超過 2 秒、方向細節要照抄」; ②程式會自動把單張截圖無法判斷的「超車/被超車」描述先過濾掉, 不讓這種本來就不可靠的資訊進到旁白生成的素材裡; ③旁白編輯區會把「畫面查無根據」的句子標橘色提醒你複查。 即使如此,AI 仍可能出錯,最終請以人工複查為準。

網頁連結附件抓不到內容?

常見原因是那個網址需要登入才看得到內容(例如 Strava 活動詳細頁)。 程式會偵測登入頁的特徵字樣並主動擋下,避免把「請登入」這種無意義文字 誤當成真實資料餵給 AI。遇到這種情況請改用截圖,存成圖檔附件。

換了截圖間隔要重新辨識嗎?

不用。截圖說明用時間點存快取,跟間隔脫鉤——不管你怎麼調整間隔, 已經辨識過的時間點永遠不會重花一次 AI 額度。

轉檔很久還停在 100%,是當掉了嗎?

沒有。編碼跑完之後還有一步「驗證輸出檔(完整解碼一次)」—— 只看檔案存在、大小正常並不能證明它是好的,顯示卡驅動打嗝或硬碟寫滿, 都可能留下檔頭正常、檔尾卻解不開的 mp4,那種問題往往等到你把進度條拉到最後才發現。 所以程式會把成品完整解碼一遍確認。這一步現在也走硬體解碼, 103 分鐘的片子約 11 分鐘(原本軟解要 28 分鐘)。日誌會顯示這一行。

轉檔失敗,說「檔名或副檔名太長」?

那不是檔案不見,是 ffmpeg 的命令列超過 Windows 的 32,767 字元上限: 旁白句數多的時候,每一句都要當成獨立輸入傳給 ffmpeg(一支 103 分鐘、 418 句的片子會產生 1,296 個輸入)。現在濾鏡圖改寫進檔案、旁白改用相對路徑, 同一支片子從 159,920 字元降到 18,973,正常情況不會再遇到。 萬一真的超標,程式會在送出前就擋下來,明白告訴你有幾個輸入檔、 以及把「旁白最大空白」調大可以減少句數。

多段影片一定要解析度、幀率都一樣嗎?

是的,這是 ffmpeg 直接串接畫面流所必須的限制。 同一台相機同一次設定拍出來的通常沒問題;不一致的話建立專案時就會被擋下, 並告訴你哪一段的規格對不上,不會等轉檔轉到一半才失敗。

「透過 FIT 自動分析場景」會不會漏掉重要畫面?

它只看得到功率/心率/迴轉數/速度的數據波動, 抓不到「純視覺事件」——例如漂亮的風景、路牌地標、單純停等紅燈 (這些時候數據通常很平穩,不會被判定為高光)。 如果這些畫面對你很重要,建議改用手動間隔模式,或間隔調小一點。

轉檔跑到一半網頁斷線/不小心關掉了怎麼辦?

工作是在背景跑的,跟網頁分開。短暫斷線時進度條會顯示「連線中斷,自動重試中」 並持續嘗試最多五分鐘,恢復後自己接回去;重新整理或重開網頁、再載入同一個專案, 也會自動接回還在執行的工作,完成時照樣往下開下一個步驟。

旁白把「心率」唸成「心帥」?

「率」有兩個讀音,語音引擎在「心率」會挑錯。程式會在送去合成之前 把它換成同音的寫法,字幕仍然顯示正確的「心率」——看到的跟聽到的都對。 語音快取是以「實際唸出的文字」為鍵,所以修正後舊的錯誤發音不會被沿用。

GPU 沒有被使用?

程式啟動時會實際測試一次 NVENC 能不能用(不是只看驅動版本號), 設定頁最上方會顯示目前偵測到的 ffmpeg 路徑跟 GPU 狀態。 若你的顯卡驅動版本跟 ffmpeg 要求的 NVENC API 版本不匹配, 會自動退回 CPU 編碼,仍然能正常轉檔,只是速度較慢。 解碼是分開探測的,同樣是實際跑一次才算數。

先確認你看的是不是對的地方:工作管理員左側的 GPU 百分比是 3D 引擎,影片編碼記在 Video Encode 計數器上、預設不顯示, 所以轉檔時看起來常常是 0%。以工作日誌那行 encoder: h264_nvenc decode: GPU(cuda) 為準。

內顯幫得上忙嗎?要看世代。Intel 內顯要 Skylake 之後才有 HEVC 硬體解碼;在 i7-4790 的 HD 4600 上實測,走內顯反而比軟體解碼還慢 (2 倍即時 vs 6.6 倍),因為它根本沒有 HEVC 解碼器,等於軟解再多一層開銷。 有獨顯的話就讓獨顯做。