把一句寫下來的要求,變成一支帶字幕的成品 MP4
你有值得拿出來給人看的東西——新買的掃地機器人、儀表板上一鍵離家的按鈕、資源回收怎麼分類。但把它拍成一支能看的影片,永遠是那個沒發生的部分。Pi Agent 內建一整條影片生產線,加上一個驅動它的 Skill:你寫一句話,幾分鐘後就有一支帶旁白、燒好字幕的 MP4。這篇要講清楚這條線做什麼、不擅長什麼,以及怎麼跑一次。
想法很簡單。剪接才是那道牆。
對著鏡頭解釋一件事聽起來很簡單,直到你真的試了才知道。一邊操作介面一邊講話,得重來好幾次,接下來還有剪接、配音、上字幕。三分鐘的影片能吃掉一整個下午。
這個 add-on 已經內建了做這件事的工具: ffmpeg ,負責剪接, Playwright 搭配 Chromium ,負責錄瀏覽器畫面, edge-tts ,負責配音, rclone ,負責上傳。一個已安裝的 Skill 把它們串在一起——通常叫 pitch_video 或 pi-video,實際的 slug 依你安裝的版本而定(第 10 篇)。
你不是在剪片。你是在跟一個已經有全套機器的工坊描述一項工作。你真正要做的兩件事,是把要什麼講清楚,以及判斷做回來的東西夠不夠好。
六個階段,時間都花在哪
用之前值得先看一遍:等哪裡出問題的時候,你會想知道是哪個階段出的問題。
flowchart TD A["你的請求"] --> B["1 · 寫腳本
你接的 AI 供應商 · 30-60 秒"] B --> C["2 · 產生配音
edge-tts · 10-30 秒"] C --> D["3 · 錄製畫面
Playwright · 1-3 分鐘"] D --> E["4 · 對齊字幕
逐字時間戳記轉 SRT"] E --> F["5 · 剪接與燒錄
ffmpeg · 30 秒至 2 分鐘"] F --> G["6 · 上傳
rclone · 30 秒至 3 分鐘"]
- 階段 1 決定了後面所有事。 AI 把旁白拆成幾段、幫每段訂好時長、決定要展示什麼畫面。這裡建議用推理模型。
- 字幕能對得上,靠的是階段 4。 edge-tts 在配音的同時回報每個字的時間戳記,
SubMaker把這些時間戳記轉成 SRT 字幕檔,所以字幕是對照真實音檔對出來的,不是用猜的。
整體來說,一支 3 分鐘的影片通常需要 大約 5 到 10 分鐘 ,從你核准到出現在 Google Drive,實際時間看你的硬體、網路跟這個 Skill 而定。不管你有沒有盯著看,工作都會繼續跑。
那個大下載不是影片管線的錯
Pi Agent 本身只有幾十 MB。你第一次啟動這個 add-on 時,它會在背景抓大約 600-720 MB ——在 100 Mbps 的網路上大概一兩分鐘,用手機熱點會明顯感覺得到。這個範圍會因 Playwright 版本跟它的 pip 依賴而浮動,安裝成功之後就不會再發生。
兩個要澄清的地方。影片管線 不會 觸發這次下載;是 add-on 自己的 video-tools-init 程序在第一次啟動時觸發的。而且這不是整條管線所有的工具,只是「會落到資料磁區」的那一部分。
這是在把攝影棚裝修好,不是在拍片。設備是在你裝這間攝影棚的時候就到貨了,不管你有沒有拿起攝影機。目前沒有「純聊天模式」的開關能跳過它。
flowchart LR A["容器映像檔
約 300 MB"] --> B["ffmpeg + libass
Noto 字型 · rclone"] C["下載到 /data/pi-agent
600-720 MB,只有一次"] --> D["Chromium
500-600 MB"] C --> E["Python venv + playwright、
edge-tts、pyyaml、mutagen
40-60 MB"]
它擅長什麼,老實講清楚
它做得好的每一件事,都有一個共通點: 由解說驅動、而不是由表演驅動的短影片。畫面上不會有人出現。它喜歡的請求長這樣:
食譜示範、根據自己筆記寫的心得、行程預告,都適合這個形狀。燒進畫面的字幕在這裡很重要:群組裡的影片常常一開始是靜音播放的。
六個該換工具的地方
- 你本人上鏡。 Playwright 錄的是瀏覽器;它拍不了你。改用手機拍。
- 背景音樂。 這裡只有旁白。事後用 CapCut、iMovie 或 YouTube Audio Library 加音樂。
- 超過 10 分鐘的東西。 長時間的錄製很吃 CPU,龐大的渲染更耗時。建議上限是五分鐘;其餘的拆成幾集。
- 運鏡、特效、真正的剪接手法。 你拿到的只有基本的 xfade 淡入淡出轉場,沒有更多了。
- 直播。 這是批次產線;一支影片要 5 到 10 分鐘才會出現。
- 有版權疑慮的素材。 商業用途的話,先確認你的素材來源合法,並讀一下微軟目前對 edge-tts 商業用途的條款。
先確認三件事,再走六個步驟
第一次用最常遇到的挫折,是問了要一支影片,卻被告知做不到。幾乎都是因為少了一項前提條件。
- 影片 Skill 已經安裝好。 沒裝的話,AI 會說它沒有能做影片的工具。檢查
pitch_video在 Settings → Skills 底下的項目有沒有綠色的狀態點。 - 首次啟動的下載已經完成。 沒完成的話,它會卡在「Preparing environment」,或回報 Chromium 或 ffmpeg 缺失。跑出一個檔案,就是完成的證明。
- rclone 指向 Google Drive ——這個是選配。沒設定的話,影片做完了卻什麼都沒送達,你得自己去拿。
-
步驟 1
在一個有推理能力的模型上開一個 Session
點 New conversation 在左上角,接著選一個推理模型——來源舉的例子是 GLM-4.6、Claude Sonnet 跟 DeepSeek-R1。不要選最便宜的那個:腳本就是這支影片本身。
-
步驟 2
描述你要的影片,涵蓋四件事
包括 長度、主題、語氣跟受眾:「幫我做一支 90 秒的中文影片,講我們家的智慧插座能幫一般三口之家省多少電,語氣輕鬆一點,給長輩看的。」
-
步驟 3
在任何東西被做出來之前,先讀過大綱
在任何東西真正做出來之前,你應該會先拿到一份大綱跟草稿腳本——10 秒的開場、60 秒帶三個重點的主體、20 秒的收尾。用具體的修改回覆它:「把中文開場縮短到 5 秒。」來回好幾輪很正常,而且比之後重做便宜得多。
-
步驟 4
核准它,讓 Skill 開始跑
回覆「好,就用這份中文腳本。」一張 工具卡 會出現,回報它跑到哪個階段。你可以關掉視窗;工作會繼續跑。
-
步驟 5
幾分鐘後去拿檔案
如果設定好了 Drive,MP4 會出現在你的資料夾裡,可能還會有手機通知。沒設定的話,它會留在
/data/pi-agent/projects/<project-name>/——用 Samba 或 File Editor 去拿。 -
步驟 6
如果不滿意,在同一個 Session 裡再問一次
「再做一版中文的,旁白放慢一點,拿掉開場那段。」它會沿用同一份腳本,套上新設定。如果問題出在腳本本身,就要求重寫,它會從階段 1 重新開始。
這是用對話來剪片。你不用打開應用程式拖拉片段,只要說出哪裡不對,它就會去改。前兩支影片會覺得奇怪,做到第四支就會覺得理所當然。
- Process details · 2 messages · 2 tool calls 把整個過程摺成了一行。打開它,你看到的是實際跑過的東西,不是被描述出來的東西。
- 回覆 「已建立 notes.md,內容是:」 結尾接著一個 notes.md 的檔案標籤,這個檔案也出現在了 EXPLORER 左側的面板裡。一項影片工作也是用同樣的方式,把檔案放進一個專案資料夾。
- 成本這一行 寫著
187 in · 57 out · 1,152 cache R · $0.0032。那個快取讀取的數字,就是為什麼一項耗時的工作花的錢,會比原始 token 數字看起來的還少。
沒有任何東西被藏起來:Skill 就是指示,實際的工作就是普通的工具呼叫。
bash。- 左欄—— read、bash、edit、write ——就是完整的清單。Skill 不會多加任何機制;它只是告訴 agent 怎麼用這四個工具,而
bash就是 ffmpeg、edge-tts 跟 rclone 被呼叫的地方。 - 右側面板 說明目前選中的是哪個工具。
read接受三個參數:path,必填,字串型別;offset跟limit,選填的數字。這就是 agent 實際運作的層級。 - Prompt guidelines 接在參數下方——這個面板不只是列出工具,還告訴 agent 什麼時候該用它。
每個階段都留下你能重複利用的東西
你拿到的不只是一支 MP4。中間產出的檔案都留在 /data/pi-agent/projects/<project-name>/底下。這個結構很典型,但版本之間會有差異——你自己的專案目錄才是準的。
| 檔案 | 是什麼 | 你可能想要它的理由 |
|---|---|---|
| final.mp4 | 完成的影片 | 隨你傳到哪裡 |
| subtitles.srt | 有時間戳記的純文字字幕 | 一份獨立的字幕軌,或拿來當翻譯的底稿 |
| script.md | AI 寫的腳本,Markdown 格式 | 改一改重跑,或直接拿去當部落格文章 |
| voice/*.wav | 每個段落各一軌旁白 | 重複使用,或換成你自己的聲音 |
| clips/*.webm | Playwright 錄下的原始畫面 | 重新配音某一段,或剪一個 GIF 出來 |
| segments/*.mp4 | 已渲染好、有旁白有字幕的各段落 | 只傳一段,不用傳整支影片 |
| project.json | 這次執行用的設定 | 下一支影片重複使用這些設定 |
所以你不會卡在「接受成品」跟「整個重來」之間別無選擇。想用自己的聲音?自己錄一段唸 script.md,把檔案放進 voice/,再請它針對這段配音重跑階段 4 到 6。
final.mp4、 script.md、 subtitles.srt 跟 project.json,並排除 clips/、 segments/ 跟 voice/,這兩個資料夾可能大到把整份備份撐爆。想留下每一份中間檔案的話,把專案複製到 NAS。要花多少錢,以及通常會出什麼問題
唯一直接收費的地方,是寫腳本跟修改腳本的 API 呼叫——一支 90 秒的腳本大概 1-3K token,看模型跟改幾輪而定。edge-tts、Playwright 跟 ffmpeg 都不額外收 API 費;它們用的是你主機的 CPU 跟電費,要有雙核心 CPU、至少 2 GB 記憶體才跑得順。
幾乎整筆帳單都花在寫作上,不是影片本身。這也是為什麼腳本值得花錢用更好的模型、其他部分不用太擔心——那些看起來很花錢的部分,跑的是你自己的硬體。
錄出來是黑畫面,或完全沒有畫面
/data/pi-agent/playwright-cache/ 跟標記檔 /data/pi-agent/.video-tools-installed,再重啟這個 add-on,重新觸發一次安裝。沒有字幕,或字幕顯示成方框跟問號
fonts-noto-cjk,所以出現方框通常表示 Skill 指定的字型檔不存在。把它改回 Noto Sans CJK,或跑 fc-list :lang=zh-tw ,在 ttyd 終端機裡執行。跑到一半當掉,Home Assistant 也變得遲緩
能改解析度、配音聲音、節奏嗎?
rate="+20%" 來加快旁白速度,用 -20% 來放慢。這些設定放在 /data/pi-agent/skills/<skill name>/底下,通常在 config.yaml 裡,或 SKILL.md。改之前先存一份 .bak 備份。接下來往哪走
你已經知道這條線在做什麼了。接下來要確定它真的裝好了。
第 12 篇會詳細講那 600-720 MB 的首次啟動下載——什麼時候會跑、怎麼盯著它,還有沒跑完的話怎麼讓它重來。第 13 篇設定 rclone 上傳到 Drive。
打開完整教學手冊《Pi Agent 入住指南》系列第 11 篇,由 WoowTech 渥屋科技 製作。
內容出自 Woow HA Pi Agent 入住指南,依 CC BY 4.0 釋出。
The Smart Space Solution · 智慧空間解決方案 · © 2026 WOOW Technology Co., Ltd.