論文投影片轉影片
公開的入口點為:
<SKILLS_DIR>/paper-slides-to-video/scripts/slides_to_video.py
使用套件環境執行:
uv run --project <SKILLS_DIR>/paper-slides-to-video python <SKILLS_DIR>/paper-slides-to-video/scripts/slides_to_video.py <subcommand>
精確 CLI
render PDF FRAME_DIR [--dpi 200]plan TEXnarrations FRAME_DIR TEX --annotated-tex ANNOTATED_TEXtts FRAME_DIR [--lang zh]assemble FRAME_DIR OUTPUT [--pad-sec 0.5] [--speed 1.25]cover FIRST_FRAME OUTPUTmetadata TEX COVER OUTPUTfull PAPER_DIR --annotated-tex ANNOTATED_TEX
必要完整工作流程
- 在呼叫此套件前先編譯
slides-beamer/main.pdf。 - 將
slides-beamer/main.tex複製到video/main_with_narration.tex,並為每個渲染的實體頁面加入一個非空的% NARRATION:註解。這個每頁面合約可確保橫向與縱向渲染保持同步:兩種方向均從相同的 PDF 頁面組裝,因此旁白/音訊基數閘限制同樣適用於每個方向。 - 使用已註解的 TeX 路徑執行
full。
uv run --project <SKILLS_DIR>/paper-slides-to-video python <SKILLS_DIR>/paper-slides-to-video/scripts/slides_to_video.py full "<PAPER_DIR>" --annotated-tex "<PAPER_DIR>/video/main_with_narration.tex"
full 會先移除任何過期的旁白輸出。它要求 PNG/TXT/MP3 具有精確的基數對應、非空的旁白與音訊、可探測到的正數音訊持續時間,以及同時包含影片與音訊串流的已組裝 MP4。遺失旁白或 MP3 會以非零退出碼結束,且無法產生旁白結果。
工具發現
PDFTOPPM或POPPLER_DIR(包含pdftoppm的目錄),然後是PATHFFMPEG,然後是PATHFFPROBE,然後是PATHEDGE_TTS_BIN,然後是PATH
沉默永遠不是隱含的。程式呼叫者唯有透過呼叫 encode_slide(..., require_audio=False) 才能刻意建立無聲頁面。公開預設值為 require_audio=True。
輸出寫入 <PAPER_DIR>/video/:video_frames/、<paper>_narrated.mp4、cover.png、frames_data.json、narrations.json 及 video_meta.json。
相關技能
- skill://batch-papers-single-omp-full-pipeline
- skill://batch-slides-to-video
- skill://blog-to-bilibili
- skill://edge-tts-retry-video-driver
- skill://index-tts-fallback