課程影片處理管道 是做什麼的?
處理課程錄影的完整流程,同時保持使用者要求的輸出結構。優先選用獨立剪輯片段,除非使用者明確要求合併的講課影片。不得假設有權限刪除本機來源檔案或既有的遠端輸出。
處理前
- 精確讀取使用者的來源與目標路徑。將前方標籤(如「全部文件」)視為 UI 文字,除非該標籤存在於遠端路徑中。
- 在下載前檢查遠端檔案名稱、大小、格式及既有輸出。
- 檢查本機可用空間、可用 GPU、FFmpeg 編解碼器、WhisperX 環境以及 BaiduPCS-Go 登入狀態。
- 從取樣得到的檔案名稱、轉錄文字及影片結構中,選用合適的課程適配器。請參閱
references/course-adapters.md以了解已知風格及如何偵測不熟悉的風格。 - 確認輸出模式:個別剪輯片段、合併剪輯片段,或兩者兼有。當未指定時,預設為個別剪輯片段。
處理流程
- 下載並驗證每個來源影片,同時保持其自然順序不變。
- 獨立對來源檔案進行轉錄。重複使用有效的轉錄文字與剪輯計畫,避免重複進行 GPU 工作。
- 建立確定性的剪輯或單元清單。當標記有歧義時,審查候選邊界。
- 渲染剪輯片段並為每個片段生成一個 SRT 字幕檔。僅在使用者要求時才生成合併影片與合併字幕檔。
- 生成一份 Markdown 清單,內容包含:標籤、輸出檔案名稱、來源檔案名稱、來源時間戳、時長以及任何適配備註。
- 在上傳前執行輸出驗證器。
- 上傳至使用者指定的精確遠端目錄,並驗證遠端檔案數量與名稱是否正確。
- 僅在驗證完成後,且在使用者授權的刪除範圍內,才進行清理動作。
必要輸出合約
對於每個選定的剪輯片段或保留的知識單元,需提供:
- 一個 MP4 檔案,除非要求的單元僅為元資料。
- 一個時間戳歸零、檔名一致的 SRT 字幕檔。
- 講課或章節 Markdown 清單中的一行記錄。
- 穩定的序號前綴,加上原有的範例或單元 ID。
對於合併模式,在本機保留每個標準化的剪輯片段,並額外生成一個合併 MP4 檔案與一個時間軸調整後的合併 SRT 字幕檔。除非使用者要求覆寫或移除,否則不得取代既有的合併或非合併版本。
執行備註
- 使用來源特定的轉錄文字,確保每個輸出剪輯片段的時間戳歸零。
- 優先使用支援
h264_nvenc的精確 FFmpeg 裁剪。當不支援時,改用libx264,而非靜默跳過精確邊界。 - 在 Markdown 中保留課程原文,僅對檔案名稱與管理標籤進行正規化處理。
- 當遇到缺少來源檔案、無效時間戳、零位元組媒體或無法解釋的數量不符時,停止處理。僅對失敗的檔案進行重試。
- 對於大量批次,在下載、轉錄、渲染及上傳階段後,回報具體進度。
在執行完整管道前,請先閱讀 references/workflow.md。在選擇拆分策略時,請閱讀 references/course-adapters.md。在建構清單、Markdown 列表、上傳、驗證或清理時,請閱讀 references/manifest-upload.md。