跳至內容

把一句寫下來的要求,變成一支帶字幕的成品 MP4

你有值得拿出來給人看的東西——新買的掃地機器人、儀表板上一鍵離家的按鈕、資源回收怎麼分類。但把它拍成一支能看的影片,永遠是那個沒發生的部分。Pi Agent 內建一整條影片生產線,加上一個驅動它的 Skill:你寫一句話,幾分鐘後就有一支帶旁白、燒好字幕的 MP4。
2026年9月12日
把一句寫下來的要求,變成一支帶字幕的成品 MP4
OdooBot
describe it, then walk away
Pi Agent 指南 · 第 11 篇

把一句寫下來的要求,變成一支帶字幕的成品 MP4

你有值得拿出來給人看的東西——新買的掃地機器人、儀表板上一鍵離家的按鈕、資源回收怎麼分類。但把它拍成一支能看的影片,永遠是那個沒發生的部分。Pi Agent 內建一整條影片生產線,加上一個驅動它的 Skill:你寫一句話,幾分鐘後就有一支帶旁白、燒好字幕的 MP4。這篇要講清楚這條線做什麼、不擅長什麼,以及怎麼跑一次。

6 個階段
腳本、配音、錄製、字幕、剪接、上傳
5-10 分鐘
一支 3 分鐘影片,從核准到出現在 Drive
600-720 MB
首次啟動就下載一次——不是影片管線觸發的
你一直撞上的那道牆

想法很簡單。剪接才是那道牆。

對著鏡頭解釋一件事聽起來很簡單,直到你真的試了才知道。一邊操作介面一邊講話,得重來好幾次,接下來還有剪接、配音、上字幕。三分鐘的影片能吃掉一整個下午。

這個 add-on 已經內建了做這件事的工具: ffmpeg ,負責剪接, Playwright 搭配 Chromium ,負責錄瀏覽器畫面, edge-tts ,負責配音, rclone ,負責上傳。一個已安裝的 Skill 把它們串在一起——通常叫 pitch_videopi-video,實際的 slug 依你安裝的版本而定(第 10 篇)。

講白一點

你不是在剪片。你是在跟一個已經有全套機器的工坊描述一項工作。你真正要做的兩件事,是把要什麼講清楚,以及判斷做回來的東西夠不夠好。

這是用來做什麼的。 三到五分鐘、實用的說明性影片,有旁白也有字幕,做完就能分享。渲染跑在你自己的 Home Assistant 主機上,所以不用另外開剪輯電腦,也不用付影片訂閱費。它不能取代專業創作者,也不能取代真人的實拍畫面。
六個階段

六個階段,時間都花在哪

用之前值得先看一遍:等哪裡出問題的時候,你會想知道是哪個階段出的問題。

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 分鐘"]
這條生產線以一支 3 分鐘影片估算的大概時間。階段 3 的時間大致跟著影片本身的長度走。來源估算
  • 階段 1 決定了後面所有事。 AI 把旁白拆成幾段、幫每段訂好時長、決定要展示什麼畫面。這裡建議用推理模型。
  • 字幕能對得上,靠的是階段 4。 edge-tts 在配音的同時回報每個字的時間戳記, SubMaker 把這些時間戳記轉成 SRT 字幕檔,所以字幕是對照真實音檔對出來的,不是用猜的。

整體來說,一支 3 分鐘的影片通常需要 大約 5 到 10 分鐘 ,從你核准到出現在 Google Drive,實際時間看你的硬體、網路跟這個 Skill 而定。不管你有沒有盯著看,工作都會繼續跑。

十分鐘聽起來沒什麼 ——直到你拿它跟自己剪三分鐘影片要花的兩小時比。價值大概從第五、六支影片開始顯現,一個下午做出七八支變成家常便飯。
那 720 MB 是怎麼回事

那個大下載不是影片管線的錯

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"]
兩份各自獨立的下載剪接工具是隨映像檔一起到貨的。只有瀏覽器跟 Python 環境會下載到資料磁區。
第 12 篇專門講這次下載 ——什麼時候會跑、怎麼盯著它、失敗了怎麼辦。這裡只要記住一件事:它只會發生一次,而且不是因為你做了影片才發生的。
適合用、不適合用

它擅長什麼,老實講清楚

它做得好的每一件事,都有一個共通點: 由解說驅動、而不是由表演驅動的短影片。畫面上不會有人出現。它喜歡的請求長這樣:

你這樣問「幫我做一支 90 秒的中文影片介紹我家新買的掃地機器人,講重點功能、跟舊款比較。」
你這樣問「錄下我在 Home Assistant 儀表板上選『離家模式』之後發生的事,用中文旁白解釋每個動作。」
你這樣問「用小學生能懂的話,講清楚怎麼分類回收,包括紙類、塑膠、鐵鋁罐跟廚餘。」

食譜示範、根據自己筆記寫的心得、行程預告,都適合這個形狀。燒進畫面的字幕在這裡很重要:群組裡的影片常常一開始是靜音播放的。

六個該換工具的地方

  • 你本人上鏡。 Playwright 錄的是瀏覽器;它拍不了你。改用手機拍。
  • 背景音樂。 這裡只有旁白。事後用 CapCut、iMovie 或 YouTube Audio Library 加音樂。
  • 超過 10 分鐘的東西。 長時間的錄製很吃 CPU,龐大的渲染更耗時。建議上限是五分鐘;其餘的拆成幾集。
  • 運鏡、特效、真正的剪接手法。 你拿到的只有基本的 xfade 淡入淡出轉場,沒有更多了。
  • 直播。 這是批次產線;一支影片要 5 到 10 分鐘才會出現。
  • 有版權疑慮的素材。 商業用途的話,先確認你的素材來源合法,並讀一下微軟目前對 edge-tts 商業用途的條款。
關於揭露。 YouTube 2024 年的規則要求,逼真到會讓觀眾誤以為真實事件發生過的合成媒體必須揭露;AI 寫的大綱、腳本跟字幕不在此限,所以配上你自己儀表板畫面的旁白通常不算這一類。其他平台有自己的規則,不管哪一種,都不代表你可以刻意隱瞞。一句到哪都適用的話:「這支影片的旁白由微軟 edge-tts 生成,中文腳本由 AI 協助撰寫。」
動手做一支

先確認三件事,再走六個步驟

第一次用最常遇到的挫折,是問了要一支影片,卻被告知做不到。幾乎都是因為少了一項前提條件。

  • 影片 Skill 已經安裝好。 沒裝的話,AI 會說它沒有能做影片的工具。檢查 pitch_video 在 Settings → Skills 底下的項目有沒有綠色的狀態點。
  • 首次啟動的下載已經完成。 沒完成的話,它會卡在「Preparing environment」,或回報 Chromium 或 ffmpeg 缺失。跑出一個檔案,就是完成的證明。
  • rclone 指向 Google Drive ——這個是選配。沒設定的話,影片做完了卻什麼都沒送達,你得自己去拿。
順序很重要。 先裝 Skill,再讓下載跑完並測試一次。Drive 留到你確定會常態使用時再設——rclone 的授權要走 Google Cloud Console,是這三件事裡最麻煩的一個。
  1. 步驟 1

    在一個有推理能力的模型上開一個 Session

    New conversation 在左上角,接著選一個推理模型——來源舉的例子是 GLM-4.6、Claude Sonnet 跟 DeepSeek-R1。不要選最便宜的那個:腳本就是這支影片本身。

  2. 步驟 2

    描述你要的影片,涵蓋四件事

    包括 長度、主題、語氣跟受眾:「幫我做一支 90 秒的中文影片,講我們家的智慧插座能幫一般三口之家省多少電,語氣輕鬆一點,給長輩看的。」

  3. 步驟 3

    在任何東西被做出來之前,先讀過大綱

    在任何東西真正做出來之前,你應該會先拿到一份大綱跟草稿腳本——10 秒的開場、60 秒帶三個重點的主體、20 秒的收尾。用具體的修改回覆它:「把中文開場縮短到 5 秒。」來回好幾輪很正常,而且比之後重做便宜得多。

  4. 步驟 4

    核准它,讓 Skill 開始跑

    回覆「好,就用這份中文腳本。」一張 工具卡 會出現,回報它跑到哪個階段。你可以關掉視窗;工作會繼續跑。

  5. 步驟 5

    幾分鐘後去拿檔案

    如果設定好了 Drive,MP4 會出現在你的資料夾裡,可能還會有手機通知。沒設定的話,它會留在 /data/pi-agent/projects/<project-name>/ ——用 Samba 或 File Editor 去拿。

  6. 步驟 6

    如果不滿意,在同一個 Session 裡再問一次

    「再做一版中文的,旁白放慢一點,拿掉開場那段。」它會沿用同一份腳本,套上新設定。如果問題出在腳本本身,就要求重寫,它會從階段 1 重新開始。

講白一點

這是用對話來剪片。你不用打開應用程式拖拉片段,只要說出哪裡不對,它就會去改。前兩支影片會覺得奇怪,做到第四支就會覺得理所當然。

Pi Agent 裡一次跑完的工具紀錄。一行可摺疊的文字寫著 Process details、2 messages、2 tool calls。底下的回覆開頭是 Created notes.md with:,接著三個條列項目,然後是一個 notes.md 檔案標籤跟成本這一行 187 in、57 out、1,152 cache R、$0.0032。左側的 EXPLORER 面板現在列出了 notes.md。
一次跑完的工具紀錄工作完成後,整個過程會摺疊成一行,寫出來的檔案會出現在左側的面板裡。
  • Process details · 2 messages · 2 tool calls 把整個過程摺成了一行。打開它,你看到的是實際跑過的東西,不是被描述出來的東西。
  • 回覆 「已建立 notes.md,內容是:」 結尾接著一個 notes.md 的檔案標籤,這個檔案也出現在了 EXPLORER 左側的面板裡。一項影片工作也是用同樣的方式,把檔案放進一個專案資料夾。
  • 成本這一行 寫著 187 in · 57 out · 1,152 cache R · $0.0032。那個快取讀取的數字,就是為什麼一項耗時的工作花的錢,會比原始 token 數字看起來的還少。

沒有任何東西被藏起來:Skill 就是指示,實際的工作就是普通的工具呼叫。

Pi Agent 裡的 Tools 面板。狹窄的左欄列出四個工具:read、bash、edit、write,目前選中 read。右側是 read 的完整說明跟它的三個參數:path,必填,字串型別;offset,選填,數字;limit,選填,數字。下面接著一個 Prompt guidelines 的標題。
Tools 面板每個階段都是透過像這樣的工具接觸你的機器,大多是靠 bash
  • 左欄—— read、bash、edit、write ——就是完整的清單。Skill 不會多加任何機制;它只是告訴 agent 怎麼用這四個工具,而 bash 就是 ffmpeg、edge-tts 跟 rclone 被呼叫的地方。
  • 右側面板 說明目前選中的是哪個工具。 read 接受三個參數: path,必填,字串型別; offsetlimit,選填的數字。這就是 agent 實際運作的層級。
  • Prompt guidelines 接在參數下方——這個面板不只是列出工具,還告訴 agent 什麼時候該用它。
你會拿回什麼

每個階段都留下你能重複利用的東西

你拿到的不只是一支 MP4。中間產出的檔案都留在 /data/pi-agent/projects/<project-name>/底下。這個結構很典型,但版本之間會有差異——你自己的專案目錄才是準的。

檔案是什麼你可能想要它的理由
final.mp4完成的影片隨你傳到哪裡
subtitles.srt有時間戳記的純文字字幕一份獨立的字幕軌,或拿來當翻譯的底稿
script.mdAI 寫的腳本,Markdown 格式改一改重跑,或直接拿去當部落格文章
voice/*.wav每個段落各一軌旁白重複使用,或換成你自己的聲音
clips/*.webmPlaywright 錄下的原始畫面重新配音某一段,或剪一個 GIF 出來
segments/*.mp4已渲染好、有旁白有字幕的各段落只傳一段,不用傳整支影片
project.json這次執行用的設定下一支影片重複使用這些設定

所以你不會卡在「接受成品」跟「整個重來」之間別無選擇。想用自己的聲音?自己錄一段唸 script.md,把檔案放進 voice/,再請它針對這段配音重跑階段 4 到 6。

備份會跳過大檔案。 Home Assistant 備份會保留 final.mp4script.mdsubtitles.srtproject.json,並排除 clips/segments/voice/,這兩個資料夾可能大到把整份備份撐爆。想留下每一份中間檔案的話,把專案複製到 NAS。

要花多少錢,以及通常會出什麼問題

唯一直接收費的地方,是寫腳本跟修改腳本的 API 呼叫——一支 90 秒的腳本大概 1-3K token,看模型跟改幾輪而定。edge-tts、Playwright 跟 ffmpeg 都不額外收 API 費;它們用的是你主機的 CPU 跟電費,要有雙核心 CPU、至少 2 GB 記憶體才跑得順。

講白一點

幾乎整筆帳單都花在寫作上,不是影片本身。這也是為什麼腳本值得花錢用更好的模型、其他部分不用太擔心——那些看起來很花錢的部分,跑的是你自己的硬體。

錄出來是黑畫面,或完全沒有畫面
Playwright 環境沒安裝正確——下載被中斷,或 Chromium 沒有完全解壓縮。刪掉 /data/pi-agent/playwright-cache/ 跟標記檔 /data/pi-agent/.video-tools-installed,再重啟這個 add-on,重新觸發一次安裝。
沒有字幕,或字幕顯示成方框跟問號
不是 ffmpeg 沒有把 SRT 燒進畫面——去檢查 Skill 的字幕或燒錄選項,名稱因版本而異——就是字型不見了。這個 add-on 內建了 fonts-noto-cjk,所以出現方框通常表示 Skill 指定的字型檔不存在。把它改回 Noto Sans CJK,或跑 fc-list :lang=zh-tw ,在 ttyd 終端機裡執行。
跑到一半當掉,Home Assistant 也變得遲緩
主機的 CPU 或記憶體不夠——Pi 3 或很舊的迷你主機會吃力。檢查 System → Hardware,先停掉 Frigate 或 Whisper 這類吃資源的 add-on,或把畫質降到 720p、24 fps,來源估計光這一項就能把資源需求砍半。
能改解析度、配音聲音、節奏嗎?
可以,先確認跑過幾次沒問題再改。預設值是 1080p、30 fps、0.5 秒的 xfade 轉場,字幕置中在畫面下方;edge-tts 用 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.

網誌: Pi Agent 指南
分享這個貼文