Jump to content

Filter graph

From Wikipedia, the free encyclopedia
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

A filter graph is used in multimedia processing - for example, to capture video from a webcam. Filters take input, process it (or change the input), and then output the processed data. For example: a video codec takes raw uncompressed video and compresses it using a video standard such as H.264. To compress a multimedia stream a filter graph could have two inputs:

  1. Audio
  2. Video

Usually these are expressed as file sources. The file sources would feed compression filters, the output of the compression filters would feed into a multiplexer that would combine the two inputs and produce a single output. (An example of a multiplexer would be an MPEG transport stream creator.) Finally the multiplexer output feeds into a file sink, which would create a file from the output.

GStreamer example of a filter graph.

A filter graph in multimedia processing is a directed graph. Edges represent one-way data flow and nodes represent a data-processing step. Pins or pads identify the connection points between nodes and edges.

Example of programs that use filter graphs

  • GStreamer - Linux based multimedia framework. In Gstreamer a filter is called an element. Filter graphs can be built with the GStreamer Editor.
  • GraphEdit - Microsoft tool for building filter graphs
  • GraphStudioNext - an open source tool to build and debug DirectShow filter graphs, replacement for GraphEdit
  • DirectShow - Windows based multimedia framework.
  • GraphEditPlus - a free tool for building DirectShow filter graphs and generating C++ source code for them.
  • Harpia - a graphic interface for learning, implementation and management of vision systems

See also

Explanation of filter graph in DirectShow article: DirectShow#Architecture

DirectShow