Nodes/Framerate Converter/Verify A/V Sync
ComfyUI Node

Verify A/V Sync

Verify A/V Sync — the answer to 'did the audio stay in sync?'

By LaserDog80·Created 4 months ago·Updated 4 months ago· 0
Verify A/V Sync
    • passed
    • message
    video_path
    duration_tolerance0.05
    start_tolerance0.010

    Audio drift is the most insidious failure mode in video conversion. A 24→25 fps speed change that mangles the soundtrack doesn't fail loudly - the file plays, looks fine, and then the music comes in a quarter-second late on every cut. Verify A/V Sync is the node in the Framerate Converter pack (Trope Tools, TropeMedia) that catches this automatically instead of leaving it to your ears.

    It's part of the "Verify" group, and it does something fairly clever for a check that looks simple: it compares the duration and start time of the video and audio streams in the output file. If the video stream is a different length than the audio stream, or they start at different points, something's out of sync.

    Inputs

    • video_path - the file to check, typically the output of a conversion.
    • duration_tolerance - how much the stream lengths may differ, default 0.05s.
    • start_tolerance - how far apart the stream start times may be, default 0.01s.

    The outputs

    • passed (BOOLEAN) - the verdict.
    • message (STRING) - a per-stream breakdown of what it compared:
    PASS: Durations match - video=115.200s, audio=115.203s (diff=0.003s)
    

    Two details worth knowing. First, if the file has no audio stream, it passes with a "sync check skipped" note rather than failing - silent video isn't out of sync, it's just quiet. Second, it only checks the stream container timestamps, which is exactly the right thing to check after a conversion: a mismatched duration between streams is the signature of an audio pipeline that ran at the wrong speed.

    Install

    Standard pack install: ComfyUI Manager → Trope Tools - Framerate Converter, or git clone https://github.com/LaserDog80/ComfyUI-FramerateConverter into custom_nodes/ and restart. Uses the system ffprobe binary.

    Where it fits: after a speed-change conversion, run this alongside Verify FPS as your "did the output survive?" gate. And if it does fail, the pack's own guidance applies - switch to preserve_pitch audio mode, and if sync still drifts, your source is probably variable framerate. Run Detect VFR to confirm, normalize to CFR, and convert again. The verify nodes aren't there to be pretty; they're there to catch the silent failures before they reach a client.

    CategoryTrope Tools/Framerate Converter/Verify

    Inputs (3)

    NameTypeDefaultDescription
    video_pathSTRING
    duration_toleranceoptFLOAT0.050–1
    start_toleranceoptFLOAT0.0100–1

    Outputs (2)

    NameTypeDescription
    passedBOOLEAN
    messageSTRING