製作一條教學類影片,通常比想像中更麻煩。

先要讀懂原文、整理腳本,再拆分章節、寫旁白、準備畫面提示詞。等圖片和配音生成以後,還要繼續製作影片片段,最後把畫面和聲音合成到一起。

其中任何一個環節出了問題,後面的工作都可能跟著重來。尤其是教學影片,內容不僅要準確,畫面與旁白還得對得上,確實很耗時間。

這次我換了一種做法:使用 Ace Data Cloud Studio,讓 Agent 幫我把任務拆開,然後按照腳本、旁白、圖片、影片的順序逐步完成。

整個過程不是點一下按鈕就不管了,而是每完成一個階段就檢查一次。哪裡不合適,就在進入下一階段前調整。這樣既能控制最終效果,也不用同時在多個平台之間來回切換。

下面這張插圖,就是我理想中的工作狀態:電腦在處理影片,我在旁邊喝咖啡、看手機,偶爾回來檢查一下進度。

使用 Ace Data Cloud Studio 創作影片

那麼,具體應該怎麼開始?

這次的任務很明確:選擇一篇現有的部落格文章,把它改編成一條完整的影片。

我選擇的是 Ace Data Cloud 上的一篇教學文章:

使用 SERP API 每日監控 SEO 關鍵字排名

接下來開啟:

Ace Data Cloud Studio

進入 Studio 後,可以直接從創作任務開始,不需要提前搭建一套複雜的工作流程。

Ace Data Cloud Studio 首頁

把影片創作 Skill 交給 Studio

我提前準備了一份影片創作 Skill。

它的作用不是直接生成最終影片,而是先把原始文章整理成適合影片表達的結構,包括影片應該分成哪些章節、每一章要講什麼、旁白怎麼寫、畫面展示什麼,以及圖片和影片分別使用什麼提示詞。

使用時,把 Skill 檔案拖放到 Studio 的對話框中,然後告訴 Agent 這次要處理的文章地址和具體要求。

我給出的需求大意是:

閱讀指定的部落格文章,把它改編成影片。請先輸出完整章節,包括每章的標題、說明、旁白,以及圖片和影片的生成提示詞。整個任務一步步完成,不要一次生成全部內容。

上傳影片創作 Skill 並輸入任務

先整理影片大綱,不要急著做畫面

提交任務後,Agent 會先閱讀文章,然後根據文章內容整理影片章節。

生成的內容比較完整,每個章節都有標題、內容說明、旁白,以及對應的圖片和影片 Prompt。這樣一來,後面不管是生成靜態畫面,還是製作影片片段,都有一份比較清楚的執行清單。

例如,原文中介紹 SERP API 的部分,被單獨整理成了一個章節,並補充了畫面應該展示的內容。

自動整理的影片章節

Agent 還會估算每個章節的時長。第一次生成時,這條影片被拆成了八個章節,預計總時長大約為兩分半鐘。

影片章節與預計時長

這裡建議先停一下,認真檢查內容,不要馬上開始生成圖片。

因為這一階段的修改成本最低。如果等到圖片、音訊和影片都已經生成,再回頭改旁白,前面的素材很可能都要跟著重做。

縮短旁白,控制影片節奏

我檢查後發現,第一版旁白有點長。

教學影片並不是資訊越多越好。旁白太長,觀眾聽起來會累,影片節奏也容易拖沓。更麻煩的是,畫面需要配合更長的語音,後面生成影片時也會增加難度。

所以我直接讓 Agent 縮短旁白,要求保留關鍵資訊,去掉重複說明和比較書面化的句子。

調整後,每個章節的旁白大約控制在八到九秒,整體節奏明顯輕快了不少。

縮短後的章節旁白

旁白變短以後,不能只修改文字,還要同步調整圖片和影片的 Prompt。否則很容易出現一種情況:旁白已經講到下一個重點,畫面還停留在上一段內容。

我的處理方式是,讓 Agent 根據新的旁白重新整理畫面描述,確保每個章節的視覺內容仍然與旁白一致。

設定統一底圖,保持畫面風格

腳本確認以後,就可以開始生成圖片和旁白了。

在正式生成前,我給 Agent 指定了一張底圖,也就是視覺參考圖。

這不是必須的,也可以只使用文字說明。但如果整條影片包含多個章節,我還是建議準備一張底圖。它可以幫助模型保持相對統一的色彩、構圖和品牌風格,避免前後幾個鏡頭像來自完全不同的影片。

由於前面修改過旁白時長,我也要求 Agent 重新生成對應的畫面 Prompt,不再繼續使用舊版本。

指定底圖並重新生成畫面

選擇合適的旁白音色

畫面要求確定後,Studio 會根據任務需要呼叫配音工具。

音色沒有絕對的好壞,主要看影片類型。教學類影片一般不需要太誇張的情緒,聲音清楚、穩定,語速不要過快就可以。 如果自動選擇的音色不合適,也可以直接要求 Agent 更換。最好先生成一小段試聽,確認音色、語速和停頓都沒問題,再批次處理剩餘章節。

在 Studio 中選擇旁白音色

這次圖片使用的是 GPT Image 2,配音使用的是 Fish Audio。這些模型都可以在 Studio 中直接呼叫,只要提前設定好對應的連接器,不需要再另外編寫介面程式碼。

後面生成影片時也是一樣,Agent 可以繼續呼叫已經連接的影片模型。圖片生成需要一些時間,這個階段耐心等一會兒就行。

先看樣圖,確認方向再批次生成

我沒有一開始就生成全部圖片,而是先讓 Agent 做了兩張樣圖。

這樣做看起來多了一步,實際上更省時間。透過樣圖,可以提前檢查畫面比例、整體風格、品牌元素和構圖,也可以判斷畫面是否適合後續製作成影片。

如果樣圖不合適,只需要調整 Prompt 或底圖,不會浪費後面全部章節的生成費用。

先生成兩張樣圖檢查效果

兩張樣圖確認沒有明顯問題後,我再讓 Agent 完成其餘內容。

最後,八個章節所需的圖片和音訊片段全部生成完成。接下來要做的,就是逐一檢查畫面和旁白。

圖片和音訊生成完成

檢查時不要只看單張圖片好不好看,還要把圖片和旁白放在一起判斷。圖片表達的內容要與旁白一致,同一個人物或介面不要突然發生明顯變化,旁白中提到的重要資訊最好能在畫面中有所體現,相鄰章節的風格和色調也應盡量統一。

提前規定影片的生成方式

圖片和音訊準備好以後,就可以開始製作影片片段了。

不過,為了少走彎路,我沒有直接讓 Agent 自由發揮,而是先補充了一些規則,包括每段影片對應哪個章節、使用哪張圖片作為起始畫面、影片時長如何匹配旁白,以及運鏡幅度和風格一致性等。

教學畫面應該保持清楚,不要加入無關元素,也不要隨意改變畫面中的品牌、介面和主體。相鄰影片的風格盡量保持一致,正式批次生成前先做一個片段檢查效果。

設定影片生成規則

這些限制並不是越多越好,但關鍵要求最好提前說清楚。如果完全不做約束,單獨看每一段影片可能都不錯,拼在一起卻容易出現風格跳動、運鏡差異過大或者人物不一致的問題。

先做一個影片片段

和前面生成圖片一樣,我還是採用了「先做樣片」的方式。

先生成第一個片段,檢查動態效果、運鏡、畫面穩定性以及整體風格。如果第一個片段就有問題,可以馬上調整,不必等所有片段都完成。

查看第一個影片片段

第一個影片片段生成中

第一個片段完成後,我檢查了一遍,整體效果還可以,沒有明顯的畫面跳動,運鏡也比較自然。

確認方向沒問題後,再讓 Agent 繼續生成剩餘的影片片段。

繼續生成全部影片片段

用 FFmpeg 在本地合成影片和旁白

所有影片片段生成以後,還剩最後一步:把影片和對應的旁白合成到一起。

Studio 可以幫忙完成前面的創作工作,但我更習慣把最後的合成放到本地執行。這樣下載和管理檔案更方便,也能清楚控制每一段影音。指令碼修改後可以重複執行,出現問題時也更容易定位。

我的做法是讓 Agent 生成一段 Bash 指令碼,然後使用本地安裝的 FFmpeg 執行。

#!/usr/bin/env bash
set -euo pipefail

videos=(
  "https://platform2.cdn.acedata.cloud/grok/0d91b61a-5c15-412d-9eb3-ed3ba3c2b289.mp4"
  "https://platform2.cdn.acedata.cloud/grok/24c98593-2d2c-41da-82ff-85101ef65564.mp4"
)

voices=(
  "https://platform2.cdn.acedata.cloud/fish/eef753c1-4b5b-400f-8fce-acedd2621ce9.mp3"
  "https://platform2.cdn.acedata.cloud/fish/52dd45d8-1e6d-4a67-8f02-0473c56d960f.mp3"
)

mkdir -p output

for i in "${!videos[@]}"; do
  n=$(printf "%02d" $((i + 1)))

  ffmpeg -y \
    -i "${videos[$i]}" \
    -i "${voices[$i]}" \
    -map 0:v:0 \
    -map 1:a:0 \
    -c:v copy \
    -c:a aac \
    -b:a 192k \
    -ar 48000 \
    -ac 2 \
    -af "apad" \
    -shortest \
    -movflags +faststart \
    "output/scene-${n}-narrated.mp4"
done

這段指令碼會按照陣列中的順序,將每一個影片片段與對應的旁白合成。

-map 0:v:0 用來選擇第一個輸入中的影片軌道,-map 1:a:0 選擇第二個輸入中的音訊軌道。-c:v copy 會直接複製影片,不重新編碼;-c:a aac 則把旁白轉成相容性更好的 AAC 音訊。

-af "apad" 會在音訊不足時補充靜音,-shortest 讓輸出在較短的影音軌道結束時停止,-movflags +faststart 可以讓 MP4 更適合網路播放。

正式使用時,把 videos 和 voices 陣列補充完整,並確保影片和音訊的順序一一對應即可。

交給本地 Codex 執行腳本

腳本生成後,我沒有繼續讓線上 Agent 處理下載和合成,而是直接複製到本地,交給 Codex 執行。

可以讓它檢查本地是否已經安裝 FFmpeg,建立專案資料夾,儲存 Bash 腳本,下載素材並執行合成命令。處理完成後,再檢查輸出檔案是否完整,並按順序整理最終片段。

這樣做的好處很直接:下載和合成都在本地完成,可以節省不少 Token,生成的素材也會直接儲存在電腦裡,後面繼續剪輯、加字幕或者備份都比較方便。

使用本地 Codex 執行 FFmpeg 合成

最終效果

全部片段合成完成後,整體效果比我預期的更好。

影片的章節結構比較清楚,畫面風格也保持了基本一致。旁白經過縮短後,沒有最初那麼拖沓,教學內容聽起來更加緊湊。

更重要的是,整個過程不是把任務一次性交給模型後碰運氣,而是拆成多個階段逐步確認。

腳本不合適,就先改腳本;旁白太長,就先縮短旁白;圖片風格不對,就先調整樣圖;影片運鏡有問題,就先修改第一個片段。這樣一路檢查下來,最後返工的地方反而更少。

最終生成效果

最後聊聊這次的感受

這次做下來,我覺得最重要的一件事,就是不要一開始就把所有內容都生成出來。無論是圖片、配音還是影片,先做一兩個樣品看看效果,發現問題可以馬上調整,不會等到全部完成後再大面積返工。

整個任務也不要想著一步到位。先整理腳本,再修改旁白,然後準備圖片、音訊和影片。每完成一個階段就檢查一下,雖然看起來多了幾個步驟,實際上會省下不少時間。

最後的影片合成也沒有必要繼續放在 Studio 中完成。創作部分交給 Studio,本地下載和合成交給 FFmpeg,各自做擅長的事情,操作起來更順手,也能減少不必要的消耗。

說到底,Ace Data Cloud Studio 最方便的地方,並不是替我們按一下按鈕直接生成成片,而是把原本零散的創作流程串了起來。我們只需要在關鍵節點檢查和調整,剩下的重複工作就可以交給 Agent 慢慢完成。