ShaderToMP4

HomeAccueil / ReferenceRéférence

Settings referenceRéférence des réglages

Written by the program itself (ShaderToMP4 --dump-reference=settings): every key that config.ini can hold, with the value it gets by default. A key can be written in config.ini, in a // key=value comment of a shader and on the command line as --key=value.

KeyDefaultDescription
width1920picture width in pixels, 16 to 16384 (rounded to an even number)
height1080picture height in pixels, 16 to 16384 (rounded to an even number)
fps60frames per second, 1 to 240
duration90seconds (90 = one full loop of this shader)
start0start time (iTime) in seconds
crf12quality: 0 = lossless, 12 = nearly perfect, 18 = very good
presetslowultrafast ... medium ... slow ... veryslow (slower = smaller file)
codech264h264, h265, vp9 or av1
containermp4mp4, mov, mkv or webm
ss1smoothing (supersampling): 1 = none, 2 = x2, 3 = x3, 4 = x4
outdiremptyoutput folder (empty = next to the shader)
bitrate0kb/s; 0 = constant quality (crf)
colorbt709bt709, bt709full (full range), srgb or bt601
blur1motion blur: sub-frames per frame (1 = none, 4, 8, 16)
shutter0.5blur shutter, as a fraction of a frame (0.5 = 180 degrees)
loop0shader period in seconds: the duration becomes a whole multiple (0 = free)
audioemptysound file mixed into the video, aligned with the start time (empty = none)
fadein0fade-in in seconds (picture and sound)
fadeout0fade-out in seconds
encodercpucpu, auto, nvenc, amf or qsv (hardware encoding when available)
pbo3depth of the GPU read-back queue (2 to 8)
depth88 or 10 (bits per channel; 10 for H.265, AV1, VP9, ProRes, 16-bit PNG/TIFF)
nameemptyoutput file name template: {shader} {w} {h} {fps} {date} {codec}
existsoverwritewhen the output already exists: overwrite, number or skip
gpudefaultgraphics card on a two-GPU PC (Linux): default, high (the powerful one) or low (the integrated one); needs a restart
endactionnoneafter a successful batch: none, folder (show the last file) or sleep
chunk30render in parts of N seconds, resumable after an interruption (0 = never)
warmup0warm-up: frames simulated before the first one (buffers are warmed up, iFrame starts at N), 0 = none
vrautomainVR shader: auto (when there is no mainImage), off, mono or stereo (360° equirectangular, stereo = left eye on top)
vripd0.064distance between the two eyes of the stereo VR render, in shader units (0.064 by default)
metadata11 = write title and comment in the video file, 0 = none
loopmodewritten only when it is no longer the defaultseamless loop: none | crossfade | pingpong
loopfadewritten only when it is no longer the defaultduration of the crossfade loop in seconds
timemapwritten only when it is no longer the defaulttime curve video:shader in seconds, for example 0:0;4:1;8:5 (empty = real time)
speedwritten only when it is no longer the defaultspeed of the shader time (0.25 = four times slower)
audiofollowwritten only when it is no longer the defaultthe sound follows the constant speed (tempo, pitch kept)
iChannel0written only when it is no longer the defaulttexture of iChannel0-3: image path, noise or grid (+ .filter nearest|linear|mipmap, .wrap clamp|repeat, .vflip 0|1)
bufferAwritten only when it is no longer the defaultsize of Buffer A to D: bufferA.scale (fraction of the render size) or bufferA.size (WxH pixels)
datewritten only when it is no longer the defaultfixed iDate: YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS (reproducible render), add +rate=R for seconds of date per second of video (default 1, 0 = frozen)
variantwritten only when it is no longer the defaultextra rendering of the same shader: name:key=value|key=value (e.g. 720p:width=1280|height=720|crf=23); repeat the line for each variant
reportwritten only when it is no longer the defaultrender report next to the video: json or text (off = none)
sampleswritten only when it is no longer the defaultstill image: samples averaged (1 = one)
precheckwritten only when it is no longer the defaultquality check before each video render (flashes, invalid values)
targetwritten only when it is no longer the defaultpublication target: youtube-shorts, tiktok, instagram-reel, discord, x, ... (see presets/targets.ini), sets size, duration, codec and weight
targetsizewritten only when it is no longer the defaulttarget file size, e.g. 8MB or 25MB: the bitrate is computed and corrected until the file fits (h264, h265, vp9, av1)
cropwritten only when it is no longer the defaultcrop after rendering: W:H, W:H:X:Y or a ratio such as 9:16 (centred); the shader is rendered in full
mastercachewritten only when it is no longer the default1 = keep a lossless master in cache/ and derive every format from it without rendering again
cachemaxwritten only when it is no longer the defaultmaximum size of cache/ in GB (oldest masters are removed first)
embedwritten only when it is no longer the default1 = embed the shader, its passes and the settings in the video tag so --reproduce can render it again
animpreviewwritten only when it is no longer the defaultanimated preview of the finished video: off, gif or webp (a short loop next to the video)
sourcewritten only when it is no longer the defaulteffect mode: a video, an image, a sequence (img_%04d.png) or a folder, read as iChannel0; size, rate, duration and sound follow it
source2written only when it is no longer the defaultsecond source, iChannel1: with a shader that reads iProgress, a transition from source to source2
sourcematchwritten only when it is no longer the defaultwhat the source imposes when source is set: size, fps, duration (a list) or none
sourceaudiowritten only when it is no longer the default1 = take the sound of the source (default), 0 = keep the audio setting
reversewritten only when it is no longer the default1 = play the time range backwards
sourcefpswritten only when it is no longer the defaultrate of an image sequence used as source, in images per second (0 = 25)
transitiondurationwritten only when it is no longer the defaultduration of the transition between source and source2, in seconds
transitionoffsetwritten only when it is no longer the defaultshifts the start of the transition, in seconds (positive = later)
parallelwritten only when it is no longer the defaultparts rendered at the same time by this many OpenGL contexts (1 to 16; needs chunk, the render by parts)
farmwritten only when it is no longer the defaultshared folder of a render farm: several computers render the parts of the same video (needs chunk)
farmtimeoutwritten only when it is no longer the defaultseconds without a sign of life after which the lock of a farm part is taken over (computer switched off)
bpmwritten only when it is no longer the defaulttempo imposed on the sound analysis, in beats per minute (0 or absent = detected)
beatsperbarwritten only when it is no longer the defaultbeats per bar (2 to 12), used for the bars and the sections
markerswritten only when it is no longer the defaultmarkers from the rhythm of the sound: off, chapters (sections as chapters of the file), file (marker files) or all
beatsyncwritten only when it is no longer the defaultmontage: cuts placed on the music: off, beat, bar or section
autocreditwritten only when it is no longer the default1 = write the shader title and author on the first seconds of the video
stillformatwritten only when it is no longer the defaultstill image format: png | tiff (16 bits per channel with depth=10)
aovwritten only when it is no longer the defaultoutput passes written to EXR sequences: name=bufferB.r;normal=bufferC.rgb;alpha;motion (off clears)
exrcompressionwritten only when it is no longer the defaultEXR compression: none, zips (one line per block) or zip (sixteen lines, default)
exrprecisionwritten only when it is no longer the defaultEXR precision of the colour: half (16 bits, default) or float (32 bits); depth and id are always 32 bits
alphamodewritten only when it is no longer the defaultalpha written to PNG, TIFF, DPX and EXR: straight (default) or premult (colour multiplied by alpha)
depthrangewritten only when it is no longer the defaultdepth bounds near:far: the depth.Z channel is written normalised between them and the bounds are declared in the EXR header (empty: raw values)
tifffloatwritten only when it is no longer the default1 = TIFF sequences written by the program in 32-bit floating point (RGB or RGBA)
vectorblurwritten only when it is no longer the defaultvector motion blur of the EXR output: fraction of the movement between two frames (0 = none, 1 = all of it); needs a motion pass
tilewritten only when it is no longer the defaultstill image: tile side in pixels (0 = automatic)
printdpiwritten only when it is no longer the defaultPNG still image: resolution written in the file (dots per inch)
alphawritten only when it is no longer the default1 keeps the alpha channel of the shader (ProRes 4444, VP9 WebM, WebP, PNG, TIFF, EXR)
hdrwritten only when it is no longer the defaultHDR output: pq (HDR10) or hlg; off for none
hdrpeakwritten only when it is no longer the defaultdeclared MaxCLL in cd/m² (1000 by default)
hdrfallwritten only when it is no longer the defaultdeclared MaxFALL in cd/m² (400 by default)
hdrwhitewritten only when it is no longer the defaultluminance in cd/m² of a shader white of 1.0 (203 by default)
interpwritten only when it is no longer the defaultoutput frame rate by interpolation (0 = none); the render is made at fps
scalewritten only when it is no longer the defaultoutput size: 1920x1080, a factor (2, 0.5x); empty = the render size
scalefilterwritten only when it is no longer the defaultscaling filter: lanczos, bicubic, bilinear, area or neighbor
loudnormwritten only when it is no longer the defaultsound normalization in LUFS, for example -16 (0 or off = none)
titlewritten only when it is no longer the defaulttext drawn in the middle of the picture during the first seconds
creditwritten only when it is no longer the defaulttext drawn at the bottom left during the first seconds
titledurwritten only when it is no longer the defaultduration in seconds of title and credit (3 by default)
postwritten only when it is no longer the defaultpost-processing effects, e.g. bloom:0.4,grain,vignette (sharpen chroma bloom contrast saturation hue vignette grain; amount after the colon)
lutwritten only when it is no longer the defaultcolor LUT in .cube format applied after the effects (1D or 3D, path relative to the shader)

The Pro edition adds its own keys (3D scene, signals and data, colour and quality, dressing and delivery, performance): they are listed in the Pro settings window, one field per key.

Écrit par le programme lui-même (ShaderToMP4 --dump-reference=settings) : toutes les clés que config.ini peut contenir, avec leur valeur par défaut. Une clé s'écrit dans config.ini, dans un commentaire // clé=valeur d'un shader et sur la ligne de commande sous la forme --clé=valeur.

CléDéfautDescription
width1920largeur de l'image en pixels, 16 à 16384 (arrondie à un nombre pair)
height1080hauteur de l'image en pixels, 16 à 16384 (arrondie à un nombre pair)
fps60images par seconde, 1 à 240
duration90secondes (90 = une boucle complète de ce shader)
start0temps de départ (iTime) en secondes
crf12qualité : 0 = sans perte, 12 = quasi parfait, 18 = très bon
presetslowultrafast ... medium ... slow ... veryslow (plus lent = fichier plus petit)
codech264h264, h265, vp9 ou av1
containermp4mp4, mov, mkv ou webm
ss1lissage (supersampling) : 1 = aucun, 2 = x2, 3 = x3, 4 = x4
outdirvidedossier de sortie (vide = à côté du shader)
bitrate0kb/s ; 0 = qualité constante (crf)
colorbt709bt709, bt709full (pleine plage), srgb ou bt601
blur1flou de mouvement : sous-images par image (1 = aucun, 4, 8, 16)
shutter0.5obturateur du flou, en fraction d'une image (0.5 = 180 degrés)
loop0période du shader en secondes : la durée devient un multiple entier (0 = libre)
audiovidefichier son mixé dans la vidéo, aligné sur l'instant de début (vide = aucun)
fadein0fondu d'entrée en secondes (image et son)
fadeout0fondu de sortie en secondes
encodercpucpu, auto, nvenc, amf ou qsv (encodage matériel si disponible)
pbo3profondeur de la file de lecture GPU (2 à 8)
depth88 ou 10 (bits par canal ; 10 pour H.265, AV1, VP9, ProRes, PNG/TIFF en 16 bits)
namevidemodèle du nom de sortie : {shader} {w} {h} {fps} {date} {codec}
existsoverwritesi la sortie existe déjà : overwrite (écraser), number (numéroter) ou skip (ignorer)
gpudefaultcarte graphique sur un PC à deux GPU (Linux) : default, high (la puissante) ou low (l'intégrée) ; demande un redémarrage
endactionnoneaprès un lot réussi : none, folder (montrer le dernier fichier) ou sleep (veille)
chunk30rendu par parties de N secondes, reprenable après interruption (0 = jamais)
warmup0chauffe : images simulées avant la première (les tampons sont chauffés, iFrame démarre à N), 0 = aucune
vrautoshader mainVR : auto (quand il n'y a pas de mainImage), off, mono ou stereo (360° équirectangulaire, stereo = œil gauche en haut)
vripd0.064distance entre les deux yeux du rendu VR stéréo, en unités du shader (0.064 par défaut)
metadata11 = écrire titre et commentaire dans le fichier vidéo, 0 = aucun
loopmodeécrite seulement quand elle n'a plus sa valeur par défautboucle sans couture : none | crossfade | pingpong
loopfadeécrite seulement quand elle n'a plus sa valeur par défautdurée du fondu de la boucle en secondes
timemapécrite seulement quand elle n'a plus sa valeur par défautcourbe de temps vidéo:shader en secondes, par exemple 0:0;4:1;8:5 (vide = temps réel)
speedécrite seulement quand elle n'a plus sa valeur par défautvitesse du temps du shader (0.25 = quatre fois plus lent)
audiofollowécrite seulement quand elle n'a plus sa valeur par défautle son suit la vitesse constante (tempo, hauteur conservée)
iChannel0écrite seulement quand elle n'a plus sa valeur par défauttexture de iChannel0-3 : chemin d'image, noise ou grid (+ .filter nearest|linear|mipmap, .wrap clamp|repeat, .vflip 0|1)
bufferAécrite seulement quand elle n'a plus sa valeur par défauttaille des Buffer A à D : bufferA.scale (fraction de la taille du rendu) ou bufferA.size (pixels LxH)
dateécrite seulement quand elle n'a plus sa valeur par défautiDate fixe : AAAA-MM-JJ ou AAAA-MM-JJTHH:MM:SS (rendu reproductible), ajouter +rate=R pour R secondes de date par seconde de vidéo (1 par défaut, 0 = figée)
variantécrite seulement quand elle n'a plus sa valeur par défautrendu supplémentaire du même shader : nom:clé=valeur|clé=valeur (ex. 720p:width=1280|height=720|crf=23) ; une ligne par variante
reportécrite seulement quand elle n'a plus sa valeur par défautrapport de rendu à côté de la vidéo : json ou text (off = aucun)
samplesécrite seulement quand elle n'a plus sa valeur par défautimage fixe : échantillons moyennés (1 = un seul)
precheckécrite seulement quand elle n'a plus sa valeur par défautcontrôle qualité avant chaque rendu vidéo (flashs, valeurs invalides)
targetécrite seulement quand elle n'a plus sa valeur par défautdestination de publication : youtube-shorts, tiktok, instagram-reel, discord, x, ... (voir presets/targets.ini), règle taille, durée, codec et poids
targetsizeécrite seulement quand elle n'a plus sa valeur par défautpoids cible du fichier, par ex. 8MB ou 25MB : le débit est calculé et corrigé jusqu'à ce que le fichier tienne (h264, h265, vp9, av1)
cropécrite seulement quand elle n'a plus sa valeur par défautrecadrage après rendu : L:H, L:H:X:Y ou un rapport comme 9:16 (centré) ; le shader est rendu en entier
mastercacheécrite seulement quand elle n'a plus sa valeur par défaut1 = garde un maître sans perte dans cache/ et en tire chaque format sans refaire le rendu
cachemaxécrite seulement quand elle n'a plus sa valeur par défauttaille maximale de cache/ en Go (les maîtres les plus anciens partent en premier)
embedécrite seulement quand elle n'a plus sa valeur par défaut1 = embarque le shader, ses passes et les réglages dans la balise de la vidéo pour que --reproduce puisse la refaire
animpreviewécrite seulement quand elle n'a plus sa valeur par défautaperçu animé de la vidéo terminée : off, gif ou webp (une courte boucle à côté de la vidéo)
sourceécrite seulement quand elle n'a plus sa valeur par défautmode effet : une vidéo, une image, une séquence (img_%04d.png) ou un dossier, lus comme iChannel0 ; taille, cadence, durée et son la suivent
source2écrite seulement quand elle n'a plus sa valeur par défautdeuxième source, iChannel1 : avec un shader qui lit iProgress, une transition de source vers source2
sourcematchécrite seulement quand elle n'a plus sa valeur par défautce que la source impose quand source est réglé : size, fps, duration (une liste) ou none
sourceaudioécrite seulement quand elle n'a plus sa valeur par défaut1 = reprendre le son de la source (défaut), 0 = garder le réglage audio
reverseécrite seulement quand elle n'a plus sa valeur par défaut1 = jouer la plage de temps à l'envers
sourcefpsécrite seulement quand elle n'a plus sa valeur par défautcadence d'une séquence d'images utilisée comme source, en images par seconde (0 = 25)
transitiondurationécrite seulement quand elle n'a plus sa valeur par défautdurée de la transition entre source et source2, en secondes
transitionoffsetécrite seulement quand elle n'a plus sa valeur par défautdécale le début de la transition, en secondes (positif = plus tard)
parallelécrite seulement quand elle n'a plus sa valeur par défautparties rendues en même temps par autant de contextes OpenGL (1 à 16 ; demande chunk, le rendu par parties)
farmécrite seulement quand elle n'a plus sa valeur par défautdossier partagé d'une ferme de rendu : plusieurs ordinateurs rendent les parties d'une même vidéo (demande chunk)
farmtimeoutécrite seulement quand elle n'a plus sa valeur par défautsecondes sans signe de vie après lesquelles le verrou d'une partie de la ferme est repris (ordinateur éteint)
bpmécrite seulement quand elle n'a plus sa valeur par défauttempo imposé à l'analyse du son, en temps par minute (0 ou absent = détecté)
beatsperbarécrite seulement quand elle n'a plus sa valeur par défauttemps par mesure (2 à 12), pour les mesures et les sections
markersécrite seulement quand elle n'a plus sa valeur par défautrepères tirés du rythme du son : off, chapters (sections en chapitres du fichier), file (fichiers de repères) ou all
beatsyncécrite seulement quand elle n'a plus sa valeur par défautmontage : coupes posées sur la musique : off, beat (temps), bar (mesures) ou section
autocreditécrite seulement quand elle n'a plus sa valeur par défaut1 = écrit le titre et l'auteur du shader sur les premières secondes de la vidéo
stillformatécrite seulement quand elle n'a plus sa valeur par défautformat de l'image fixe : png | tiff (16 bits par canal avec depth=10)
aovécrite seulement quand elle n'a plus sa valeur par défautpasses de sortie écrites dans une séquence EXR : nom=bufferB.r;normal=bufferC.rgb;alpha;motion (off efface)
exrcompressionécrite seulement quand elle n'a plus sa valeur par défautcompression EXR : none, zips (une ligne par bloc) ou zip (seize lignes, défaut)
exrprecisionécrite seulement quand elle n'a plus sa valeur par défautprécision de la couleur EXR : half (16 bits, défaut) ou float (32 bits) ; la profondeur et les identifiants sont toujours en 32 bits
alphamodeécrite seulement quand elle n'a plus sa valeur par défautalpha écrit dans les PNG, TIFF, DPX et EXR : straight (droit, défaut) ou premult (couleur multipliée par l'alpha)
depthrangeécrite seulement quand elle n'a plus sa valeur par défautbornes de la profondeur proche:loin : le canal depth.Z est écrit normalisé entre elles et les bornes sont déclarées dans l'en-tête EXR (vide : valeurs brutes)
tifffloatécrite seulement quand elle n'a plus sa valeur par défaut1 = séquences TIFF écrites par le programme en virgule flottante 32 bits (RGB ou RGBA)
vectorblurécrite seulement quand elle n'a plus sa valeur par défautflou de mouvement vectoriel de la sortie EXR : part du déplacement entre deux images (0 = aucun, 1 = tout) ; demande une passe de mouvement
tileécrite seulement quand elle n'a plus sa valeur par défautimage fixe : côté des tuiles en pixels (0 = automatique)
printdpiécrite seulement quand elle n'a plus sa valeur par défautimage fixe PNG : résolution écrite dans le fichier (points par pouce)
alphaécrite seulement quand elle n'a plus sa valeur par défaut1 garde le canal alpha du shader (ProRes 4444, VP9 WebM, WebP, PNG, TIFF, EXR)
hdrécrite seulement quand elle n'a plus sa valeur par défautsortie HDR : pq (HDR10) ou hlg ; off pour aucune
hdrpeakécrite seulement quand elle n'a plus sa valeur par défautMaxCLL déclaré en cd/m² (1000 par défaut)
hdrfallécrite seulement quand elle n'a plus sa valeur par défautMaxFALL déclaré en cd/m² (400 par défaut)
hdrwhiteécrite seulement quand elle n'a plus sa valeur par défautluminance en cd/m² d'un blanc de shader à 1,0 (203 par défaut)
interpécrite seulement quand elle n'a plus sa valeur par défautcadence de sortie par interpolation (0 = aucune) ; le rendu se fait à fps
scaleécrite seulement quand elle n'a plus sa valeur par défauttaille de sortie : 1920x1080, un facteur (2, 0.5x) ; vide = la taille du rendu
scalefilterécrite seulement quand elle n'a plus sa valeur par défautfiltre de mise à l'échelle : lanczos, bicubic, bilinear, area ou neighbor
loudnormécrite seulement quand elle n'a plus sa valeur par défautnormalisation du son en LUFS, par exemple -16 (0 ou off = aucune)
titleécrite seulement quand elle n'a plus sa valeur par défauttexte dessiné au milieu de l'image pendant les premières secondes
creditécrite seulement quand elle n'a plus sa valeur par défauttexte dessiné en bas à gauche pendant les premières secondes
titledurécrite seulement quand elle n'a plus sa valeur par défautdurée en secondes de title et credit (3 par défaut)
postécrite seulement quand elle n'a plus sa valeur par défauteffets de post-traitement, par ex. bloom:0.4,grain,vignette (sharpen chroma bloom contrast saturation hue vignette grain ; quantité après les deux-points)
lutécrite seulement quand elle n'a plus sa valeur par défautLUT couleur au format .cube appliquée après les effets (1D ou 3D, chemin relatif au shader)

L'édition Pro ajoute ses propres clés (scène 3D, signaux et données, couleur et qualité, habillage et diffusion, performance) : elles sont listées dans la fenêtre des réglages Pro, un champ par clé.