Video filters are software plug-ins that enhance the fundamental capabilities of Shotcut by producing various effects, either by modifying the pixels of the frame to which they are applied (such as the "rotate" filter), or by overlaying the scene in the frame by some other image (such as the "text" filter).
I have developed several video filters. I have also provided several user interfaces to other filters that did not have them previously. The table below gives a brief description of these and by clicking on the relevant link you will be taken to a webpage that describes and documents the filter and that contains a ZIP file which holds the filter. You can download this ZIP file and install the filter for use in Shotcut.
Namna has also developed several video filters based on Webvfx technology (don't forget this is not available on recent versions of Shotcut). He built these on top of my own WebVfx interface code and MusicalBox also contributed to this project. This team effort was made possible thanks to the Shotcut Forum. These filters are also described below and can be downloaded for use in older versions of Shotcut (see the warning above).
Filter | Description |
Text: Webvfx | Namna's: Produces colorful, highly configurable text. |
Shapes | Namna's: Produces highly configurable shapes. |
Jitter | Produces a jittery clip by replacing a number of frames with a previous one. |
Persistence | Produces a pseudo-motion blur by blending the previous frame's render with the current frame. |
JRtransition | Produces a nice transition between video clips. |
mask_simple_shape | Draws some simple shapes into the alpha channel and is intended for "in" and "out" masks in keying, non-rectangular picture-in-picture, transitions, spotlight effects etc. |
Sniperscope | Simulates a sniper (telescopic) scope. |
vertigo | Simulates vertigo or dizziness on behalf of the viewer. |
There are usually 3 software components to a filter:
ui.qml
. The name can be different as it is specified in the metadata filemeta.qml
Creating a filter requires some knowledge of programming, but not necessarily as much as you would think. There is quite a bit of useful coding that has been made available to help with this, such as the WebVfx javascript framework I put together some time ago. Also, creating the user interface is a fairly repetetive procedure, so grabbing hold of another filter's "ui.qml" and "meta.qml" files and modifying them to suit your purpose is not that complicated.
Although I used to program in C and C++ for a living, I am more confident
these days using HTML
, CSS
and Javascript
for developing new filters.
The first two languages are fairly easy to
learn and developing programs in them is very easy since they are the basis for most webpages. So you simply
write some HTML, style it with some CSS and feed it into a modern web browser, like Google Chrome. If you need to
make modifications to the code, do so then check it out again in the browser. Now you have a static webpage (you
cannot directly use CSS animations with Shotcut) that you can feed into the Overlay HTML (now renamed Text: HTML)
filter.
Let's look at such a filter which puts a date onto a transparent background to overlay the frame. The code is shown below.
However, strictly speaking this is not a filter, it is a webpage you feed into Shotcut's Overlay HTML (Text: HTML) filter. If you want to change the date you have to edit the HTML. To turn it into a filter proper you need to use Javascript and also create a user-interface (UI) to enable you to provide some options when using the Shotcut editor itself. Again, this is not as difficult as it sounds, as my new Shotcut CSS Animations Overlay HTML (Text: HTML) Filter Generator will take away a lot of the difficulty of interfacing with the UI. This genertor is still under development and is not yet available for use. Once it becomes available I shall extend this webpage to show the steps needed to change this simple webpage into a full-blown filter.
The filter will have two options that the user may provide: