將錄製的示範影片遷移為可編輯的 take
你正在將一個已完成的影片檔案轉換為 vosso take:一份文件,其縮放、修剪、速度和圖層均為數據,託管在版本歷史中,並可在工作室內編輯。這個檔案因「外來」而失去的,是你必須承擔的誠實:它沒有滑鼠游標軌道,因此無法自動縮放,且分析器所見甚少——你的眼睛就是膠片底片,每個縮放都要靠眼睛放置。
兩種途徑:
- 人類途徑:將檔案拖放到 https://vos.so/studio——它會以瀏覽器錄製器的形式進入,並直接在 take 編輯器中開啟。當有人類在場時,這是最短路徑;交給他們連結即可。
- 代理途徑(本技能):自行建置 take 目錄並執行標準管道。以下為端到端的驗證流程。
1. 探查來源
ffprobe -v quiet -print_format json -show_streams -show_format demo.mp4
保留以下資訊:寬度、高度、持續時間、幀率、是否有音訊串流。Loom/Screen Studio 的匯出檔案通常為 1080p H.264,且鏡頭泡泡與任何編輯都已「烤入」——它們以像素形式遷移,而非圖層。在交接時要說明:遷移讓檔案從此可編輯,但無法還原舊有的編輯。
2. 建置 take 目錄
mkdir take
ffmpeg -i demo.mp4 -c:v libvpx-vp9 -crf 34 -b:v 0 -row-mt 1 \
-c:a libopus take/recording.webm # 如果沒有音訊串流,請移除 -c:a
然後根據探查結果撰寫 take/meta.json(每個欄位皆為必填;時間單位為毫秒;producer: "migrated" 標記來源):
{
"producer": "migrated",
"dpr": 1, "zoom": 1,
"t0": 0,
"durationMs": 36766,
"width": 1920, "height": 1080,
"fps": 30,
"hasAudio": false
}
t0 可以是任何紀元毫秒數;width/height 為影片像素(原本就沒有瀏覽器視窗)。只有當 webm 實際包含音軌時才將 hasAudio 設為 true。
3. 規劃,並誠實看待
vos plan take --fresh # 建立 doc.json;cursorKept false, zoomAuto 0
vos frames take --times 0,10%,25%,50%,75%,90%,100% # 底片就是你的眼睛
vos digest take # 執行,但別期望太多:只有頭尾和硬場景切換
# ——沒有點擊、打字或停留
無法自動縮放,也不應偽造。閱讀靜態畫面,找出 2-4 個關鍵時刻,並靠眼睛手動撰寫區間:
# doc.json - 你添加的每個區間都帶有 "source": "manual"
# zoom: [{ "id": "m1", "in": 10.5, "out": 14.0, "level": 1.6,
# "cx": 0.52, "cy": 0.35, "source": "manual" }]
# segments: 修剪死寂的頭尾;speed: 僅在畫面真正閒置時使用
將 export.resolution 設定為與影片相符(1080p 來源即為 1080p——遷移不會增加像素)。vos validate take 必須通過;使用 vos render take check.webm --range a..b --draft 進行抽樣檢查。
4. 推送——舊的示範影片變成動態文件
vos push take --folder <project> --label "從 <來源> 遷移" \
--note "<內容說明;標明舊有編輯已烤入;你重新剪輯了哪些部分>"
最後進入循環:觀看頁面播放它,工作室編輯你撰寫的每個區間以及檔案從未有過的一切(背景、文字圖層、速度),而 vos pull 則可將人類的編輯拉回。這句口號適合交接時使用,用一句話總結:這是你最後一個盲目編輯的示範——下一次使用 vos record 錄製,攝影機就會自動規劃。
誠實的限制(一定要說出來,絕不掩蓋)
- 無游標軌道 ⇒ 無法自動縮放、無點擊效果、無打字縮放,也沒有構圖提示——每次縮放都要靠你的眼睛,而且你必須說清楚。
- 舊的編輯、鏡頭泡泡和字幕均為烤入的像素。
- 遷移會重新編碼一次(VP9);壓縮品質差的來源仍然品質差——遷移無法還原品質。
- 標準尺寸的交付清單(儲存靜態圖、海報)無論從遷移的 take 還是從原生 take 都能正常運作——當需求是發佈時,
launch-kit技能會接手負責。