Search code examples
ffmpeg

What does A->A and VV->V etc. mean in the `ffmpeg -filters` command output?


I am seeing this:

Filters:
  T.. = Timeline support
  .S. = Slice threading
  ..C = Command support
  A = Audio input/output
  V = Video input/output
  N = Dynamic number and/or type of input/output
  | = Source or sink filter
... abench            A->A       Benchmark part of a filtergraph.
..C acompressor       A->A       Audio compressor.
... acontrast         A->A       Simple audio dynamic range compression/expansion filter.
... acopy             A->A       Copy the input audio unchanged to the output.
... acue              A->A       Delay filtering to match a cue.
... acrossfade        AA->A      Cross fade two input audio streams.
...
TSC colormap          VVV->V     Apply custom Color Maps to video stream.
TS. colormatrix       V->V       Convert color matrix.
TS. colorspace        V->V       Convert between colorspaces.
TSC colortemperature  V->V       Adjust color temperature of video.
TSC convolution       V->V       Apply convolution filter.
TS. convolve          VV->V      Convolve first video stream with second video stream.
...

A few questions:

  1. What does this part of the filters intro mean?

     A = Audio input/output
     V = Video input/output
     N = Dynamic number and/or type of input/output
     | = Source or sink filter
    
  2. What does the A->A and VVV->V (and any combination of 1+ A or 1+ V) mean?

  3. Where do the N and | show up, I don't see it anywhere...

I am hoping to convert this CLI data output to JSON, but don't know what those mean.


Solution

  • A->A means the filter takes in one audio input stream and emits one audio stream.

    VVV->V means the filter takes in three video input streams and emits one video stream.

    The amix filter has N->A which means it takes in a dynamic number of inputs and emits one audio output stream.

    The concat filter has N->N which means dynamic number of inputs and dynamic number of outputs.

    The avsynctest filter has |->AV which means it generates its input and emits 1 video + 1 audio stream.

    nullsink filter has V->| which means it takes in one video input stream and flushes it to null. Useful when a stream is required as a reference but has no further use.