# [wide.video](https://wide.video) - [About wide.video](#about-widevideo) - [Features](#features) - [Resources](#resources) - [Social Media & Platforms](#social-media--platforms) - [Open Source Software Notices](#open-source-software-notices) - [About FFmpeg](#about-ffmpeg) - [Buy Me a Coffee](#buy-me-a-coffee) - [Support with Credit Card](#support-with-credit-card) - [Support with Credit Card](#support-with-credit-card-1) - [Core Concepts](#core-concepts) - [Project](#project) - [Media](#media) - [Presentation](#presentation) - [Scene](#scene) - [Layer](#layer) - [Clip](#clip) - [Filter](#filter) - [Supported Formats](#supported-formats) - [Audio](#audio) - [Video](#video) - [Formats](#formats) - [Filters](#filters) - [Basic Transition](#basic-transition) - [Blur](#blur) - [Captions Optimizer](#captions-optimizer) - [Captions Speaker](#captions-speaker) - [Censor](#censor) - [Color Correction](#color-correction) - [Colorkey](#colorkey) - [Curves](#curves) - [Drop Shadow](#drop-shadow) - [Fill Borders & Vignette](#fill-borders--vignette) - [Flip](#flip) - [Glitch 1](#glitch-1) - [Glitch 2](#glitch-2) - [Gradient Fill](#gradient-fill) - [Grain](#grain) - [Invert](#invert) - [Load](#load) - [LUT](#lut) - [Magnify](#magnify) - [Mask](#mask) - [Motion Blur](#motion-blur) - [Noise Reduction](#noise-reduction) - [Opacity](#opacity) - [Outline](#outline) - [Pixelate](#pixelate) - [Position](#position) - [Progress Bar](#progress-bar) - [Radial Zoom Blur](#radial-zoom-blur) - [Repeat](#repeat) - [Rounded Corners](#rounded-corners) - [Shader](#shader) - [Shader Compatibility FragCoord.xyz](#shader-compatibility-fragcoordxyz) - [Shader Compatibility Paper](#shader-compatibility-paper) - [Shader Compatibility Shadertoy.com](#shader-compatibility-shadertoycom) - [Speed](#speed) - [Start Time](#start-time) - [Text Animation](#text-animation) - [Text Postprocess](#text-postprocess) - [Transform](#transform) - [Unsharp Mask](#unsharp-mask) - [Video Stabilizer](#video-stabilizer) - [Volume](#volume) - [Waveform](#waveform) - [Zoom](#zoom) - [Smart Tools](#smart-tools) - [Auto Tag](#auto-tag) - [Background Remover](#background-remover) - [Auto Captions](#auto-captions) - [Composer](#composer) - [Image Upscaler](#image-upscaler) - [Media Converter](#media-converter) - [Multicam Synchronization](#multicam-synchronization) - [Music & SFX Generation](#music--sfx-generation) - [Noise Reduction](#noise-reduction-1) - [Object Detector](#object-detector) - [Proxy Generator](#proxy-generator) - [Silence Remover](#silence-remover) - [Text-based Editing](#text-based-editing) - [Text to Speech](#text-to-speech) - [Video Enhancer](#video-enhancer) - [Video Stabilizer](#video-stabilizer-1) - [Other Features](#other-features) - [Media Manager](#media-manager) - [Import From Project](#import-from-project) - [No Installs Or Uploads](#no-installs-or-uploads) - [Cross-Platform](#cross-platform) - [Unlimited Setup & Compositions](#unlimited-setup--compositions) - [No Signup, Fees Or Watermarks](#no-signup-fees-or-watermarks) - [Free Stock Media](#free-stock-media) - [Video Tutorials](#video-tutorials) - [Getting Started with wide.video](#getting-started-with-widevideo) - [Creating & Working With Clips](#creating--working-with-clips) - [Timeline Tips and Tricks](#timeline-tips-and-tricks) - [Using Preview Panel](#using-preview-panel) - [One-Click Video Compositions](#one-click-video-compositions) - [Mastering Captions in wide.video](#mastering-captions-in-widevideo) - [Slideshow in 30 Seconds](#slideshow-in-30-seconds) - [Import From Project](#import-from-project-1) - [Multicam Synchronization](#multicam-synchronization-1) - [Background Remover](#background-remover-1) - [Color Correction](#color-correction-1) - [Mask](#mask-1) - [Zoom](#zoom-1) - [How to Create a Light Wrap Effect](#how-to-create-a-light-wrap-effect) - [Media Manager](#media-manager-1) - [Frequently Asked Questions](#frequently-asked-questions) ## About wide.video **wide.video** is a free, privacy-first online video editor. Edit HD or 4K video locally with **AI Captions**, **Background Removal**, and **Smooth Motion**. No server uploads, no signups. 1.7.12 ### Features - **No Installs Or Uploads** - wide.video is a browser-based application and runs locally on your computer. You can access all of the media from your file system, without any need of cloud server communication or uploads. - **Cross-Platform** - Start video editing on your Mac, PC or Chromebook with ease while using your preferred web browser. - **Unlimited Setup & Compositions** - Full HD, 4K, portrait, landscape or square? 60 or 120 FPS. Use as many layers as you need for graphics, background videos, audio tracks. - **No Signup, Fees Or Watermarks** - Enjoy 100% free service, without paywalls or ads. No logins, no passwords required. - **Free Stock Media** - Search and use royalty free stock videos, images and motion graphics. ### Resources - [Privacy Policy](https://wide.video/privacypolicy.html) - [Documentation](https://wide.video/docs/) - [llms.txt](https://wide.video/docs/llms.txt) ### Social Media & Platforms Engage with us on [X](https://x.com/wide_video), [Bluesky](https://bsky.app/profile/widevideo.bsky.social), [Discord](https://discord.gg/Q54kW97yj5), [Facebook](https://www.facebook.com/fb.wide.video), [Instagram](https://www.instagram.com/wide.video_editor/), [LinkedIn](https://www.linkedin.com/company/widevideo), [Mastodon](https://hachyderm.io/@widevideo), [Reddit](https://www.reddit.com/r/widevideo), [Threads](https://www.threads.com/@wide.video_editor), [TikTok](https://www.tiktok.com/@wide.video), [WSocial](https://wsocial.eu/profile/widevideo.wsocial.eu) or [YouTube](https://www.youtube.com/@wide-video). Get it on [Google Play](https://play.google.com/store/apps/details?id=video.wide.twa), [Microsoft Store](https://apps.microsoft.com/detail/9PFH4CH1TTCF), [Chrome Web Store](https://chromewebstore.google.com/detail/widevideo/iknmmehfdgalgcoochimadmdpacikojd) or [Puter](https://puter.com/app/widevideo). ### Open Source Software Notices The wide.video software may contain one or more of the following items of open source software supplied by third-party licensors: [BEN2](https://huggingface.co/wide-video/BEN2-v1.0.0/blob/main/README.md), [BRIA Background Removal](https://huggingface.co/wide-video/rmbg-v1.0.0/blob/main/README.md), [DeepFilterNet](https://github.com/wide-video/DeepFilterNet/blob/main/LICENSE), [ECCV2022-RIFE](https://github.com/wide-video/ECCV2022-RIFE/blob/main/LICENSE), [Emscripten](https://github.com/wide-video/emscripten/blob/main/LICENSE), [FFmpeg](https://github.com/wide-video/ffmpeg/blob/master/COPYING.LGPLv3), [AOM](https://github.com/wide-video/aom/blob/wide.video/LICENSE), [Kvazaar](https://github.com/wide-video/kvazaar/blob/wide.video/LICENSE), [LAME](https://github.com/wide-video/lame/blob/wide.video/COPYING), [libsndfile](https://github.com/wide-video/libsndfile/blob/wide.video/COPYING), [libsamplerate](https://github.com/wide-video/libsamplerate/blob/wide.video/COPYING), [Ogg](https://github.com/wide-video/ogg/blob/wide.video/COPYING), [OpenH264](https://github.com/wide-video/openh264/blob/wide.video/LICENSE), [Opus](https://github.com/wide-video/opus/blob/wide.video/COPYING), [SVT-AV1](https://github.com/wide-video/svtav1/blob/wide.video/LICENSE.md), [Theora](https://github.com/wide-video/theora/blob/wide.video/COPYING), [Vorbis](https://github.com/wide-video/vorbis/blob/wide.video/COPYING), [WebM](https://github.com/wide-video/libvpx/blob/wide.video/LICENSE), [WebP](https://github.com/wide-video/libwebp/blob/wide.video/COPYING), [Kokoro](https://huggingface.co/wide-video/Kokoro-82M-v1.0-ONNX/blob/main/README.md), [lottie-web](https://github.com/wide-video/lottie-web/blob/wide.video/LICENSE.md), [Marked](https://github.com/wide-video/marked/blob/master/LICENSE.md), [Mediabunny](https://github.com/wide-video/mediabunny/blob/main/LICENSE), [open-image-models](https://github.com/wide-video/open-image-models/blob/main/LICENSE), [Piper](https://github.com/wide-video/piper/blob/wide.video/LICENSE.md), [Real-ESRGAN](https://github.com/wide-video/Real-ESRGAN/blob/master/LICENSE), [rive-wasm](https://github.com/wide-video/rive-wasm/blob/wide.video/LICENSE), [rnnoise-models](https://github.com/wide-video/rnnoise-models/blob/master/README.md), [Stable Audio 3](https://huggingface.co/wide-video/stable-audio-3-small-sfx-v1.0.0/blob/main/LICENSE.md), [UltraFace](https://github.com/wide-video/Ultra-Light-Fast-Generic-Face-Detector-1MB/blob/master/LICENSE), [Wespeaker](https://github.com/wide-video/wespeaker/blob/master/LICENSE), [Whisper](https://github.com/openai/whisper/blob/main/LICENSE), [YOLO](https://github.com/ultralytics/ultralytics/blob/main/LICENSE) ## About FFmpeg This software uses code of [FFmpeg](https://ffmpeg.org) licensed under the [LGPLv3](https://github.com/wide-video/ffmpeg/blob/master/COPYING.LGPLv3) and its source can be downloaded [here](https://github.com/wide-video/ffmpeg) ([demo](https://cdn.wide.video/ffmpeg/0.11.6/)). ## Buy Me a Coffee Thank you for your support! Your contribution helps improve wide.video and bring even more awesome features. ### Support with Credit Card [buymeacoffee.com/jozefchutka](https://buymeacoffee.com/jozefchutka) ### Support with Credit Card [revolut.me/jozefchutka](https://revolut.me/jozefchutka) ## Core Concepts This section explains the concepts used throughout the app and how they relate to each other. It defines the meaning of the terms used in the documentation and describes the conceptual structure of a project. ### Project A Project is the complete editing environment for a video. A project can contain: - media used by the project - scene and layers - clips placed in layers - filters and effects - project settings - fonts, shaders, and other project resources A project describes the complete editable state of a video rather than only the final exported file. The app supports _“standard projects”_ and _“Temporary (virtual) project”_. A _“standard project”_ is associated with a directory on the local filesystem. Its media can therefore be stored and referenced as regular local files. A _“Temporary (virtual) project”_ exists without requiring a local filesystem directory. Your project files are stored in the browser's internal storage and cannot be directly accessed or managed through your file system. A Temporary project can be cloned into a standard project when a persistent project is required. Browser may clear the data if the system runs low on disk space. For long-term projects, it is best to use a standard project linked to a folder on your device. ### Media A source asset that can be used in a project. Examples include: - video files - audio files - images - captions Media represents the source material. It is different from a Clip, which represents the use of that media in a timeline. The same media can be used by multiple clips, potentially in different scenes, at different times, with different trimming, transformations, filters, or other editing properties. For example, a single video file can be used twice: - once as the background of a scene - once as a smaller picture-in-picture clip ### Presentation A self-contained part of a project that defines what is presented to the viewer. It consists of a Scene and its Layers. ### Scene Defines the global settings for the presentation, including: - frame rate - resolution - background - duration - master volume ### Layer Layers determine how content is arranged relative to other content in the scene. A layer can contain one or more clips. Clips placed on higher layers are rendered above clips on lower layers when their content overlaps. Layers are useful for organizing different types of content, for example: - video and image content - graphics and overlays - text and captions - audio - effects or other timeline content ### Clip A Clip is an appearance of a media asset in a timeline. Clips reside in layers and define how the referenced media is used at a particular point in the timeline. A clip can define, for example: - which part of the media is used - when it appears on the timeline - its duration - its position and size - transformations - applied filters - animation and keyframes - audio behavior A clip does not represent a separate copy of the source media. Multiple clips can reference the same media asset. ### Filter A filter modifies the visual or audio output of a clip. Filters are applied directly to individual clips and affect the content produced by that clip. A clip can have multiple filters. Filters are evaluated as part of the clip's processing and can be combined to create more complex effects. The order of filters can affect the resulting output. Filter parameters can be animated using keyframes, allowing the effect to change over the duration of the clip. Filters operate within the clip's own timeline range. If the clip is trimmed, moved, or otherwise changes its temporal position, the filter remains associated with that clip. ## Supported Formats ### Audio AAC (aac), AC3 (ac3), EAC3 (eac3), FLAC (flac), MP3 (libmp3lame), Opus (libopus), Vorbis (libvorbis) #### Audio Encoders aac, ac3, ac3_fixed, adpcm_adx, adpcm_argo, adpcm_g722, adpcm_g726, adpcm_g726le, adpcm_ima_alp, adpcm_ima_amv, adpcm_ima_apm, adpcm_ima_qt, adpcm_ima_ssi, adpcm_ima_wav, adpcm_ima_ws, adpcm_ms, adpcm_swf, adpcm_yamaha, alac, anull, aptx, aptx_hd, comfortnoise, dca, dfpwm, dts, eac3, flac, g722, g723_1, g726, g726le, libmp3lame, libopus, libvorbis, mlp, mp2, mp2fixed, mp3, nellymoser, opus, pcm_alaw, pcm_bluray, pcm_dvd, pcm_f32be, pcm_f32le, pcm_f64be, pcm_f64le, pcm_mulaw, pcm_s16be, pcm_s16be_planar, pcm_s16le, pcm_s16le_planar, pcm_s24be, pcm_s24daud, pcm_s24le, pcm_s24le_planar, pcm_s32be, pcm_s32le, pcm_s32le_planar, pcm_s64be, pcm_s64le, pcm_s8, pcm_s8_planar, pcm_u16be, pcm_u16le, pcm_u24be, pcm_u24le, pcm_u32be, pcm_u32le, pcm_u8, pcm_vidc, ra_144, real_144, roq_dpcm, s302m, sbc, truehd, tta, vorbis, wavpack, wmav1, wmav2 #### Audio Decoders 8svx_exp, 8svx_fib, aac, aac_fixed, aac_latm, ac3, ac3_fixed, acelp.kelvin, adpcm_4xm, adpcm_adx, adpcm_afc, adpcm_agm, adpcm_aica, adpcm_ima_xbox, adpcm_argo, adpcm_ct, adpcm_dtk, adpcm_ea, adpcm_ea_maxis_xa, adpcm_ea_r1, adpcm_ea_r2, adpcm_ea_r3, adpcm_ea_xas, adpcm_g722, adpcm_g726, adpcm_g726le, adpcm_ima_acorn, adpcm_ima_alp, adpcm_ima_amv, adpcm_ima_apc, adpcm_ima_apm, adpcm_ima_cunning, adpcm_ima_dat4, adpcm_ima_dk3, adpcm_ima_dk4, adpcm_ima_ea_eacs, adpcm_ima_ea_sead, adpcm_ima_iss, adpcm_ima_moflex, adpcm_ima_mtf, adpcm_ima_oki, adpcm_ima_qt, adpcm_ima_rad, adpcm_ima_smjpeg, adpcm_ima_ssi, adpcm_ima_wav, adpcm_ima_ws, adpcm_ms, adpcm_mtaf, adpcm_psx, adpcm_sanyo, adpcm_sbpro_2, adpcm_sbpro_3, adpcm_sbpro_4, adpcm_swf, adpcm_thp, adpcm_thp_le, adpcm_vima, adpcm_xa, adpcm_xmd, adpcm_yamaha, adpcm_zork, alac, als, amr_nb, amr_wb, amrnb, amrwb, anull, apac, ape, aptx, aptx_hd, atrac1, atrac3, atrac3al, atrac3p, atrac3pal, atrac3plus, atrac3plusal, atrac9, avc, binkaudio_dct, binkaudio_rdft, bmv_audio, bonk, cbd2_dpcm, comfortnoise, cook, dca, derf_dpcm, dfpwm, dolby_e, dsd_lsbf, dsd_lsbf_planar, dsd_msbf, dsd_msbf_planar, dsicinaudio, dss_sp, dst, dts, dvaudio, eac3, evrc, fastaudio, flac, ftr, g722, g723_1, g726, g726le, g728, g729, gremlin_dpcm, gsm, gsm_ms, hca, hcom, iac, ilbc, imc, interplay_dpcm, interplayacm, libopus, libvorbis, mace3, mace6, metasound, misc4, mlp, mp1, mp1float, mp2, mp2float, mp3, mp3adu, mp3adufloat, mp3float, mp3on4, mp3on4float, mp4als, mpc7, mpc8, msnsiren, musepack7, musepack8, nellymoser, on2avc, opus, osq, paf_audio, pcm_alaw, pcm_bluray, pcm_dvd, pcm_f16le, pcm_f24le, pcm_f32be, pcm_f32le, pcm_f64be, pcm_f64le, pcm_lxf, pcm_mulaw, pcm_s16be, pcm_s16be_planar, pcm_s16le, pcm_s16le_planar, pcm_s24be, pcm_s24daud, pcm_s24le, pcm_s24le_planar, pcm_s32be, pcm_s32le, pcm_s32le_planar, pcm_s64be, pcm_s64le, pcm_s8, pcm_s8_planar, pcm_sga, pcm_u16be, pcm_u16le, pcm_u24be, pcm_u24le, pcm_u32be, pcm_u32le, pcm_u8, pcm_vidc, qcelp, qdm2, qdmc, qoa, ra_144, ra_288, ralf, real_144, real_288, rka, roq_dpcm, s302m, sbc, sdx2_dpcm, shorten, sipr, siren, smackaud, smackaudio, sol_dpcm, speex, tak, truehd, truespeech, tta, twinvq, vmdaudio, vorbis, wady_dpcm, wavarc, wavesynth, wavpack, westwood_snd1, wmalossless, wmapro, wmav1, wmav2, wmavoice, ws_snd1, xan_dpcm, xma1, xma2 ### Video APNG (apng), AV1 (av1), GIF (gif), H.264 (h264), HEVC (H.265) (hevc), JPEG (mjpeg), Theora (theora), VP8 (vp8), VP9 (vp9), WebP (webp) #### Video Encoders a64_multi, a64_multi5, a64multi, a64multi5, alias_pix, amv, apng, asv1, asv2, av1, avrp, avui, bitpacked, bmp, cfhd, cinepak, cljr, dirac, dnxhd, dpx, dvvideo, dxv, exr, ffv1, ffvhuff, fits, flashsv, flashsv2, flv, flv1, gif, h261, h263, h263p, h264, hdr, hevc, huffyuv, jpeg2000, jpegls, jpegxl, jpegxl_anim, libjxl, libjxl_anim, libkvazaar, libopenh264, libsvtav1, libtheora, libvpx, libvpx-vp9, libwebp, libwebp_anim, ljpeg, magicyuv, mjpeg, mpeg1video, mpeg2video, mpeg4, msmpeg4, msmpeg4v2, msmpeg4v3, msrle, msvideo1, pam, pbm, pcx, pdv, pfm, pgm, pgmyuv, phm, png, ppm, prores, prores_aw, prores_ks, qoi, qtrle, r10k, r210, rawvideo, roq, roqvideo, rpza, rv10, rv20, sgi, smc, snow, speedhq, sunrast, svq1, targa, theora, tiff, utvideo, v210, vbn, vc2, vnull, vp8, vp9, wbmp, webp, wmv1, wmv2, wrapped_avframe, xbm, xface, xwd, y41p, yuv4, zlib, zmbv #### Video Decoders 012v, 4xm, 8bps, aasc, agm, aic, alias_pix, amv, anm, ansi, apng, apv, arbc, argo, asv1, asv2, aura, aura2, av1, avrn, avrp, avs, avui, bethsoftvid, bfi, binkvideo, bintext, bitpacked, bmp, bmv_video, brender_pix, c93, camstudio, camtasia, cavs, cdgraphics, cdtoons, cdxl, cfhd, cinepak, clearvideo, cljr, cllc, cmv, cpia, cri, cscd, cyuv, dds, dfa, dirac, dnxhd, dpx, dsicinvideo, dvvideo, dxa, dxtory, dxv, eacmv, eamad, eatgq, eatgv, eatqi, escape124, escape130, exr, ffv1, ffvhuff, fic, fits, flashsv, flashsv2, flic, flv, flv1, fmvc, fraps, frwu, g2m, gdv, gem, gif, h261, h263, h263i, h263p, h264, hap, hdr, hevc, hnm4video, hq_hqa, hqx, huffyuv, hymt, idcin, idcinvideo, idf, iff, iff_ilbm, imm4, imm5, indeo2, indeo3, indeo4, indeo5, interplayvideo, ipu, jpeg2000, jpegls, jpegxl, jpegxl_anim, jv, kgv1, kmvc, lagarith, lead, libaom-av1, libjxl, libjxl_anim, libopenh264, libvpx, libvpx-vp9, loco, lscr, m101, mad, magicyuv, mdec, media100, mimic, mjpeg, mjpegb, mmvideo, mobiclip, motionpixels, mpeg1video, mpeg2video, mpeg4, mpegvideo, msa1, mscc, msmpeg4, msmpeg4v1, msmpeg4v2, msmpeg4v3, msp2, msrle, mss1, mss2, msvideo1, mszh, mts2, mv30, mvc1, mvc2, mvdv, mvha, mwsc, mxpeg, notchlc, nuv, paf_video, pam, pbm, pcx, pdv, pfm, pgm, pgmyuv, pgx, phm, photocd, pictor, pixlet, png, ppm, prores, prores_raw, prosumer, psd, ptx, qdraw, qoi, qpeg, qtrle, r10k, r210, rasc, rawvideo, rl2, roq, roqvideo, rpza, rscc, rtv1, rv10, rv20, rv30, rv40, rv60, sanm, scpr, screenpresso, sga, sgi, sgirle, sheervideo, simbiosis_imx, smackvid, smackvideo, smc, smvjpeg, snow, sp5x, speedhq, srgc, sunrast, svq1, svq3, targa, targa_y216, tdsc, tgq, tgv, theora, thp, tiertexseqvideo, tiff, tmv, tqi, truemotion1, truemotion2, truemotion2rt, tscc, tscc2, txd, ulti, ultimotion, utvideo, v210, v210x, vb, vble, vbn, vc1, vc1image, vcr1, vixl, vmdvideo, vmix, vmnc, vnull, vp3, vp4, vp5, vp6, vp6a, vp6f, vp7, vp8, vp9, vqavideo, vqc, vvc, wbmp, wcmv, webp, webp_anim, wmv1, wmv2, wmv3, wmv3image, wnv1, wrapped_avframe, ws_vqa, xan_wc3, xan_wc4, xbin, xbm, xface, xl, xpm, xwd, y41p, ylc, yop, yuv4, zerocodec, zlib, zmbv ### Formats APNG (.apng), AVIF (.avif), GIF (.gif), Matroska (.mkv), MP3 (.mp3), MP4 (.mp4), Ogg (.ogg), WebM (.webm), WebP (.webp) #### Muxers 3g2, 3gp, a64, ac3, ac4, adts, adx, aea, aiff, alaw, alp, amr, amv, apm, apng, aptx, aptx_hd, apv, argo_asf, argo_cvg, asf, asf_stream, ass, ast, au, avi, avif, avm2, avs2, avs3, bit, caf, cavsvideo, codec2, codec2raw, crc, dash, data, daud, dfpwm, dirac, dnxhd, dts, dv, dvd, eac3, evc, f32be, f32le, f4v, f64be, f64le, ffmetadata, fifo, film_cpk, filmstrip, fits, flac, flv, framecrc, framehash, framemd5, g722, g723_1, g726, g726le, gif, gsm, gxf, h261, h263, h264, hash, hds, hevc, hls, iamf, ico, ilbc, image2, image2pipe, ipod, ircam, ismv, iterm2, ivf, jacosub, kvag, latm, lc3, lrc, m4v, matroska, mcc, md5, microdvd, mjpeg, mkvtimestamp_v2, mlp, mmf, mov, mp2, mp3, mp4, mpeg, mpeg1video, mpeg2video, mpegts, mpjpeg, mulaw, mxf, mxf_d10, mxf_opatom, null, nut, obu, oga, ogg, ogv, oma, opus, pdv, psp, rawvideo, rcwt, rm, roq, rso, rtp, rtp_mpegts, rtsp, s16be, s16le, s24be, s24le, s32be, s32le, s8, sap, sbc, scc, segment, smjpeg, smoothstreaming, sox, spdif, spx, ssegment, srt, stream_segment, streamhash, sup, svcd, swf, tee, truehd, tta, ttml, u16be, u16le, u24be, u24le, u32be, u32le, u8, uncodedframecrc, vc1, vc1test, vcd, vidc, vob, voc, vvc, w64, wav, webm, webm_chunk, webm_dash_manifest, webp, webvtt, wsaud, wtv, wv, yuv4mpegpipe #### Demuxers 3dostr, 3g2, 3gp, 4xm, aa, aac, aax, ac3, ac4, ace, acm, act, adf, adp, ads, adx, aea, afc, aiff, aix, alaw, alias_pix, alp, amr, amrnb, amrwb, anm, apac, apc, ape, apm, apng, aptx, aptx_hd, apv, aqtitle, argo_asf, argo_brp, argo_cvg, asf, asf_o, ass, ast, au, av1, avi, avr, avs, avs2, avs3, bethsoftvid, bfi, bfstm, bin, bink, binka, bit, bitpacked, bmp_pipe, bmv, boa, bonk, brender_pix, brstm, c93, caf, cavsvideo, cdg, cdxl, cine, codec2, codec2raw, concat, cri_pipe, data, daud, dcstr, dds_pipe, derf, dfa, dfpwm, dhav, dirac, dnxhd, dpx_pipe, dsf, dsicin, dss, dts, dtshd, dv, dvbsub, dvbtxt, dxa, ea, ea_cdata, eac3, epaf, evc, exr_pipe, f32be, f32le, f64be, f64le, ffmetadata, film_cpk, filmstrip, fits, flac, flic, flv, frm, fsb, fwse, g722, g723_1, g726, g726le, g728, g729, gdv, gem_pipe, genh, gif, gif_pipe, gsm, gxf, h261, h263, h264, hca, hcom, hdr_pipe, hevc, hls, hnm, hxvs, iamf, ico, idcin, idf, iff, ifv, ilbc, image2, image2pipe, ingenient, ipmovie, ipu, ircam, iss, iv8, ivf, ivr, j2k_pipe, jacosub, jpeg_pipe, jpegls_pipe, jpegxl_anim, jpegxl_pipe, jpegxs_pipe, jv, kux, kvag, laf, lavfi, lc3, live_flv, lmlm4, loas, lrc, luodat, lvf, lxf, m4a, m4v, matroska, mca, mcc, mgsts, microdvd, mj2, mjpeg, mjpeg_2000, mlp, mlv, mm, mmf, mods, moflex, mov, mp3, mp4, mpc, mpc8, mpeg, mpegts, mpegtsraw, mpegvideo, mpjpeg, mpl2, mpsub, msf, msnwctcp, msp, mtaf, mtv, mulaw, musx, mv, mvi, mxf, mxg, nc, nistsphere, nsp, nsv, nut, nuv, obu, ogg, oma, osq, paf, pam_pipe, pbm_pipe, pcx_pipe, pdv, pfm_pipe, pgm_pipe, pgmyuv_pipe, pgx_pipe, phm_pipe, photocd_pipe, pictor_pipe, pjs, pmp, png_pipe, pp_bnk, ppm_pipe, psd_pipe, psxstr, pva, pvf, qcp, qdraw_pipe, qoa, qoi_pipe, r3d, rawvideo, rcwt, realtext, redspark, rka, rl2, rm, roq, rpl, rsd, rso, rtp, rtsp, s16be, s16le, s24be, s24le, s32be, s32le, s337m, s8, sami, sap, sbc, sbg, scc, scd, sdns, sdp, sdr2, sds, sdx, ser, sga, sgi_pipe, shn, siff, simbiosis_imx, sln, smjpeg, smk, smush, sol, sox, spdif, srt, stl, subviewer, subviewer1, sunrast_pipe, sup, svag, svg_pipe, svs, swf, tak, tedcaptions, thp, tiertexseq, tiff_pipe, tmv, truehd, tta, tty, txd, ty, u16be, u16le, u24be, u24le, u32be, u32le, u8, usm, v210, v210x, vag, vbn_pipe, vc1, vc1test, vidc, vividas, vivo, vmd, vobsub, voc, vpk, vplayer, vqf, vvc, w64, wady, wav, wavarc, wc3movie, webm, webm_dash_manifest, webp_anim, webp_pipe, webvtt, wsaud, wsd, wsvqa, wtv, wv, wve, xa, xbin, xbm_pipe, xmd, xmv, xpm_pipe, xvag, xwd_pipe, xwma, yop, yuv4mpegpipe ## Filters ### Basic Transition Applies configurable motion presets for dynamic element transitions. Type: Effect Keywords: _video_, _visual_, _animation_, _dynamic_, _motion_, _transition_ ### Blur Applies a blur algorithm to the video. Type: Effect Keywords: _video_, _visual_, _tween_, _size_ ### Captions Optimizer Optimizes fragmented, karaoke captions into cohesive sentences to improve readability. When enabled, the text cannot be edited in preview. Type: Effect Keywords: _captions_, _karaoke_ ### Captions Speaker Distinguishes speakers with unique styles and toggle their individual caption visibility. To manage multiple speakers, another instance of this filter must be added and assigned to a different speaker. Type: Effect Keywords: _captions_, _speaker_, _style_, _color_ ### Censor Obscures sensitive elements like faces or license plates. Type: Effect Keywords: _video_, _visual_, _censor_, _obscure_, _blur_, _color_, _mask_ ### Color Correction Adjusts the visual aesthetics of a video using comprehensive color grading options. Type: Effect Keywords: _video_, _visual_, _tween_, _exposure_, _contrast_, _brightness_, _saturation_, _temperature_, _tint_, _highlights_, _shadows_ #### Tutorial: Color Correction A brief showcase of color grading in action. [YouTube video](https://www.youtube-nocookie.com/embed/FBa7mQllPAI?modestbranding=1&rel=0&iv_load_policy=3) ### Colorkey Colorkeys (removes) green or other desired background color. Type: Effect Keywords: _video_, _visual_, _tween_, _colorkey_, _chromakey_, _green_, _background_ ### Curves Adjusts points throughout an image’s tonal range. Type: Effect Keywords: _video_, _visual_, _curves_, _red_, _green_, _blue_ ### Drop Shadow Applies a drop shadow effect to the video. Type: Effect Keywords: _video_, _visual_, _tween_, _offset_ ### Fill Borders & Vignette Fills borders of the input video with a solid color or a gradient. Type: Effect Keywords: _video_, _visual_, _tween_, _left_, _right_, _top_, _bottom_, _color_, _vignette_ ### Flip Flips video horizontally and/or vertically. Type: Effect Keywords: _video_, _visual_, _flip_, _horizontal_, _vertical_ ### Glitch 1 A glitch filter that offsets RGB channels, creating a nostalgic, distorted visual effect reminiscent of old, malfunctioning video tapes. Type: Effect Keywords: _video_, _visual_, _glitch_, _vhs_, _offset_, _noise_, _distortion_ ### Glitch 2 Simulates video glitches incorporating random simplex noise displacement, RGB channel shifting, and horizontal line pattern distortions. Type: Effect Keywords: _video_, _visual_, _glitch_, _vhs_, _offset_, _noise_, _distortion_ ### Gradient Fill Fills video with a defined gradient. Type: Effect Keywords: _video_, _visual_, _gradient_, _horizontal_, _vertical_, _freeform_ ### Grain Adds a grainy texture reminiscent of traditional photographic film. Type: Effect Keywords: _video_, _visual_, _grain_, _film_, _noise_ ### Invert Inverts (negates) the color samples in the video. Type: Effect Keywords: _video_, _visual_, _negate_, _invert_ ### Load Initializes media input. Type: Load Keywords: _video_, _audio_, _media_, _stream_, _source_, _trim_ ### LUT Applies a predefined Look-Up Table (LUT) to efficiently adjust, grade, or transform colors. Only 3D .cube LUT files are supported. Type: Effect Keywords: _video_, _visual_, _lut_, _cube_ ### Magnify Magnifies or shrinks a specified area of the video with optional lens distortions. Type: Effect Keywords: _video_, _visual_, _magnify_, _magnifying glass_, _shrink_, _fisheye_, _bulge_ ### Mask Defines areas of an video to be transparent, opaque, or partially transparent. The order of _“Mask”_ filter is important. If the rendered output is misaligned, try rearranging the filters and place the _“Mask”_ filter last. Type: Effect Keywords: _video_, _visual_, _mask_, _opacity_, _alpha_, _transparency_ #### Tutorial: Mask Learn how to create and apply masks. [YouTube video](https://www.youtube-nocookie.com/embed/HatIC7tqz-s?modestbranding=1&rel=0&iv_load_policy=3) ### Motion Blur Blends successive frames, creating a sense of motion and smooth transitions. During video editing, the effect is optimized for performance and may not appear as it will in the final export. The effect will be fully rendered in Export or Live Render. Type: Effect Keywords: _video_, _visual_, _motion_, _blur_, _blend_, _intensity_ ### Noise Reduction Reduces background noise from audio. The _“Noise Reduction”_ filter is not active during the simulation phase, preserving real-time performance. Type: Effect Keywords: _audio_, _reduce_, _suppress_, _noise_ ### Opacity Adjusts the video opacity. Type: Effect Keywords: _video_, _visual_, _tween_, _opacity_, _alpha_, _transparency_ ### Outline Draws a border around the non-transparent areas of the video, highlighting the defined shapes. Type: Effect Keywords: _video_, _visual_, _tween_, _outline_, _stroke_ ### Pixelate Pixelates video and obscures or censors objects with a mosaic effect. Type: Effect Keywords: _video_, _visual_, _tween_, _size_ ### Position Adjusts video position. Type: Geometry Keywords: _video_, _visual_, _tween_, _x_, _y_ ### Progress Bar Displays an animated preview of how long the video will be. Type: Effect Keywords: _video_, _visual_, _progress_, _bar_, _color_ ### Radial Zoom Blur Creates a dynamic zoom effect, producing a motion blur that radiates outward. Type: Effect Keywords: _video_, _visual_, _tween_, _radial_, _blur_, _zoom_ ### Repeat Loops media or last frame. Type: Time Keywords: _video_, _loop_, _repeat_, _extend_, _duration_ ### Rounded Corners Rounds the corners of a video outer edge. Type: Effect Keywords: _video_, _visual_, _tween_, _rounded_, _corner_, _border_, _radius_ ### Shader Renders custom GLSL fragment shaders fully compatible with the Shadertoy.com or FragCoord.xyz environment. Type: Effect Keywords: _glsl_, _shader_, _webgl_, _procedural_, _fx_ ### Shader Compatibility FragCoord.xyz Allows running single-pass shaders directly from [FragCoord.xyz](https://fragcoord.xyz) by providing full environment compatibility. It exposes standard and custom inputs: | Input Type | Input Name | Description | | ---| ---| --- | | uniform sampler2D | u_audio | audio clip | | uniform vec3 | u_camera_dir | 0, 0, 0 | | uniform vec3 | u_camera_pos | 0, 0, 0 | | uniform int | u_color_gamut | 0 | | uniform vec4 | u_date | year, month, day, time in seconds | | uniform vec2 | u_drag | 0, 0 | | uniform int | u_frame | clip frame | | uniform int | u_max_recursion | 0 | | uniform vec4 | u_mouse | 0, 0, 0, 0 | | uniform int | u_recursion | 0 | | uniform float | u_refresh_rate | presentation frame rate | | uniform vec2 | u_resolution | clip texture resolution (in pixels) | | uniform float | u_scroll | 0 | | uniform sampler2D | u_tex0 | clip texture | | uniform sampler2D | u_tex1 | referenced clip texture | | uniform sampler2D | u_tex2 | referenced clip texture | | uniform sampler2D | u_tex3 | referenced clip texture | | uniform float | u_time | clip time (in seconds) | | uniform float | u_time_delta | presentation frame duration (in seconds) | | uniform float | u_param0 | custom parameter | | uniform float | u_param1 | custom parameter | | uniform float | u_param2 | custom parameter | | uniform float | u_param3 | custom parameter | | uniform vec2 | u_texResolutionScene[4] | clip texture resolution on scene | Shader code must include the `main()` function: ``` void main() { vec2 uv = gl_FragCoord.xy / u_resolution; vec4 texColor = texture(u_tex0, uv); vec4 blueColor = vec4(0.0, 0.0, 1.0, 1.0); fragColor = mix(texColor, blueColor, uv.x); } ``` AI and large language models (LLMs) are remarkably good at generating GLSL shaders from natural-language descriptions. Describe the visual effect you want, then use the master prompt below to have an AI generate the shader code for you. Add your description at the end of the master prompt and paste it into your preferred AI assistant. ```` Write production-ready fragment shader based on the user prompt # Output Structure - response MUST consist of EXACTLY ONE markdown code block. No images. No text outside code block - Line 1: MUST be comment containing exact user prompt: `// Prompt: ...` - Line 2: MUST be comment: `// Compatibility: FragCoord.xyz` - Lines 3+: Used dynamic params, describing its purpose and value range: `// u_param0: Strength [0.0 - 1.0]` - Next line: MUST be comment, brief 2-sentence description of what effect does and how to tune params - Follow immediately with valid code # Runtime Env ## Code Compatibility - MUST be valid `GLSL 3.0 ES` for WebGL2 - MUST match FragCoord.xyz format ## Pre-defined Uniforms - `sampler2D u_audio` audio clip - `vec3 u_camera_dir` 0, 0, 0 - `vec3 u_camera_pos` 0, 0, 0 - `int u_color_gamut` 0 - `vec4 u_date` year, month, day, time in seconds - `vec2 u_drag` 0, 0 - `int u_frame` clip frame - `int u_max_recursion` 0 - `vec4 u_mouse` 0, 0, 0, 0 - `int u_recursion` 0 - `float u_refresh_rate` presentation frame rate - `vec2 u_resolution` clip texture resolution (in pixels) - `float u_scroll` 0 - `sampler2D u_tex0` clip texture - `sampler2D u_tex1` referenced clip texture - `sampler2D u_tex2` referenced clip texture - `sampler2D u_tex3` referenced clip texture - `float u_time` clip time (in seconds) - `float u_time_delta` presentation frame duration (in seconds) - `float u_param0` custom parameter - `float u_param1` custom parameter - `float u_param2` custom parameter - `float u_param3` custom parameter - `vec2 u_texResolutionScene[4]` clip texture resolution on scene - Assume all pre-defined uniforms are already declared in host environment and DO NOT re-declare new ones ## Dynamic Params: u_param0, u_param1, u_param2, u_param3 - Prefer using dynamic params for any adjustable settings (e.g., speed, strength) - These params are exposed to user in UI and can be animated over time using keyframes - Params are unrestricted float values (can be negative) - Shader MUST display clear, noticeable, and pleasing effect when all params are at `0.0` ## Entry Point - Use `main()` as the sole entry point - DO NOT include version headers ## Textures - Input textures are uploaded with `UNPACK_FLIP_Y_WEBGL` # Audio Input The audio input is passed into the shader as a 512×512 pixel 2D texture, separating frequency and waveform into distinct color channels and tracks a historical buffer of an audio: Red and blue channels contains the FFT (Fast Fourier Transform) frequency magnitude data. Green channel contains the raw PCM waveform audio data. The vertical rows of the texture map directly to time, creating a visual waterfall buffer where top row represents the most recent, live audio frame matching the current playback position and bottom row represents the historical state of the audio from approx. 8.5 seconds ago (60fps across the 512 rows). Many FragCoord.xyz scripts natively use the default name u_audio just like this environment, but FragCoord.xyz allows for custom, dynamic naming of input textures. If your shader configuration uses another variable name (e.g., u_myCustomAudio), rename the variable inside the code to u_audio, or use a global definition at the very top of your script #define u_myCustomAudio u_audio. Example implementation: # Video Processing Example ``` void main() { vec2 uv = gl_FragCoord.xy / u_resolution; vec4 texColor = texture(u_tex0, uv); vec4 blueColor = vec4(0.0, 0.0, 1.0, 1.0); fragColor = mix(texColor, blueColor, uv.x); } ``` # Audio Processing Example ``` void main() { vec2 uv = gl_FragCoord.xy / u_resolution; int tx = int(uv.x * 512.0); int ty = int((1. - uv.y) * 512.0); vec4 audio = texelFetch(u_audio, ivec2(tx, ty), 0); float fft = audio.r; float pcm = audio.g; fragColor = vec4(fft, pcm, 0., 1.); } ``` # User Prompt $USER_PROMPT ```` ### Shader Compatibility Paper Allows running single-pass shaders directly from [Paper](https://shaders.paper.design/) by providing full environment compatibility. It exposes standard and custom inputs: | Input Type | Input Name | Description | | ---| ---| --- | | uniform float | u_fit | how to fit the rendered shader into the canvas dimensions (0 = none, 1 = contain, 2 = cover) | | uniform sampler2D | u_image | clip texture | | uniform float | u_imageAspectRatio | aspect ratio of the source image | | uniform sampler2D | u_noiseTexture | referenced clip texture | | uniform float | u_offsetX | horizontal offset of the graphics center (-1 to 1) | | uniform float | u_offsetY | vertical offset of the graphics center (-1 to 1) | | uniform float | u_originX | reference point for positioning world width in the canvas (0 to 1) | | uniform float | u_originY | reference point for positioning world height in the canvas (0 to 1) | | uniform float | u_pixelRatio | device pixel ratio | | uniform vec2 | u_resolution | clip texture resolution (in pixels) | | uniform float | u_rotation | overall rotation angle of the graphics in degrees (0 to 360) | | uniform float | u_scale | overall zoom level of the graphics (0.01 to 4) | | uniform sampler2D | u_tex2 | referenced clip texture | | uniform sampler2D | u_tex3 | referenced clip texture | | uniform float | u_time | clip time (in seconds) | | uniform float | u_worldHeight | virtual height of the graphic before it's scaled to fit the canvas | | uniform float | u_worldWidth | virtual width of the graphic before it's scaled to fit the canvas | | uniform float | u_param0 | custom parameter | | uniform float | u_param1 | custom parameter | | uniform float | u_param2 | custom parameter | | uniform float | u_param3 | custom parameter | | uniform vec2 | u_texResolutionScene[4] | clip texture resolution on scene | Shader code must include the `main()` function: ``` void main() { vec2 uv = v_imageUV; vec4 texColor = texture(u_image, uv); vec4 blueColor = vec4(0.0, 0.0, 1.0, 1.0); fragColor = mix(texColor, blueColor, uv.x); } ``` AI and large language models (LLMs) are remarkably good at generating GLSL shaders from natural-language descriptions. Describe the visual effect you want, then use the master prompt below to have an AI generate the shader code for you. Add your description at the end of the master prompt and paste it into your preferred AI assistant. ```` Write production-ready fragment shader based on the user prompt # Output Structure - response MUST consist of EXACTLY ONE markdown code block. No images. No text outside code block - Line 1: MUST be comment containing exact user prompt: `// Prompt: ...` - Line 2: MUST be comment: `// Compatibility: Paper.design` - Lines 3+: Used dynamic params, describing its purpose and value range: `// u_param0: Strength [0.0 - 1.0]` - Next line: MUST be comment, brief 2-sentence description of what effect does and how to tune params - Follow immediately with valid code # Runtime Env ## Code Compatibility - MUST be valid `GLSL 3.0 ES` for WebGL2 - MUST match Paper format ## Pre-defined Uniforms - `float u_fit` how to fit the rendered shader into the canvas dimensions (0 = none, 1 = contain, 2 = cover) - `sampler2D u_image` clip texture - `float u_imageAspectRatio` aspect ratio of the source image - `sampler2D u_noiseTexture` referenced clip texture - `float u_offsetX` horizontal offset of the graphics center (-1 to 1) - `float u_offsetY` vertical offset of the graphics center (-1 to 1) - `float u_originX` reference point for positioning world width in the canvas (0 to 1) - `float u_originY` reference point for positioning world height in the canvas (0 to 1) - `float u_pixelRatio` device pixel ratio - `vec2 u_resolution` clip texture resolution (in pixels) - `float u_rotation` overall rotation angle of the graphics in degrees (0 to 360) - `float u_scale` overall zoom level of the graphics (0.01 to 4) - `sampler2D u_tex2` referenced clip texture - `sampler2D u_tex3` referenced clip texture - `float u_time` clip time (in seconds) - `float u_worldHeight` virtual height of the graphic before it's scaled to fit the canvas - `float u_worldWidth` virtual width of the graphic before it's scaled to fit the canvas - `float u_param0` custom parameter - `float u_param1` custom parameter - `float u_param2` custom parameter - `float u_param3` custom parameter - `vec2 u_texResolutionScene[4]` clip texture resolution on scene - Assume all pre-defined uniforms are already declared in host environment and DO NOT re-declare new ones ## Dynamic Params: u_param0, u_param1, u_param2, u_param3 - Prefer using dynamic params for any adjustable settings (e.g., speed, strength) - These params are exposed to user in UI and can be animated over time using keyframes - Params are unrestricted float values (can be negative) - Shader MUST display clear, noticeable, and pleasing effect when all params are at `0.0` ## Entry Point - Use `main()` as the sole entry point - DO NOT include version headers # Audio Input The Paper compatibility does not currently support audio inputs. # Video Processing Example ``` void main() { vec2 uv = v_imageUV; vec4 texColor = texture(u_image, uv); vec4 blueColor = vec4(0.0, 0.0, 1.0, 1.0); fragColor = mix(texColor, blueColor, uv.x); } ``` # User Prompt $USER_PROMPT ```` ### Shader Compatibility Shadertoy.com Allows running single-pass shaders directly from [Shadertoy.com](https://www.shadertoy.com) by providing full environment compatibility. It exposes standard and custom inputs: | Input Type | Input Name | Description | | ---| ---| --- | | uniform sampler2D | iChannel0 | clip texture | | uniform sampler2D | iChannel1 | referenced clip texture | | uniform sampler2D | iChannel2 | referenced clip texture | | uniform sampler2D | iChannel3 | referenced clip texture | | uniform vec3 | iChannelResolution[4] | clip texture resolution (in pixels) | | uniform float | iChannelTime[4] | clip time (in seconds) | | uniform vec4 | iDate | year, month, day, time in seconds | | uniform int | iFrame | clip frame | | uniform float | iFrameRate | presentation frame rate | | uniform vec4 | iMouse | 0, 0, 0, 0 | | uniform vec3 | iResolution | clip texture resolution (in pixels) | | uniform float | iTime | clip time (in seconds) | | uniform float | iTimeDelta | presentation frame duration (in seconds) | | uniform sampler2D | u_audio | audio clip | | uniform float | u_param0 | custom parameter | | uniform float | u_param1 | custom parameter | | uniform float | u_param2 | custom parameter | | uniform float | u_param3 | custom parameter | | uniform vec2 | u_texResolutionScene[4] | clip texture resolution on scene | Shader code must include the `mainImage()` function: ``` void mainImage(out vec4 fragColor, in vec2 fragCoord) { vec2 uv = fragCoord / iResolution.xy; vec4 texColor = texture(iChannel0, uv); vec4 blueColor = vec4(0.0, 0.0, 1.0, 1.0); fragColor = mix(texColor, blueColor, uv.x); } ``` AI and large language models (LLMs) are remarkably good at generating GLSL shaders from natural-language descriptions. Describe the visual effect you want, then use the master prompt below to have an AI generate the shader code for you. Add your description at the end of the master prompt and paste it into your preferred AI assistant. ```` Write production-ready fragment shader based on the user prompt # Output Structure - response MUST consist of EXACTLY ONE markdown code block. No images. No text outside code block - Line 1: MUST be comment containing exact user prompt: `// Prompt: ...` - Line 2: MUST be comment: `// Compatibility: Shadertoy.com` - Lines 3+: Used dynamic params, describing its purpose and value range: `// u_param0: Strength [0.0 - 1.0]` - Next line: MUST be comment, brief 2-sentence description of what effect does and how to tune params - Follow immediately with valid code # Runtime Env ## Code Compatibility - MUST be valid `GLSL 3.0 ES` for WebGL2 - MUST match Shadertoy.com format ## Pre-defined Uniforms - `sampler2D iChannel0` clip texture - `sampler2D iChannel1` referenced clip texture - `sampler2D iChannel2` referenced clip texture - `sampler2D iChannel3` referenced clip texture - `vec3 iChannelResolution[4]` clip texture resolution (in pixels) - `float iChannelTime[4]` clip time (in seconds) - `vec4 iDate` year, month, day, time in seconds - `int iFrame` clip frame - `float iFrameRate` presentation frame rate - `vec4 iMouse` 0, 0, 0, 0 - `vec3 iResolution` clip texture resolution (in pixels) - `float iTime` clip time (in seconds) - `float iTimeDelta` presentation frame duration (in seconds) - `sampler2D u_audio` audio clip - `float u_param0` custom parameter - `float u_param1` custom parameter - `float u_param2` custom parameter - `float u_param3` custom parameter - `vec2 u_texResolutionScene[4]` clip texture resolution on scene - Assume all pre-defined uniforms are already declared in host environment and DO NOT re-declare new ones ## Dynamic Params: u_param0, u_param1, u_param2, u_param3 - Prefer using dynamic params for any adjustable settings (e.g., speed, strength) - These params are exposed to user in UI and can be animated over time using keyframes - Params are unrestricted float values (can be negative) - Shader MUST display clear, noticeable, and pleasing effect when all params are at `0.0` ## Entry Point - Use `mainImage()` as the sole entry point - DO NOT include version headers - DO NOT define `void main()`. ## Textures - Input textures are uploaded with `UNPACK_FLIP_Y_WEBGL` # Audio Input The audio input is passed into the shader as 512×2 pixel 2D texture, containing two distinct audio profiles: Top row contains the FFT (Fast Fourier Transform) frequency magnitude data. Bottom row contains the raw PCM waveform audio data. Shadertoy.com scripts reference audio inputs using the iChannel0 uniform. In this environment, the audio texture is mapped to u_audio. You can manually adapt any Shadertoy.com code by mapping (renaming) texture uniform or adding #define iChannel0 u_audio at the top of your script. Example implementation: # Video Processing Example ``` void mainImage(out vec4 fragColor, in vec2 fragCoord) { vec2 uv = fragCoord / iResolution.xy; vec4 texColor = texture(iChannel0, uv); vec4 blueColor = vec4(0.0, 0.0, 1.0, 1.0); fragColor = mix(texColor, blueColor, uv.x); } ``` # Audio Processing Example ``` void mainImage(out vec4 fragColor, in vec2 fragCoord) { vec2 uv = fragCoord / iResolution.xy; int tx = int(uv.x * 512.0); int ty = uv.y < 0.5 ? 1 : 0; float r = texelFetch(u_audio, ivec2(tx, ty), 0).r; fragColor = vec4(r, r, r, 1.); } ``` # User Prompt $USER_PROMPT ```` ### Speed Adjusts speed and reverse. Type: Time Keywords: _video_, _audio_, _time_, _tween_, _reverse_, _pitch_ ### Start Time Sets clip position on the playhead. Type: Time Keywords: _video_, _audio_, _time_, _start_ ### Text Animation Animates characters, words, or lines independently for engaging effects. The _“Text Animation”_ filter is effective only on text or captions clips. Type: Effect Keywords: _visual_, _text_, _captions_, _animation_, _dynamic_, _motion_ ### Text Postprocess Automatically modifies text by removing non-alphanumeric characters or replacing words with emojis. When enabled, the text cannot be edited in preview. Type: Effect Keywords: _visual_, _text_, _emoji_, _captions_ ### Transform Crops, scales (resizes) and rotates the input video. Type: Geometry Keywords: _video_, _visual_, _tween_, _crop_, _resize_, _resolution_, _size_, _x_, _y_, _width_, _height_, _angle_, _rotation_ ### Unsharp Mask Enhances video sharpness by accentuating the contrast between edges in a picture. Type: Effect Keywords: _video_, _visual_, _tween_, _sharpen_, _amount_, _radius_, _threshold_ ### Video Stabilizer Reduces camera shake to produce smoother, more stable footage. To restore clarity lost during stabilization, consider adding an _“Unsharp Mask”_ filter to enhance image sharpness. Type: Effect Keywords: _video_, _visual_, _stabilize_, _deshake_, _steady_, _jitter_ ### Volume Adjusts audio volume. Type: Effect Keywords: _audio_, _tween_ ### Waveform Renders an animated waveform from audio, with customizable styles and parameters for visualizing sound. Type: Effect Keywords: _audio_, _visual_, _waveform_, _bars_, _signal_, _spectrum_, _pulse_ ### Zoom Zooms in or out on specified coordinates of video, creating dynamic Ken Burns effect. For optimal output quality, ensure that the _“Zoom”_ filter is scheduled before the _“Scale”_ filter if both are in use. For distortion effects, use the _“Magnify”_ filter instead. Type: Effect Keywords: _video_, _visual_, _zoom_, _scale_ #### Tutorial: Zoom Learn how to use Zoom filter. [YouTube video](https://www.youtube-nocookie.com/embed/YOVjAOl1nww?modestbranding=1&rel=0&iv_load_policy=3) ## Smart Tools ### Auto Tag Detects objects in an image or video and outputs tags identifying the detected objects. Tags provide keywords for full-text search and filtering in the Media panel. Multiple values can be separated with commas (`,`) . Tags can also be generated automatically by clicking the related icon. ### Background Remover Removes the background from an image or video and outputs a transparent image or video with the subject isolated. The video background remover processes the frames of the original video and creates a new mask video that precisely matches the original. The mask video is in black and white, where white indicates visible parts and black marks pixels to be hidden. To speed up the process, you can limit the processing to a specific range of the original video. The output video retains the original duration, with black frames outside the selected range. #### Tutorial: Background Remover A brief demonstration of the background remover tool. [YouTube video](https://www.youtube-nocookie.com/embed/LAJH6Iiu9Qs?modestbranding=1&rel=0&iv_load_policy=3) ### Auto Captions Transcribes an audio track and outputs captions, with optional speaker diarization to identify and separate different speakers. #### Tutorial: Mastering Captions in wide.video In this tutorial, you will learn how to work with captions. We will cover everything you need to know to create and edit captions, including how to add, adjust, and style cues. [YouTube video](https://www.youtube-nocookie.com/embed/G5-YXIKvkqI?modestbranding=1&rel=0&iv_load_policy=3) ### Composer Uses selected images and videos to create a project timeline with labels and transitions. #### Tutorial: One-Click Video Compositions Discover the power of composer feature and learn how to create stunning video compositions with just one click. [YouTube video](https://www.youtube-nocookie.com/embed/m1o1ZJrPCpY?modestbranding=1&rel=0&iv_load_policy=3) ### Image Upscaler Upscales an image and outputs a higher-resolution image. ### Media Converter Converts media from any input format to any supported output format. ### Multicam Synchronization Synchronizes multiple audio or video files with audio and places them on the timeline in sync. #### Tutorial: Multicam Synchronization A brief showcase of multicam synchronization in action. [YouTube video](https://www.youtube-nocookie.com/embed/JuMqYaGOEuI?modestbranding=1&rel=0&iv_load_policy=3) ### Music & SFX Generation Uses a text prompt to generate music or sound effects. #### Music Describe desired music or choose a preset to create a **unique unlimited-second sample**. Once you find the perfect sample, you can extend it to any duration. The model of size **1.8G** will be downloaded and run locally on **GPU**. #### Sound Effects Describe desired sound effect or choose a preset to create a **unique 8-second sample**. The model of size **745.1M** will be downloaded and run locally on **CPU**. ### Noise Reduction Reduces background noise in an audio or video with audio and outputs a cleaner audio file. ### Object Detector The Object Detector tool generates a detection data file, which can then be linked to the Censor filter. To speed up the process, you can limit the processing to a specific range of the original video. ### Proxy Generator Proxy files serve as optimized, lower-resolution versions of original media. They are invaluable when encountering playback challenges like **audio loss, video lag, or non-playable files**. Proxies enhance the editing process by providing smoother timeline navigation and playback, exclusively within the editing phase, without affecting final export quality. ### Silence Remover Removes silent parts from an audio or video and outputs a timeline containing multiple clips with the silent sections removed. ### Text-based Editing Text-based Editing lets you edit video by working with the spoken words instead of a timeline - cut, move, or delete parts of the video just by editing the transcript, like a text document. To get started, you need a transcription of your video. If your project already includes captions, you can select them right away. If not, new ones can be generated automatically. ### Text to Speech Converts user-defined text or timed captions into spoken audio and outputs an audio file synchronized with the provided timing. ### Video Enhancer The Video Enhancer tool allows you to apply smart upscaling and increase the output frame rate by generating smooth motion frames, resulting in a sharper and more fluid video. To speed up the process, you can limit the processing to a specific range of the original video. The output video retains the original duration, with black frames outside the selected range. ### Video Stabilizer Analyzes camera movement in a video and outputs an analysis file used by the Video Stabilizer filter to stabilize the footage. ## Other Features ### Media Manager Helps you organize, browse, and review your media library. Browse media thumbnails and details, set names, tags, ratings, and notes, mark highlights, and inspect technical file metadata such as format, resolution, and duration. It also shows which clips reference each media file, making it easy to see where a particular image, video, or audio file is used in your projects. ### Import From Project Lets you import media, timeline content, project settings, font files, and shader files from another project, making it easy to reuse existing assets and editing work. ### No Installs Or Uploads wide.video is a browser-based application and runs locally on your computer. You can access all of the media from your file system, without any need of cloud server communication or uploads. ### Cross-Platform Start video editing on your Mac, PC or Chromebook with ease while using your preferred web browser. ### Unlimited Setup & Compositions Full HD, 4K, portrait, landscape or square? 60 or 120 FPS. Use as many layers as you need for graphics, background videos, audio tracks. ### No Signup, Fees Or Watermarks Enjoy 100% free service, without paywalls or ads. No logins, no passwords required. ### Free Stock Media Search and use royalty free stock videos, images and motion graphics. ## Video Tutorials ### Getting Started with wide.video wide.video online video editor lets you edit videos, apply effects, filters, add audio and images. In this video we take a look at how to create your first video. [YouTube video](https://www.youtube-nocookie.com/embed/nwg9fq6rH7c?modestbranding=1&rel=0&iv_load_policy=3) ### Creating & Working With Clips In this video we take a look at clips. [YouTube video](https://www.youtube-nocookie.com/embed/-W7DzY2psiY?modestbranding=1&rel=0&iv_load_policy=3) ### Timeline Tips and Tricks Let’s have a look on timeline. [YouTube video](https://www.youtube-nocookie.com/embed/hcXP3G2dOaA?modestbranding=1&rel=0&iv_load_policy=3) ### Using Preview Panel In this video we take a look at working with preview panel. [YouTube video](https://www.youtube-nocookie.com/embed/Yu0mcsVPGFM?modestbranding=1&rel=0&iv_load_policy=3) ### One-Click Video Compositions Discover the power of composer feature and learn how to create stunning video compositions with just one click. [YouTube video](https://www.youtube-nocookie.com/embed/m1o1ZJrPCpY?modestbranding=1&rel=0&iv_load_policy=3) ### Mastering Captions in wide.video In this tutorial, you will learn how to work with captions. We will cover everything you need to know to create and edit captions, including how to add, adjust, and style cues. [YouTube video](https://www.youtube-nocookie.com/embed/G5-YXIKvkqI?modestbranding=1&rel=0&iv_load_policy=3) ### Slideshow in 30 Seconds Let’s create a slideshow in 30 seconds. [YouTube video](https://www.youtube-nocookie.com/embed/Ix_fypb81co?modestbranding=1&rel=0&iv_load_policy=3) ### Import From Project This video will help you understand and use "Import From Project" feature. A common use case is to apply branding. [YouTube video](https://www.youtube-nocookie.com/embed/ZRWw424Cf_4?modestbranding=1&rel=0&iv_load_policy=3) ### Multicam Synchronization A brief showcase of multicam synchronization in action. [YouTube video](https://www.youtube-nocookie.com/embed/JuMqYaGOEuI?modestbranding=1&rel=0&iv_load_policy=3) ### Background Remover A brief demonstration of the background remover tool. [YouTube video](https://www.youtube-nocookie.com/embed/LAJH6Iiu9Qs?modestbranding=1&rel=0&iv_load_policy=3) ### Color Correction A brief showcase of color grading in action. [YouTube video](https://www.youtube-nocookie.com/embed/FBa7mQllPAI?modestbranding=1&rel=0&iv_load_policy=3) ### Mask Learn how to create and apply masks. [YouTube video](https://www.youtube-nocookie.com/embed/HatIC7tqz-s?modestbranding=1&rel=0&iv_load_policy=3) ### Zoom Learn how to use Zoom filter. [YouTube video](https://www.youtube-nocookie.com/embed/YOVjAOl1nww?modestbranding=1&rel=0&iv_load_policy=3) ### How to Create a Light Wrap Effect In this tutorial, learn how to create a light wrap effect. Follow step-by-step instructions to blend your subject seamlessly with the background for a more natural look. [YouTube video](https://www.youtube-nocookie.com/embed/8MrnGKWvzyg?modestbranding=1&rel=0&iv_load_policy=3) ### Media Manager A quick walkthrough, showing how to preview media, edit metadata, manage highlights or view technical details. [YouTube video](https://www.youtube-nocookie.com/embed/1k414RxbEjI?modestbranding=1&rel=0&iv_load_policy=3) ## Frequently Asked Questions ### Is Full HD or 4K video supported? Yes, search and explore available templates to get an inspiration. ### How to make export faster? Enable _“Accelerated Encoder”_ or reduce scene resolution and frame rate. ### How to export video with transparent background? Adjust scene _“Background”_ alpha and use VP8 or VP9 video encoder output. ### How is my privacy protected? wide.video runs locally in your browser on your computer, without having to upload media to a server. This means that none of your media or created content leaves your computer. ### How to improve video quality? Make sure a reasonable output _“Bitrate”_ is set for used video codec, adjust scene resolution and frame rate. ### What is the export file size limit? The limit is affected by the output format. See _“Container”_ section in _“Output”_ panel for more information. ### Can I convert temporary (virtual) project into a standard one? Yes, once the project is opened, select Project / Clone Project from menu bar and pick a desired target folder. ### Can I import setup or content from another project? Yes, _“Import From Project”_ is available in the main menu. Project content, including media, clips, and layers, and scene or output setup, can be imported. ### Why is the _“Open Project”_ button disabled? It is disabled due to your browser's lack of support for the file system access feature. This feature allows web applications to interact with your local file system, providing functionalities like opening and saving files directly from your device. - **Brave Browser** does support file system access, but you may need to enable it manually by going to `brave://flags/#file-system-access-api`. Once enabled, restart your browser. - **Firefox** unfortunately, has chosen not to support the File System Access API due to security and privacy concerns. As a result, this feature is not available. More information can be found in the [Firefox standard positions](https://github.com/mozilla/standards-positions/issues/154). - **Safari** similar to Firefox, does not support the File System Access API. Apple's focus on security and privacy has led to the decision to disable this feature in their browser. For more details, refer to the [Safari standard positions](https://github.com/WebKit/standards-positions/issues/28). ### What is _“Application Cache & Settings”_? Contains application settings, preloaded files to speed up application startup and enable offline use, as well as AI models used by Smart Tools. ### What is _“Audio Bitrate”_? Bitrate defines the amount of data (bits) that are conveyed or processed per second. A higher bitrate generally means better audio quality. Recommended values are _“128K”_ or _“192K”_ ### What is _“Audio Loading Method”_? Choose how the audio is loaded for export. If the audio is missing, gets cut, or the export fails, use the _“Safe”_ method. ### What is _“Audio Sample Rate”_? Sample Rate controls the quality and clarity of an audio. Higher rates provide better sound quality but increase file size. Note that some audio encoders may not support certain sample rates, which could cause issues during export. If you're unsure or the selected encoder doesn't support a specific rate, select the _“Default”_ option. ### What is _“Audio Vigilance”_? Audio vigilance mode prevents USB or Bluetooth audio interfaces, from entering power-saving mode by actively transmitting low-volume signals. It eliminates interruptions and prevents the loss of initial audio samples. ### What is _“Background Remover Sampling Interval”_? Determines how frequently frames are selected from the source video for the background removal. The background for the non-selected frames will be interpolated based on selected frames. Adjusting this interval can balance between processing speed and accuracy of the background removal. Set the value to 0 to process every frame. ### What is _“Clip”_? A Clip is an appearance of a media asset in a timeline. Clips reside in layers and define how the referenced media is used at a particular point in the timeline. A clip can define, for example: - which part of the media is used - when it appears on the timeline - its duration - its position and size - transformations - applied filters - animation and keyframes - audio behavior A clip does not represent a separate copy of the source media. Multiple clips can reference the same media asset. ### What is _“Clip Lock”_? Locked clip is prevented from being selected and modified via drag & drop in Preview and Timeline. ### What is _“Filter”_? A filter modifies the visual or audio output of a clip. Filters are applied directly to individual clips and affect the content produced by that clip. A clip can have multiple filters. Filters are evaluated as part of the clip's processing and can be combined to create more complex effects. The order of filters can affect the resulting output. Filter parameters can be animated using keyframes, allowing the effect to change over the duration of the clip. Filters operate within the clip's own timeline range. If the clip is trimmed, moved, or otherwise changes its temporal position, the filter remains associated with that clip. ### What is _“Mask”_? A clip selected as a mask controls the visibility of the current clip. Mask pixel values determine which parts of the current clip are visible and how strongly they appear. ### What is _“Overflow”_? Enabling allows the filter to render beyond the clip's bounding box, making the full effect visible. Disabling restricts rendering to the clip's original boundaries. ### What is _“Fragmented Output”_? Enabling the _“Fragmented Output”_ option allows for exporting files in a streamable format. It ensures each video fragment starts with a keyframe, making the file ideal for streaming scenarios. This improves compatibility with streaming players and supports smoother, faster playback startup. ### What is _“Image Optimization”_? Using images with high resolutions may adversely affect export times. - Option _“For Scene”_ reduces the image resolution to provide a satisfactory quality level for most use cases. - Option _“None”_ retains the original resolution, offering better quality for zoomed-in images. ### What is _“Infinite Loop”_? When enabled for compatible formats, the exported media will automatically restart after finishing for continuous, infinite playback. ### What is _“Layer”_? Layers determine how content is arranged relative to other content in the scene. A layer can contain one or more clips. Clips placed on higher layers are rendered above clips on lower layers when their content overlaps. Layers are useful for organizing different types of content, for example: - video and image content - graphics and overlays - text and captions - audio - effects or other timeline content ### What is _“Layer Lock”_? Locked layer prevents all nested clips from being selected or modified via drag & drop in Preview and Timeline. ### What is _“Live Render”_? Live Render provides export-like preview, with downsampled resolution and frame rate but having audio, video and effects synchronized. ### What is _“Resize and Align”_? When enabled, the mask is resized and repositioned to perfectly match the clip during application. When disabled, if the mask resolution differs from the clip, it may appear misplaced or misaligned. ### What is _“Media”_? A source asset that can be used in a project. Examples include: - video files - audio files - images - captions Media represents the source material. It is different from a Clip, which represents the use of that media in a timeline. The same media can be used by multiple clips, potentially in different scenes, at different times, with different trimming, transformations, filters, or other editing properties. For example, a single video file can be used twice: - once as the background of a scene - once as a smaller picture-in-picture clip ### What is _“Media Manager”_? Helps you organize, browse, and review your media library. Browse media thumbnails and details, set names, tags, ratings, and notes, mark highlights, and inspect technical file metadata such as format, resolution, and duration. It also shows which clips reference each media file, making it easy to see where a particular image, video, or audio file is used in your projects. ### What is _“Highlight in Media Metadata & Highlights”_? Highlight marks important moment within a media, used in the Composer tool and when adding media to the timeline. ### What is _“Name in Media Metadata & Highlights”_? Name provides a user-friendly title that appears throughout the app instead of the original filename. ### What is _“Notes in Media Metadata & Highlights”_? Notes provide a flexible space for adding any details related to the media. Included in full-text search, and the app may add its own notes when media is created using Smart Tools. ### What is _“Rating in Media Metadata & Highlights”_? Rating lets you mark media quality. It appears in the Media panel and can be used to sort or filter media. ### What is _“Tags in Media Metadata & Highlights”_? Tags provide keywords for full-text search and filtering in the Media panel. Multiple values can be separated with commas (`,`) . Tags can also be generated automatically by clicking the related icon. ### What is _“Motion Blur Initial Frame”_? The _“Initial Frame”_ setting determines how the motion blur starts. When checked, the first frame remains static, and motion builds from it, but with high intensity, the initial frame may appear more pronounced. When unchecked, the effect begins with a transparent frame, and subsequent frames will blend with it, creating an initial fade-in effect. ### What is _“Motion Blur Intensity”_? The _“Intensity”_ setting controls how much past frames influence the current frame. Higher values make previous frames more visible, creating a stronger motion blur effect. Lower values result in a subtler blend. ### What is _“Mute Audio Source”_? When enabled, the source clip’s audio is muted, leaving only the generated visual waveform. When disabled, the source audio remains audible. ### What is _“Non-Overlapping Reveal”_? When enabled, the clip will be fully revealed in areas outside the mask's bounding box. When disabled, the clip will only be rendered where it overlaps with the mask. ### What is _“Presentation”_? A self-contained part of a project that defines what is presented to the viewer. It consists of a Scene and its Layers. ### What is _“Project”_? A Project is the complete editing environment for a video. A project can contain: - media used by the project - scene and layers - clips placed in layers - filters and effects - project settings - fonts, shaders, and other project resources A project describes the complete editable state of a video rather than only the final exported file. The app supports _“standard projects”_ and _“Temporary (virtual) project”_. A _“standard project”_ is associated with a directory on the local filesystem. Its media can therefore be stored and referenced as regular local files. A _“Temporary (virtual) project”_ exists without requiring a local filesystem directory. Your project files are stored in the browser's internal storage and cannot be directly accessed or managed through your file system. A Temporary project can be cloned into a standard project when a persistent project is required. Browser may clear the data if the system runs low on disk space. For long-term projects, it is best to use a standard project linked to a folder on your device. ### What is _“Render Mask”_? When enabled, the mask is applied and remains visible in final output. When disabled, the mask is applied but not visible in the final output. ### What is _“Reverse Media”_? Reverses the order of frames in the media, so that the last frame plays first. Reversing requires whole media to be buffered in memory. To reduce memory usage, it is recommended only a short section of the media is trimmed before reversing, or preferably a new reversed media is created and used instead. ### What is _“Scene”_? Defines the global settings for the presentation, including: - frame rate - resolution - background - duration - master volume ### What is _“Seek on Hover”_? When enabled, hovering over the timeline will automatically seek the project head to the hovered position. This allows for quick previewing without clicking or dragging the scrubber. ### What is _“Signal Audio Padding”_? Audio signal, particularly in speech, might be weak at the onset of words. Audio padding involves the expansion of the identified audio signal at its commencement or conclusion. This augmentation effectively mitigates any potential frailty in the initial and trailing segments of the signal. This can also be useful in creating smoother overlaps when applying transitions to the generated clips. ### What is _“Speech Recognition Audio Padding”_? Audio padding involves the expansion of the identified speech segment at its commencement or conclusion. This can be useful in creating smoother overlaps when applying transitions to the generated clips." ### What is _“Smart Duration”_? Keep scene duration automatically synced with content in the timeline. ### What is _“Text Format”_? Text Format refers to the way input text is interpreted and rendered. - _“Plain”_ format renders the input text as plain text without any formatting. - _“HTML”_ format renders the input text as HTML. - _“Markdown”_ format renders the input text as Markdown. - _“JavaScript”_ format allows for more advanced manipulation of the input text. This format provides access to a standard JavaScript API and additional context variables such as `presentation.time`, `presentation.frame`, `media.time`, `media.frame` and method `formatTime(time, pattern)`. This can be particularly useful for creating timers or displaying formatted timestamps, for example `formatTime(media.time, "mm:ss.SS")` ### What is _“Timeline Filter”_? Choose which clips to display on the timeline - all clips, only clips with video, or only clips with audio. ### What is _“Ignore Small Overlaps”_? When enabled, small overlaps between clips on the timeline are ignored - overlapping clips will be placed side by side instead of being stacked. Helps keep the timeline cleaner when working with tightly spaced edits. ### What is _“Ripple Drag & Trim”_? When enabled, dragging or trimming a clip will automatically move all following clips on the timeline - a "ripple" effect. This allows smooth editing without manually adjusting the position of other clips. ### What is _“Transcript Language”_? The captions are transcribed automatically during the recording process. For accuracy, spoken language needs to be selected. ### What is _“Easing Offset”_? Specifies when the filter values begins easing into a keyframe. This is especially useful when trimming the start of a clip, as it keeps the timing steady in relation to the media's original time. ### What is _“UI Scale”_? Adjust the interface size for better fit on high-DPI screens. The change takes effect immediately, but it is recommended to restart the app. ### What is _“Video Bitrate”_? Bitrate defines the amount of data (bits) that are conveyed or processed per second. A higher bitrate generally means better video quality. Optimal value depends on used codec, frame rate and resolution. Bitrate value is used only when the video _“Quality”_ setting is _“Default”_. ### What is _“Accelerated Encoder”_? Using browser built-in video encoder, in most cases, improves export times. However, not all FFmpeg encoders (or its flags) have browser alternative. ### What is _“Video Compression”_? The compression speed of a video encoder determines the balance between file size and encoding time. Slower compressions reduce the output file size but increase encoding times. Adjust the compression based on your priority: smaller files or faster processing. This setting is not available for _“Accelerated Encoder”_. ### What is _“Video Encoding Quality”_? The quality setting of a video encoder affects the output's visual fidelity and file size. Lower quality settings produce smaller files but may introduce visual artifacts. Higher quality settings yield near-lossless visuals but result in significantly larger output sizes. Lossless quality is not available for _“Accelerated Encoder”_. ### What is _“Smoothing Window”_? The smoothing window defines how many consecutive frames are analyzed together to determine stabilization. A larger window results in smoother motion but may reduce responsiveness to quick camera movements. ### What is _“Shader FragCoord.xyz Audio Texture”_? The audio input is passed into the shader as a **512×512** pixel 2D texture, separating frequency and waveform into distinct color channels and tracks a **historical buffer** of an audio: - **Red and blue** channels contains the **FFT** (Fast Fourier Transform) frequency magnitude data. - **Green** channel contains the raw **PCM waveform** audio data. The vertical rows of the texture map directly to time, creating a visual waterfall buffer where top row represents the most recent, live audio frame matching the current playback position and bottom row represents the historical state of the audio from approx. 8.5 seconds ago (60fps across the 512 rows). Many FragCoord.xyz scripts natively use the default name `u_audio` just like this environment, but FragCoord.xyz allows for custom, dynamic naming of input textures. If your shader configuration uses another variable name (e.g., u_myCustomAudio), rename the variable inside the code to `u_audio`, or use a global definition at the very top of your script `#define u_myCustomAudio u_audio`. Example implementation: ``` void main() { vec2 uv = gl_FragCoord.xy / u_resolution; int tx = int(uv.x * 512.0); int ty = int((1. - uv.y) * 512.0); vec4 audio = texelFetch(u_audio, ivec2(tx, ty), 0); float fft = audio.r; float pcm = audio.g; fragColor = vec4(fft, pcm, 0., 1.); } ``` ### What is _“Shader Paper Audio Texture”_? The Paper compatibility does not currently support audio inputs. ### What is _“Shader Shadertoy.com Audio Texture”_? The audio input is passed into the shader as **512×2** pixel 2D texture, containing two distinct audio profiles: - **Top row contains the FFT** (Fast Fourier Transform) frequency magnitude data. - **Bottom row contains the raw PCM waveform** audio data. Shadertoy.com scripts reference audio inputs using the `iChannel0` uniform. In this environment, the audio texture is mapped to `u_audio`. You can manually adapt any Shadertoy.com code by mapping (renaming) texture uniform or adding `#define iChannel0 u_audio` at the top of your script. Example implementation: ``` void mainImage(out vec4 fragColor, in vec2 fragCoord) { vec2 uv = fragCoord / iResolution.xy; int tx = int(uv.x * 512.0); int ty = uv.y < 0.5 ? 1 : 0; float r = texelFetch(u_audio, ivec2(tx, ty), 0).r; fragColor = vec4(r, r, r, 1.); } ``` ### What is _“Shader Compatibility FragCoord.xyz”_? Allows running single-pass shaders directly from [FragCoord.xyz](https://fragcoord.xyz) by providing full environment compatibility. It exposes standard and custom inputs: | Input Type | Input Name | Description | | ---| ---| --- | | uniform sampler2D | u_audio | audio clip | | uniform vec3 | u_camera_dir | 0, 0, 0 | | uniform vec3 | u_camera_pos | 0, 0, 0 | | uniform int | u_color_gamut | 0 | | uniform vec4 | u_date | year, month, day, time in seconds | | uniform vec2 | u_drag | 0, 0 | | uniform int | u_frame | clip frame | | uniform int | u_max_recursion | 0 | | uniform vec4 | u_mouse | 0, 0, 0, 0 | | uniform int | u_recursion | 0 | | uniform float | u_refresh_rate | presentation frame rate | | uniform vec2 | u_resolution | clip texture resolution (in pixels) | | uniform float | u_scroll | 0 | | uniform sampler2D | u_tex0 | clip texture | | uniform sampler2D | u_tex1 | referenced clip texture | | uniform sampler2D | u_tex2 | referenced clip texture | | uniform sampler2D | u_tex3 | referenced clip texture | | uniform float | u_time | clip time (in seconds) | | uniform float | u_time_delta | presentation frame duration (in seconds) | | uniform float | u_param0 | custom parameter | | uniform float | u_param1 | custom parameter | | uniform float | u_param2 | custom parameter | | uniform float | u_param3 | custom parameter | | uniform vec2 | u_texResolutionScene[4] | clip texture resolution on scene | Shader code must include the `main()` function: ``` void main() { vec2 uv = gl_FragCoord.xy / u_resolution; vec4 texColor = texture(u_tex0, uv); vec4 blueColor = vec4(0.0, 0.0, 1.0, 1.0); fragColor = mix(texColor, blueColor, uv.x); } ``` ### What is _“Shader Compatibility Paper”_? Allows running single-pass shaders directly from [Paper](https://shaders.paper.design/) by providing full environment compatibility. It exposes standard and custom inputs: | Input Type | Input Name | Description | | ---| ---| --- | | uniform float | u_fit | how to fit the rendered shader into the canvas dimensions (0 = none, 1 = contain, 2 = cover) | | uniform sampler2D | u_image | clip texture | | uniform float | u_imageAspectRatio | aspect ratio of the source image | | uniform sampler2D | u_noiseTexture | referenced clip texture | | uniform float | u_offsetX | horizontal offset of the graphics center (-1 to 1) | | uniform float | u_offsetY | vertical offset of the graphics center (-1 to 1) | | uniform float | u_originX | reference point for positioning world width in the canvas (0 to 1) | | uniform float | u_originY | reference point for positioning world height in the canvas (0 to 1) | | uniform float | u_pixelRatio | device pixel ratio | | uniform vec2 | u_resolution | clip texture resolution (in pixels) | | uniform float | u_rotation | overall rotation angle of the graphics in degrees (0 to 360) | | uniform float | u_scale | overall zoom level of the graphics (0.01 to 4) | | uniform sampler2D | u_tex2 | referenced clip texture | | uniform sampler2D | u_tex3 | referenced clip texture | | uniform float | u_time | clip time (in seconds) | | uniform float | u_worldHeight | virtual height of the graphic before it's scaled to fit the canvas | | uniform float | u_worldWidth | virtual width of the graphic before it's scaled to fit the canvas | | uniform float | u_param0 | custom parameter | | uniform float | u_param1 | custom parameter | | uniform float | u_param2 | custom parameter | | uniform float | u_param3 | custom parameter | | uniform vec2 | u_texResolutionScene[4] | clip texture resolution on scene | Shader code must include the `main()` function: ``` void main() { vec2 uv = v_imageUV; vec4 texColor = texture(u_image, uv); vec4 blueColor = vec4(0.0, 0.0, 1.0, 1.0); fragColor = mix(texColor, blueColor, uv.x); } ``` ### What is _“Shader Compatibility Shadertoy.com”_? Allows running single-pass shaders directly from [Shadertoy.com](https://www.shadertoy.com) by providing full environment compatibility. It exposes standard and custom inputs: | Input Type | Input Name | Description | | ---| ---| --- | | uniform sampler2D | iChannel0 | clip texture | | uniform sampler2D | iChannel1 | referenced clip texture | | uniform sampler2D | iChannel2 | referenced clip texture | | uniform sampler2D | iChannel3 | referenced clip texture | | uniform vec3 | iChannelResolution[4] | clip texture resolution (in pixels) | | uniform float | iChannelTime[4] | clip time (in seconds) | | uniform vec4 | iDate | year, month, day, time in seconds | | uniform int | iFrame | clip frame | | uniform float | iFrameRate | presentation frame rate | | uniform vec4 | iMouse | 0, 0, 0, 0 | | uniform vec3 | iResolution | clip texture resolution (in pixels) | | uniform float | iTime | clip time (in seconds) | | uniform float | iTimeDelta | presentation frame duration (in seconds) | | uniform sampler2D | u_audio | audio clip | | uniform float | u_param0 | custom parameter | | uniform float | u_param1 | custom parameter | | uniform float | u_param2 | custom parameter | | uniform float | u_param3 | custom parameter | | uniform vec2 | u_texResolutionScene[4] | clip texture resolution on scene | Shader code must include the `mainImage()` function: ``` void mainImage(out vec4 fragColor, in vec2 fragCoord) { vec2 uv = fragCoord / iResolution.xy; vec4 texColor = texture(iChannel0, uv); vec4 blueColor = vec4(0.0, 0.0, 1.0, 1.0); fragColor = mix(texColor, blueColor, uv.x); } ``` ### How does filter _“Basic Transition”_ work? Applies configurable motion presets for dynamic element transitions. ### How does filter _“Blur”_ work? Applies a blur algorithm to the video. ### How does filter _“Captions Optimizer”_ work? Optimizes fragmented, karaoke captions into cohesive sentences to improve readability. When enabled, the text cannot be edited in preview. ### How does filter _“Captions Speaker”_ work? Distinguishes speakers with unique styles and toggle their individual caption visibility. To manage multiple speakers, another instance of this filter must be added and assigned to a different speaker. ### How does filter _“Censor”_ work? Obscures sensitive elements like faces or license plates. ### How does filter _“Color Correction”_ work? Adjusts the visual aesthetics of a video using comprehensive color grading options. ### How does filter _“Colorkey”_ work? Colorkeys (removes) green or other desired background color. ### How does filter _“Curves”_ work? Adjusts points throughout an image’s tonal range. ### How does filter _“Start Time”_ work? Sets clip position on the playhead. ### How does filter _“Drop Shadow”_ work? Applies a drop shadow effect to the video. ### How does filter _“Fill Borders & Vignette”_ work? Fills borders of the input video with a solid color or a gradient. ### How does filter _“Flip”_ work? Flips video horizontally and/or vertically. ### How does filter _“Glitch 1”_ work? A glitch filter that offsets RGB channels, creating a nostalgic, distorted visual effect reminiscent of old, malfunctioning video tapes. ### How does filter _“Glitch 2”_ work? Simulates video glitches incorporating random simplex noise displacement, RGB channel shifting, and horizontal line pattern distortions. ### How does filter _“Gradient Fill”_ work? Fills video with a defined gradient. ### How does filter _“Grain”_ work? Adds a grainy texture reminiscent of traditional photographic film. ### How does filter _“Invert”_ work? Inverts (negates) the color samples in the video. ### How does filter _“Load”_ work? Initializes media input. ### How does filter _“LUT”_ work? Applies a predefined Look-Up Table (LUT) to efficiently adjust, grade, or transform colors. Only 3D .cube LUT files are supported. ### How does filter _“Magnify”_ work? Magnifies or shrinks a specified area of the video with optional lens distortions. ### How does filter _“Mask”_ work? Defines areas of an video to be transparent, opaque, or partially transparent. The order of _“Mask”_ filter is important. If the rendered output is misaligned, try rearranging the filters and place the _“Mask”_ filter last. ### How does filter _“Motion Blur”_ work? Blends successive frames, creating a sense of motion and smooth transitions. During video editing, the effect is optimized for performance and may not appear as it will in the final export. The effect will be fully rendered in Export or Live Render. ### How does filter _“Noise Reduction”_ work? Reduces background noise from audio. The _“Noise Reduction”_ filter is not active during the simulation phase, preserving real-time performance. ### How does filter _“Opacity”_ work? Adjusts the video opacity. ### How does filter _“Outline”_ work? Draws a border around the non-transparent areas of the video, highlighting the defined shapes. ### How does filter _“Pixelate”_ work? Pixelates video and obscures or censors objects with a mosaic effect. ### How does filter _“Position”_ work? Adjusts video position. ### How does filter _“Progress Bar”_ work? Displays an animated preview of how long the video will be. ### How does filter _“Radial Zoom Blur”_ work? Creates a dynamic zoom effect, producing a motion blur that radiates outward. ### How does filter _“Repeat”_ work? Loops media or last frame. ### How does filter _“Rounded Corners”_ work? Rounds the corners of a video outer edge. ### How does filter _“Speed”_ work? Adjusts speed and reverse. ### How does filter _“Text Animation”_ work? Animates characters, words, or lines independently for engaging effects. The _“Text Animation”_ filter is effective only on text or captions clips. ### How does filter _“Text Postprocess”_ work? Automatically modifies text by removing non-alphanumeric characters or replacing words with emojis. When enabled, the text cannot be edited in preview. ### How does filter _“Transform”_ work? Crops, scales (resizes) and rotates the input video. ### How does filter _“Unsharp Mask”_ work? Enhances video sharpness by accentuating the contrast between edges in a picture. ### How does filter _“Video Stabilizer”_ work? Reduces camera shake to produce smoother, more stable footage. To restore clarity lost during stabilization, consider adding an _“Unsharp Mask”_ filter to enhance image sharpness. ### How does filter _“Volume”_ work? Adjusts audio volume. ### How does filter _“Waveform”_ work? Renders an animated waveform from audio, with customizable styles and parameters for visualizing sound. ### How does filter _“Shader”_ work? Renders custom GLSL fragment shaders fully compatible with the Shadertoy.com or FragCoord.xyz environment. ### How does filter _“Zoom”_ work? Zooms in or out on specified coordinates of video, creating dynamic Ken Burns effect. For optimal output quality, ensure that the _“Zoom”_ filter is scheduled before the _“Scale”_ filter if both are in use. For distortion effects, use the _“Magnify”_ filter instead.