Nodes/ComfyUI RTX Video Suite/πŸ”Š RTX Audio Muxer (Instant)
ComfyUI Node

πŸ”Š RTX Audio Muxer (Instant)

Put audio on a video without re-encoding it β€” in milliseconds

By uczensokratesaΒ·Created 6 months agoΒ·Updated 5 months agoΒ· 9
πŸ”Š RTX Audio Muxer (Instant)
  • audio
  • final_video_path
β—„video_pathβ€”β–Ί
β—„filename_prefixRTX_Muxedβ–Ί
β—„audio_volume1.0β–Ί
β—„audio_delay_sec0.00β–Ί
β—„audio_pathβ€”β–Ί

FFmpeg has a flag called -c:v copy, and this node is basically a friendly wrapper around it. It takes your freshly upscaled video, injects a soundtrack, and does it in milliseconds - because it never touches the video data at all. The video stream is copied byte-for-byte, so the RTX upscale quality is exactly what you rendered, not a second-generation re-encode.

It's from the ComfyUI-RTX-Video-Suite pack, and it's the tool you reach for after an upscale when the result is silent and you want music, narration, or a cleaned-up track on it.

How it works

The mechanism is a hand-built FFmpeg command. The video goes in untouched (-c:v copy), the audio is encoded to AAC (cheap, and far less risky than re-encoding video), the streams are mapped separately, and -shortest cuts to whichever stream ends first. Two of the inputs are then applied as FFmpeg filters:

  • audio_volume (0.0 to 10.0, default 1.0) becomes volume=N. Doubling or halving a track is one filter.
  • audio_delay_sec (Β±10 seconds) becomes an -itsoffset on whichever input needs shifting. Positive delays the audio, negative advances it - handy when a voiceover is a few frames off.

You give it audio one of two ways. Connect a raw AUDIO tensor (from something like an audio separator or a load-audio node) and the node writes it to a temp WAV with torchaudio, muxes it, then deletes the temp file. Or connect audio_path - a plain path to an existing .mp3 or .wav - and it uses that file directly.

The inputs and outputs that matter

  • video_path (required) - the upscaled video. It has to be a saved file on disk, not raw IMAGE tensors; the tooltip says so and it means it.
  • audio (optional AUDIO tensor) or audio_path (optional STRING) - provide one. Here's the gotcha: if you provide neither, the node doesn't error. It prints a warning and passes the video through untouched, returning the original path. If you wired everything up and got your input back unchanged, this is why.
  • filename_prefix (default RTX_Muxed) - the output lands in output/rtx_muxed/ as <prefix>_<timestamp>.mp4, so you don't have to worry about collisions.
  • final_video_path (STRING output) - the path of the muxed file, ready to feed a video player node or a saver.

Installing it

Part of ComfyUI-RTX-Video-Suite, so: ComfyUI Manager (search the pack title) or

cd ComfyUI/custom_nodes
git clone https://github.com/uczensokratesa/ComfyUI-RTX-Video-Suite.git

then restart. This node does not need the NVIDIA VFX SDK - it's pure FFmpeg. What it absolutely does need is FFmpeg installed and on your PATH. Check with:

ffmpeg -version

If that returns nothing, install FFmpeg (winget on Windows, your package manager elsewhere) and restart ComfyUI.

Common issues

  • FFmpeg errors on mux - usually a missing or broken FFmpeg install. The node catches the error and falls back to returning the original video path, so watch the console for the [RTX Muxer] FFmpeg Error line.
  • No audio comes through - you forgot to connect audio or audio_path, or the file path is wrong. Remember the silent passthrough.
  • You wanted the video's own audio kept - this isn't the node for that. That's the keep_audio / add_audio toggle on the RTX upscale nodes, which stream-copies the original audio and subtitles during the upscale itself. This muxer is for adding a different soundtrack on top.

The delay and volume controls cap at sane ranges, so the main way to mess this up is expecting it to be the "keep the original audio" node. It's not. It's the instant soundtrack-injector - and for that job, nothing else in the pack is faster.

CategoryRTX Video Suite

Inputs (6)

NameTypeDefaultDescription
video_pathSTRINGPath to the source video file (Must be a saved file, not raw IMAGE tensors)
filename_prefixSTRINGRTX_MuxedPrefix for the output file. Timestamp will be added automatically.
audio_volumeFLOAT1.00–101.0 is original volume. 2.0 is double volume, 0.5 is half.
audio_delay_secFLOAT0.00-10–10Positive values delay the audio. Negative values advance the audio.
audiooptAUDIOConnect raw AUDIO output from nodes like Audio Separator
audio_pathoptSTRINGOr connect a string path to an existing audio file

Outputs (1)

NameTypeDescription
final_video_pathSTRINGβ€”