Skip to content


pipe output

Register name used to load filter: pout
This filter may be automatically loaded during graph resolution.

This filter handles generic output pipes (mono-directional) in blocking mode only.

Warning: Output pipes do not currently support non blocking mode.

The associated protocol scheme is pipe:// when loaded as a generic output (e.g. -o pipe://URL where URL is a relative or absolute pipe name).
Data format of the pipe shall be specified using extension (either in filename or through ext option) or MIME type through mime
The pipe name indicated in dst can use template mechanisms from gpac, e.g. dst=pipe_$ServiceID$

On Windows hosts, the default pipe prefix is \\.\pipe\gpac\ if no prefix is set
dst=mypipe resolves in \\.\pipe\gpac\mypipe
dst=\\.\pipe\myapp\mypipe resolves in \\.\pipe\myapp\mypipe
Any destination name starting with \\ is used as is, with \ translated in /

The pipe input can create the pipe if not found using mkp. On windows hosts, this will create a pipe server.
On non windows hosts, the created pipe will delete the pipe file upon filter destruction.
The pipe can be kept alive after a broken pipe is detected using ka. This is typically used when clients crash/exits and resumes.
When a keep-alive pipe is broken, input data is discarded and the filter will keep trashing data as fast as possible.
It is therefore recommended to use this mode with real-time inputs (use a reframer if needed).
If marker is set, the string GPACPIF (8 bytes including 0-terminator) will be written to the pipe at each detected pipeline flush.
Pipeline flushing is currently triggered by DASH segment end or ISOBMF fragment end.


dst (cstr): name of destination pipe
ext (str): indicate file extension of pipe data
mime (str): indicate mime type of pipe data
dynext (bool, default: false): indicate the file extension is set by filter chain, not dst
start (dbl, default: 0.0): set playback start offset. A negative value means percent of media duration with -1 equal to duration
speed (dbl, default: 1.0): set playback speed. If negative and start is 0, start is set to -1
mkp (bool, default: false): create pipe if not found
block_size (uint, default: 5000): buffer size used to write to pipe, Windows only
ka (bool, default: false): keep pipe alive when broken pipe is detected
marker (bool, default: false): inject marker upon pipeline flush events