mirror of
https://github.com/webadderallorg/Recordly.git
synced 2026-10-01 02:05:34 +00:00
fix: always apply aresample sync filter and tighten audio sync tolerances
- Always route audio through aresample=async=1:first_pts=0 filter during muxing on both macOS and Windows, even when duration delta is small. Previously skipped when delta ≤50ms, which left progressive clock drift (from CPU load) completely uncorrected. - Lower sync detection threshold from 50ms to 20ms so tempo correction kicks in earlier. - Use explicit 48kHz AudioContext sample rate in both browser recording and export rendering to prevent sample rate mismatch drift. - Reduce MediaRecorder timeslice from 1000ms to 250ms to reduce chunk loss under CPU pressure. - Tighten export audio sync: seek threshold 300ms→150ms, tolerance 15ms→8ms, correction window 2s→0.5s, max adjustment ±8%→±12%. - Lower companion audio start delay threshold from 50ms to 25ms.
This commit is contained in:
@@ -18,7 +18,7 @@ const HIGH_FRAME_RATE_BOOST = 1.7;
|
||||
const DEFAULT_WIDTH = 1920;
|
||||
const DEFAULT_HEIGHT = 1080;
|
||||
const CODEC_ALIGNMENT = 2;
|
||||
const RECORDER_TIMESLICE_MS = 1000;
|
||||
const RECORDER_TIMESLICE_MS = 250;
|
||||
const BITS_PER_MEGABIT = 1_000_000;
|
||||
const MIN_FRAME_RATE = 30;
|
||||
const CHROME_MEDIA_SOURCE = "desktop";
|
||||
@@ -1090,7 +1090,7 @@ export function useScreenRecorder(): UseScreenRecorderReturn {
|
||||
const micAudioTrack = microphoneStream.current?.getAudioTracks()[0];
|
||||
|
||||
if (systemAudioTrack && micAudioTrack) {
|
||||
const context = new AudioContext();
|
||||
const context = new AudioContext({ sampleRate: 48000 });
|
||||
mixingContext.current = context;
|
||||
const systemSource = context.createMediaStreamSource(
|
||||
new MediaStream([systemAudioTrack]),
|
||||
|
||||
Reference in New Issue
Block a user