fix(capture): restore proven-clean wallclock audio (match de509c6 baseline)
Removing wallclock made A/V length drift far worse (audio 11.8% long). The known-clean config used wallclock + master aresample=async=1; the leading silence is a standby backlog artifact addressed by the bridge live-edge flush + record-start audio FIFO drain, not by changing the timestamp source.
This commit is contained in:
parent
55a72af905
commit
d6b0b3a9a6
1 changed files with 5 additions and 9 deletions
|
|
@ -720,15 +720,11 @@ class CaptureManager {
|
||||||
'-video_size', fcSize,
|
'-video_size', fcSize,
|
||||||
'-framerate', fcFps,
|
'-framerate', fcFps,
|
||||||
'-i', 'pipe:0',
|
'-i', 'pipe:0',
|
||||||
// Audio FIFO → ffmpeg input 1. The bridge flushes its slot backlog to
|
// Audio FIFO → ffmpeg input 1. Wallclock timestamps + master
|
||||||
// the live edge on reader-attach, so the FIFO delivers live audio in
|
// aresample=async=1 is the proven-clean A/V config; both inputs must
|
||||||
// lockstep with the video. We DERIVE audio PTS from the s16le sample
|
// start from the live edge (see the fc_pipe + audio flush at record
|
||||||
// count starting at 0 — the SAME origin as the video's frame-0 PTS —
|
// start) so aresample has minimal correction to do.
|
||||||
// rather than from wall-clock arrival. Wall-clock stamped the first
|
'-use_wallclock_as_timestamps', '1',
|
||||||
// audio chunk at a time offset from video frame 0, and the master
|
|
||||||
// aresample then PADDED ~2.5s of leading silence to align them. With
|
|
||||||
// sample-count PTS both streams share one origin → no pad, no leading
|
|
||||||
// silence, length locked.
|
|
||||||
'-thread_queue_size', '512',
|
'-thread_queue_size', '512',
|
||||||
'-f', 's16le',
|
'-f', 's16le',
|
||||||
'-ar', '48000',
|
'-ar', '48000',
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue