- Update _get_video_properties() to extract audio sample_rate, channels, and pix_fmt in addition to video properties - Add _extract_segment_reencoded() for frame-accurate cuts using re-encoding instead of stream copy (fixes keyframe-only cut limitation) - Add _create_freeze_segment_matched() to enforce source audio property matching (fixes silent pauses caused by sample rate mismatch) - Update _render_pause_insert_method() to use new methods with uniform encoding parameters - Add -video_track_timescale 90000 for consistent timebase across segments Root causes fixed: 1. -c copy could only cut at keyframes, causing audio dropouts 2. Sample rate mismatch (48kHz source vs 44.1kHz MP3) caused silent freeze-frame segments when concatenated 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| __pycache__ | ||
| audit_logger.py | ||
| emailer.py | ||
| gcs.py | ||
| gemini.py | ||
| gemini_tts.py | ||
| microsoft_auth.py | ||
| secrets_manager.py | ||
| translate.py | ||
| tts.py | ||
| validation.py | ||
| video_renderer.py | ||
| vtt_retimer.py | ||
| websocket.py | ||
| websocket_publisher.py | ||