Subtitle Styling
Subtitles are configured inComponents/Subtitles.py. The TextClip configuration (lines 50-59) controls all visual aspects of the captions.
Font Configuration
Font Parameters
Font Parameters
- font:
'Franklin-Gothic'- Change to any system font - fontsize: Dynamic, calculated as
int(video.h * 0.065)(~6.5% of video height)- 1080p videos → 70px
- 720p videos → 47px
- color:
'#2699ff'- Hex color code for text (default: blue) - stroke_color:
'black'- Outline color - stroke_width:
2- Outline thickness in pixels
List Available Fonts
To see which fonts are available on your system:Positioning and Margins
Subtitle position is set at line 62:Components/Subtitles.py:62
- Horizontal:
'center'- Centered on screen - Vertical:
video.h - txt_clip.h - 100- 100px from bottom - Width margins:
video.w - 100- 50px margin on each side (line 58)
Highlight Selection Criteria
The AI highlight selection logic is inComponents/LanguageTasks.py. You can customize what the AI considers “interesting.”
System Prompt
Edit thesystem variable (lines 27-43) to change selection criteria:
Model and Temperature
Configure the OpenAI model in theGetHighlight function (lines 56-60):
Components/LanguageTasks.py:56-60
Configuration Options
Configuration Options
- model:
"gpt-4o-mini"- Available models:gpt-4o-mini- Fast and cost-effective (default)gpt-4o- More capable, higher costgpt-3.5-turbo- Fastest, lowest cost
- temperature:
1.0- Controls randomness (0.0 = deterministic, 2.0 = very creative)- Lower (0.3-0.7): More consistent, predictable selections
- Higher (1.0-1.5): More varied, creative selections
Motion Tracking Behavior
Motion tracking for screen recordings is configured inComponents/FaceCrop.py.
Update Frequency
Control how often the crop position updates (lines 99-101):Components/FaceCrop.py:99-101
Smoothing Factor
Adjust position smoothing at line 136:Components/FaceCrop.py:136
Smoothing Values
Smoothing Values
- 0.90 / 0.10: Default - Very smooth, gradual movement
- 0.80 / 0.20: Faster response, slightly less smooth
- 0.95 / 0.05: Extremely smooth, slower response
- Formula:
(previous_weight * old_position) + (new_weight * new_position)
Motion Threshold
Set minimum motion to trigger tracking (line 123):Components/FaceCrop.py:123
Higher values (3.0-5.0) ignore subtle movements. Lower values (1.0-2.0) track more sensitively. Default
2.0 works well for most screen recordings.Face Detection Sensitivity
Face detection parameters are inComponents/FaceCrop.py at line 40:
Components/FaceCrop.py:40
scaleFactor: 1.1
Image scale reduction at each detection pass. Smaller values (1.05) detect more faces but slower. Larger values (1.3) are faster but may miss faces.
minNeighbors: 8
Minimum neighbors required for detection. Higher values reduce false positives:
- 5-7: More sensitive, may detect non-faces
- 8-10: Balanced (default: 8)
- 11-15: Very strict, may miss some faces
Video Quality Settings
Video encoding parameters are set in two locations:Subtitle Output Quality
InComponents/Subtitles.py (lines 73-80):
Components/Subtitles.py:73-80
Final Video Quality
InComponents/FaceCrop.py (line 194):
Components/FaceCrop.py:194
Quality Parameters
Quality Parameters
Bitrate (
bitrate='3000k'):2000k- Lower quality, smaller files3000k- Balanced (default)5000k- High quality, larger files8000k+- Very high quality for 1080p
preset='medium'):ultrafast- Fastest encoding, largest filesfast- Quick encoding, larger filesmedium- Balanced (default)slow- Slower encoding, better compressionveryslow- Best compression, slowest encoding
Example: Custom Configuration
Here’s a complete example of customizing multiple parameters:- Aggressive Tracking
- High Quality Output
- Custom Subtitles
Components/FaceCrop.py
After making changes to any Python files, restart the application for changes to take effect. No reinstallation of packages is needed.
