Paper Slides to Video
公開エントリポイントは以下です:
<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 <サブコマンド>
正確な 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:アノテーションを1つ追加します。この物理ページ単位の契約により、ランドスケープとポートレートのレンダリングを同期させます。両方の向きが同じ 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 が欠落していると、0以外の終了コードで終了し、ナレーション結果を残すことはできません。
ツールの検出
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