-
Notifications
You must be signed in to change notification settings - Fork 77
Video Filters
This page is commom for both video postprocessors (receiver) and capture filters (sender). Although both classes are implemented separately, most of the filters is shared and can be used both as capture filter and video postprocessor.
Video postprocessors can modify incoming video in several ways. Example usage is following:
uv -p <postprocessor> -d gl
Eg.;
uv -p "text:My text"
to annotate incoming video with a text "My text". Capture filter command will then look like:
uv -F <postprocessor> -t <capture>
uv -F "text:My text" -t dummy
You can enumerate available video filters with following commands:
uv -F help
uv -p help
For individual modules, it is advisable to look directly to the module command-line documentation, this page is meant merely as an overview, eg.:
uv -F add_frame:help
Available filters:
- add_frame
- blank (capture filter only)
- border
- change_pixfmt
- color
- crop
- deinterlace
- deinterlace_blend
- deinterlace_bob
- deinterlace_linear
- delay (pp only)
- double_framerate
- dummy
- every
- flip
- gamma
- grayscale
- interlace
- interlaced_3d (pp only)
- logo (capture filter only)
- matrix
- matrix2
- mirror
- noise (capture filter only)
- override_prop
- rate_limit (capture filter only)
- resize
- scale
- split
- temporal_3d
- text
Use for frame stuffing, eg. 25p->50p or 50p->60p
Although both CF and VOPP name the same, those are actually separate implementations.
Clears the input with a single color.
Border postprocessor allows you to add color border around incoming video. Examples:
uv -p border -d gl
Borders video with default parameters.
uv -p border:color=#ff0000:width=20==8
Creates 8 pixel red border.
pixel format change
[development only] Computes central color statistic (print on console).
frame cropping
simple linear deinterlace (blend) -> from 50i makes 25p (no temporal change, except of both fields are presnted at one time)
alias for deinterlace (pp only)
field doubler - every field line is doubled, achieves 50p from 50i
correlates with: deinterlace_linear, double_framerate
deinterlacer doubles every field to full resolution by interpolating missing lines
correlates with: deinterlace_bob, double_framerate
Delays incomming video frame by given number of seconds or frames.
The granularity is adjusted to multpiles of frames, so no slight timing adjustnment
like 10 ms possible. This can be achieved with --audio-delay -10 instead, anyways.
linear deinterlace but combining temporarily fields producing 50p signal from 50i
may be combined with blending when :d option added
correlates with: deinterlace_bob, deinterlace_linear
dummy (pass) filter
drops evern nth frame, a fraction may be given
This can be eg used for 60p->50p or 60p->30p conversion.
related: every
vertical flip
image gamma manipulation
makes the image grayscale
creates interlaced picture form progressive by dropping lines, eg. 50p->50i
merges left and right eye into line-interleaved 3D
draws PAM (with alpha) over the video
do matrix operation on pixel triplet
do matrix operation on YCbCr color spaces, namely conversion between color spaces (601 to 709 or similar)
horizontal picture mirror
add white noise to the image
Mostly for development.
Override the video preferences without altering the data.
Use with caution - mostly useful eg to change interlaced/progressive scan.
Rate limts the video frame, eg. if received frame arives earlier than its frame time, it is dropped.
relates to: every
resize image using OpenCV
supported pixel formats: RGB, RGBA, I420, UYVY, YUYV, RG48
resize image using OpenGL (only RGB and UYVY)
splits image into multiple tiles
There are just special use cases for this - eg. split side-by-side 3D (or top-bottom) or eg. split to tiles to allow parallel compression if the codec scales poorly.
combines 2 temporarily interleaved 3D frames (eyes) into single, 2 tile stream
Note: This module is currently experimental. Requires MagickWand. You can add text to received video using text video postprocess filter. Usage is simply:
uv -d gl -p text:<your_text> <sender_address>
If your text contains spaces, you can enclose entire argument with apostrophes:
uv -d gl -p "text:Your text with spaces" <sender_address>
If you have any technical or non-technical question or suggestion please feel free to contact us at