Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
InputFile string
OutputFile string
WorkDir string
ElevenLabsAPIKey string
VoiceID string
Width int
Height int
FrameRate int
OutputIndividualDir string // Directory for individual slide videos (Udemy)
TransitionDuration float64 // Duration of transitions between slides in seconds
ScreenDevice string // Screen capture device (macOS, auto-detected if empty)
AudioManifest string // Path to audio manifest file (from 'marp2video tts')
ProgressWriter io.Writer // Writer for progress output (nil to disable)
}
Config holds orchestrator configuration
type Orchestrator ¶
type Orchestrator struct {
// contains filtered or unexported fields
}
Orchestrator coordinates the entire video generation process
func NewOrchestrator ¶
func NewOrchestrator(config Config) *Orchestrator
NewOrchestrator creates a new orchestrator
type SegmentConfig ¶ added in v0.3.0
type SegmentConfig struct {
// Source is the content source (transcript, config, etc.)
Source source.ContentSource
// OutputFile is the final video output path
OutputFile string
// WorkDir is where temporary files are stored
WorkDir string
// AudioOutputDir is where to save audio tracks (if set, audio is preserved)
// Structure: {AudioOutputDir}/{language}/combined.mp3
AudioOutputDir string
// Languages is the list of languages to generate (uses default if empty)
Languages []string
// Width and Height are video dimensions
Width int
Height int
// FrameRate is the video frame rate
FrameRate int
// TransitionDuration is crossfade duration between segments (seconds)
TransitionDuration float64
// Headless runs browser in headless mode
Headless bool
// ProgressWriter receives progress updates
ProgressWriter io.Writer
// Subtitles enables simple subtitle generation from voiceover timing
Subtitles bool
// SubtitlesSTT enables word-level subtitles using speech-to-text
SubtitlesSTT bool
// SubtitlesBurn burns subtitles into video (permanent)
SubtitlesBurn bool
// SubtitleFormat is "srt" or "vtt" (default: srt)
SubtitleFormat string
// DeepgramAPIKey for STT subtitles
DeepgramAPIKey string
// NoAudio generates video without audio (TTS still used for timing/subtitles)
NoAudio bool
// Parallel is the number of concurrent segment recordings (default 1 = sequential)
Parallel int
// FastEncoding uses hardware acceleration for video encoding when available
FastEncoding bool
// SegmentLimit limits processing to first N segments (0 = no limit)
SegmentLimit int
// StepLimit limits browser segments to first N steps (0 = no limit)
StepLimit int
}
SegmentConfig holds configuration for the segment-based orchestrator.
type SegmentOrchestrator ¶ added in v0.3.0
type SegmentOrchestrator struct {
// contains filtered or unexported fields
}
SegmentOrchestrator coordinates video generation using the segment abstraction. It works with any ContentSource (transcript JSON, config YAML) and any segment type (slides, browser demos).
func NewSegmentOrchestrator ¶ added in v0.3.0
func NewSegmentOrchestrator(config SegmentConfig, ttsGen *tts.SegmentTTSGenerator) *SegmentOrchestrator
NewSegmentOrchestrator creates a new segment-based orchestrator.
Click to show internal directories.
Click to hide internal directories.