Skip to content


Video output

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

This filter displays a single visual input PID in a window.
The window is created unless a window handle (HWND, xWindow, etc) is indicated in the config file ( [Temp]OSWnd=ptr).
The output uses GPAC video output module indicated in drv option or in the config file (see GPAC core help).
The video output module can be further configured (see GPAC core help).
The filter can use OpenGL or 2D blit of the graphics card, depending on the OS support.
The filter can be used do dump frames as written by the graphics card (GPU read-back) using dumpframes.
In this case, the window is not visible and only the listed frames are drawn to the GPU.
The pixel format of the dumped frame is always RGB in OpenGL and matches the video backbuffer format in 2D mode.


drv (cstr): video driver name
vsync (bool, default: true): enable video screen sync
drop (bool, default: false, updatable): enable dropping late frames
disp (enum, default: gl): display mode
gl: OpenGL
pbo: OpenGL with PBO
blit: 2D hardware blit
soft: software blit

start (dbl, default: 0.0, updatable): set playback start offset. A negative value means percent of media duration with -1 equal to duration
dur (lfrac, default: 0): only play the specified duration
speed (dbl, default: 1.0, updatable): set playback speed when vsync is on. If speed is negative and start is 0, start is set to -1
hold (dbl, default: 1.0): number of seconds to hold display for single-frame streams (a negative value force a hold on last frame for single or multi-frames streams)
linear (bool, default: false): use linear filtering instead of nearest pixel for GL mode
back (uint, default: 0x808080): back color for transparent images
wsize (v2di, default: -1x-1): default init window size
- 0x0 holds the window size of the first frame
- negative values indicate video media size

wpos (v2di, default: -1x-1): default position (0,0 top-left)
vdelay (frac, default: 0, updatable): set delay in sec, positive value displays after audio clock
hide (bool, default: false): hide output window
fullscreen (bool, default: false, updatable): use fullscreen
buffer (uint, default: 100): set playout buffer in ms
mbuffer (uint, default: 0): set max buffer occupancy in ms. If less than buffer, use buffer
rbuffer (uint, default: 0, updatable): rebuffer trigger in ms. If 0 or more than buffer, disable rebuffering
dumpframes (uintl): ordered list of frames to dump, 1 being first frame. Special value 0 means dump all frames
out (str, default: dump): radical of dump frame filenames. If no extension provided, frames are exported as $OUT_%d.PFMT
async (bool, default: true): sync video to audio output if any
owsize (v2di): output window size (readonly)
buffer_done (bool): buffer done indication (readonly)
rebuffer (luint): system time in us at which last rebuffer started, 0 if not rebuffering (readonly)
vjs (bool, default: true): use default JS script for vout control
media_offset (dbl, default: 0): media offset (substract this value to CTS to get media time - readonly)
wid (uint, default: 0): window id (readonly)
vflip (enum, default: no, updatable): flip video (GL only)
no: no flipping
v: vertical flip
h: horizontal flip
vh: horizontal and vertical
* hv: same as vh

vrot (enum, default: 0, updatable): rotate video by given angle
0: no rotation
90: rotate 90 degree counter clockwise
180: rotate 180 degree
270: rotate 90 degree clockwise