Nodes/Symbiotica/NS Get Video Components
ComfyUI Node

NS Get Video Components

Pull audio and fps out of a video without decoding frames

By symbiotica-ai·Created 6 months ago·Updated about 12 hours ago· 2
NS Get Video Components
  • video
  • video
  • audio
  • fps

Video in ComfyUI is awkward: you often have a VIDEO but what you actually need is its audio track, or its frame rate, to feed another node. NS Get Video Components splits a VIDEO into those parts. It's the "take it apart" half of a utility pair in symbiotica-ai/comfyui-nodes - NSCreate Video is the "put it back together" half.

The name is a nod to ComfyUI's own Get Video Components, with a deliberate difference: that one outputs image frames; this one outputs the VIDEO itself plus audio and fps. It's for the case where you want the file-level parts, not the pixels.

What you get

One input: video. Three outputs:

  • video - the same video, passed through. Keeps the node useful in a chain without breaking a wire.
  • audio - the extracted audio as an AUDIO dict (44.1kHz stereo WAV). This is the output you're probably here for: feed it to an audio node, a transcription pipeline, or back into NSCreate Video.
  • fps - the frame rate as a FLOAT, read off the video stream via ffprobe.

The mechanism is straightforward: the video is written to a temp file, ffprobe reads the real r_frame_rate, and ffmpeg extracts the audio to a WAV that's loaded into an AUDIO tensor. No frame decoding, so it's fast even on long clips.

How it fits

The natural pattern is a round trip: get the audio out of a video, process it (transcribe it, re-time it, duck it), then NSCreate Video muxes it back onto the video - optionally at a different fps. It's also the sensible first step before any caption pipeline that needs to know what was actually said, since you can hand the extracted audio to a transcription node that takes audio rather than video.

Install

Ships with symbiotica-ai/comfyui-nodes (ComfyUI Manager search "Symbiotica", or clone + pip install -r requirements.txt). Needs ffmpeg/ffprobe on PATH. No API key. Restart after install.

Gotchas

If the source has no audio stream, the node doesn't fail - it returns an empty silence track and prints a note. That's friendlier than an error, but it means "no audio" and "silent audio" are indistinguishable downstream, so check your source if you were expecting sound. And the audio is decoded to 44.1kHz stereo regardless of source, so a 48kHz mixdown gets resampled - usually fine, but don't use this node when you need to preserve the original sample rate exactly (that's a muxing job, not an extraction job).

Categoryneuralsins/Video

Inputs (1)

NameTypeDefaultDescription
videoVIDEO

Outputs (3)

NameTypeDescription
videoVIDEO
audioAUDIO
fpsFLOAT