The main filter_complex graph builder.
const g = new FilterGraph();// Scale the main videoconst [v] = g.from('[0:v]').scale(1280, 720).out('scaled');// Prepare audio: normalize + fade inconst [a] = g.from('[0:a]').loudnorm(23, 7, -2).out('audio');// Build final filter_complex stringconsole.log(g.toString());// → "[0:v]scale=1280:720[scaled];[0:a]loudnorm=i=23:lra=7:tp=-2[audio]" Copy
const g = new FilterGraph();// Scale the main videoconst [v] = g.from('[0:v]').scale(1280, 720).out('scaled');// Prepare audio: normalize + fade inconst [a] = g.from('[0:a]').loudnorm(23, 7, -2).out('audio');// Build final filter_complex stringconsole.log(g.toString());// → "[0:v]scale=1280:720[scaled];[0:a]loudnorm=i=23:lra=7:tp=-2[audio]"
How many links are in the graph
Start building a filter chain from one or more input stream refs.
g.from('[0:v]') // from input 0 video Copy
g.from('[0:v]') // from input 0 video
g.from('[logo]') // from a previously labeled stream Copy
g.from('[logo]') // from a previously labeled stream
Start building a multi-input filter (overlay, amerge, concat…).
Serialize the complete filter_complex string (semicolon-separated links).
The main filter_complex graph builder.
Example