ShaderToMP4

HomeAccueil / ReferenceRéférence

Command lineLigne de commande

The options of ShaderToMP4, written by the program itself (ShaderToMP4 --dump-reference=cli); they are the lines of --help. Any setting of the settings reference can be given as --key=value.

OptionDescription
shader filesAdd the files and start rendering right away
--selftestRender the reference shaders and compare them (see tests/)
--updateWith --selftest: rewrite the reference images
--renderRender the files without a window (any system, see below)
--quietNo message box (--selftest, --get-ffmpeg)
--get-ffmpegDownload and install ffmpeg, without a window
--versionShow the version, copyright and license
--helpShow this help
--key=valueAny setting of the settings table (--width=1280 --codec=h265 --container=mp4 --crf=18 --outdir=C:\out ...)
--profile=fApply an .ini profile (the --key=value options come after it)
--progress=json|text|noneJSON lines (start, progress, log, done, error, end) or a line every 10 %
--pngRender a single PNG image at the start time
--thumb[=s]A cover thumbnail PNG (1280 pixels wide at most) at second s, by default the middle of the range
--verifyRe-read finished videos: duration, rate, frame count, SHA-256, and compare with the render report; exit code 7 on a mismatch
--beats[=list|clear] sound...analyse the tempo, beats, bars and sections of sound files (writes <sound>.beats.json next to each; list prints the times, clear removes the corrections made by hand)
--parallel=N, --farm=folder, --farm-status folderrender the parts of a video with N OpenGL contexts, or with several computers on a shared folder (same command on each; --farm-status lists the parts done, in progress and free); needs --chunk; --benchmark --parallel measures the gain
--source=file|folder|img_%04d.png, --source2=fileapply the shader to a video, an image, a sequence or every file of a folder (iChannel0; the second source is iChannel1 and iProgress runs from 0 to 1 for transitions); size, rate, duration, sound, subtitles and chapters come from the source (--sourcematch=..., --sourceaudio=0), --reverse=1 plays backwards
--aov=depth=bufferB.r;normal=bufferC.rgb;alpha;motion, --exrcompression=none|zips|zip, --exrprecision=half|float, --alphamode=straight|premult, --depthrange=near:far, --tifffloat=1multilayer OpenEXR written by the program (container exr); --exr-info file|folder lists the layers, --depthmap file|folder [--depthinvert] writes a 16-bit depth map
--reproduceExtract the source embedded in a video (embed=1) and render it again into <video>_reproduced/
--export-htmlWrite a standalone HTML page (WebGL 2) from the shader and its passes instead of a video
--cache-purgeEmpty the lossless master cache (cache/ next to the program)
--check[=list]Quality check without rendering: flash, nan, flicker, alias, portability (all by default); exit code 6 when something is found
--compare a bCompare two shaders (--compare-video=sbs|curtain|diff, --tolerance=N); exit code 7 when they differ
--golden=record|verifyKeep reference frames of a shader in golden/ or check against them (exit code 7 on a change)
--dry-runEstimate the render time (a few measured seconds per file) without writing the video
--png=bestSmart thumbnail: the three richest frames of the range, written as name_thumb.png, name_thumb2.png, name_thumb3.png
--cubefaces[=n]The six faces (n x n pixels) of a cubemap of a mainVR shader: name_px.png, _nx, _py, _ny, _pz, _nz
--heatmap[=CxR]Cost map: the GPU time of each zone of the screen (16x9 by default) as name_heat.png
--samples=NWith --png: average N independent samples of the same instant (path-traced shaders)
--find-loop[=s]Search the period of the shader over s seconds (no render) and print the duration= / loop= to use
--sheet=CxRA contact sheet PNG of C x R thumbnails taken evenly over the duration (--sheet=4x3)
--param=name=valueSet a shader parameter (// uniform): --param=speed=2.5 or keyframes --param="speed=smooth 0:1 ; 4:3"
--watch=dirKeep running and render every .glsl / .txt that appears in the folder (stop with Ctrl+C; --watch-count=N stops after N renders)
--watch-moveWith --watch: move each shader (and its passes) to done/ or failed/ after its render; profile.ini in the folder or a sub-folder sets its settings
--log=fileAlso write everything that is displayed, with a time stamp, to this file (appended)
--report=json|textWrite a render report (time, speed, bottleneck, size, warnings) next to each video
a .json fileAn export of a Shadertoy shader (Export button of the page): imported into the "shadertoy" folder, then rendered. No account or key needed
--diagnosticPrint system, graphics card, OpenGL, ffmpeg and encoders (no path, no personal data) for a bug report
--benchmarkMeasure frames per second by resolution and encoder (--seconds=N, --quick, --full, --json, --compare=file, --max-drop=N)
--license-infoShow the license status and the file expected next to the program
--check-update[=url] [--download]Ask GitHub for the latest version (only when you run this); exit code 8 when a newer one exists; --download saves the installer in updates/ after checking its SHA-256, installs nothing

Exit codes: 0 all done, 1 a render failed, 2 invalid command line, 3 no OpenGL 3.3, 4 ffmpeg not found, 5 benchmark regression, 6 --check found something, 7 --compare / --golden found a difference

Les options de ShaderToMP4, écrites par le programme lui-même (ShaderToMP4 --dump-reference=cli) ; ce sont les lignes de --help. Tout réglage de la référence des réglages peut être donné sous la forme --clé=valeur.

OptionDescription
fichiers shaderAjoute les fichiers et lance le rendu tout de suite
--selftestRend les shaders de référence et les compare (voir tests/)
--updateAvec --selftest : réécrit les images de référence
--renderRend les fichiers sans fenêtre (tous les systèmes, voir plus bas)
--quietAucune boîte de message (--selftest, --get-ffmpeg)
--get-ffmpegTélécharge et installe ffmpeg, sans fenêtre
--versionAffiche la version, le copyright et la licence
--helpAffiche cette aide
--clé=valeurTout réglage du tableau des réglages (--width=1280 --codec=h265 --container=mp4 --crf=18 --outdir=C:\sortie ...)
--profile=fApplique un profil .ini (les options --clé=valeur passent après)
--progress=json|text|noneLignes JSON (start, progress, log, done, error, end) ou une ligne tous les 10 %
--pngRend une seule image PNG au temps de départ
--thumb[=s]Une vignette de couverture PNG (1280 pixels de large au plus) à la seconde s, par défaut au milieu de la plage
--verifyRelit des vidéos terminées : durée, cadence, nombre d'images, SHA-256, et les compare au rapport de rendu ; code de sortie 7 en cas de différence
--beats[=list|clear] son...analyse le tempo, les temps, les mesures et les sections de fichiers son (écrit <son>.beats.json à côté de chacun ; list affiche les instants, clear retire les corrections faites à la main)
--parallel=N, --farm=dossier, --farm-status dossierrend les parties d'une vidéo avec N contextes OpenGL, ou avec plusieurs ordinateurs sur un dossier partagé (la même commande sur chacun ; --farm-status liste les parties faites, en cours et libres) ; demande --chunk ; --benchmark --parallel mesure le gain
--source=fichier|dossier|img_%04d.png, --source2=fichierapplique le shader à une vidéo, une image, une séquence ou à chaque fichier d'un dossier (iChannel0 ; la deuxième source est iChannel1 et iProgress va de 0 à 1 pour les transitions) ; taille, cadence, durée, son, sous-titres et chapitres viennent de la source (--sourcematch=..., --sourceaudio=0), --reverse=1 joue à l'envers
--aov=depth=bufferB.r;normal=bufferC.rgb;alpha;motion, --exrcompression=none|zips|zip, --exrprecision=half|float, --alphamode=straight|premult, --depthrange=proche:loin, --tifffloat=1OpenEXR multicouche écrit par le programme (conteneur exr) ; --exr-info fichier|dossier liste les couches, --depthmap fichier|dossier [--depthinvert] écrit une carte de profondeur 16 bits
--reproduceExtrait la source embarquée dans une vidéo (embed=1) et la rend de nouveau dans <vidéo>_reproduced/
--export-htmlÉcrit une page HTML autonome (WebGL 2) à partir du shader et de ses passes au lieu d'une vidéo
--cache-purgeVide le cache des maîtres sans perte (cache/ à côté du programme)
--check[=liste]Contrôle qualité sans rendu : flash, nan, flicker, alias, portability (tout par défaut) ; code de sortie 6 si quelque chose est trouvé
--compare a bCompare deux shaders (--compare-video=sbs|curtain|diff, --tolerance=N) ; code de sortie 7 s'ils diffèrent
--golden=record|verifyGarde des images de référence d'un shader dans golden/ ou vérifie qu'elles n'ont pas changé (code de sortie 7 si elles changent)
--dry-runEstime le temps de rendu (quelques secondes mesurées par fichier) sans écrire la vidéo
--png=bestVignette intelligente : les trois images les plus riches de la plage, écrites en nom_thumb.png, nom_thumb2.png, nom_thumb3.png
--cubefaces[=n]Les six faces (n x n pixels) d'une cubemap d'un shader mainVR : nom_px.png, _nx, _py, _ny, _pz, _nz
--heatmap[=CxR]Carte du coût : le temps GPU de chaque zone de l'écran (16x9 par défaut) en nom_heat.png
--samples=NAvec --png : moyenne de N échantillons indépendants du même instant (shaders à tracé de chemin)
--find-loop[=s]Cherche la période du shader sur s secondes (sans rendu) et affiche le duration= / loop= à utiliser
--sheet=CxLUne planche-contact PNG de C x L vignettes tirées à intervalles égaux sur la durée (--sheet=4x3)
--param=nom=valeurRègle un paramètre du shader (// uniform) : --param=vitesse=2.5 ou des images clés --param="vitesse=smooth 0:1 ; 4:3"
--watch=dossierReste actif et rend chaque .glsl / .txt qui apparaît dans le dossier (Ctrl+C pour arrêter ; --watch-count=N arrête après N rendus)
--watch-moveAvec --watch : déplace chaque shader (et ses passes) vers done/ ou failed/ après son rendu ; un profile.ini dans le dossier ou un sous-dossier règle ses paramètres
--log=fichierÉcrit aussi tout ce qui est affiché, horodaté, dans ce fichier (ajout en fin de fichier)
--report=json|textÉcrit un rapport de rendu (durée, cadence, goulot, taille, avertissements) à côté de chaque vidéo
un fichier .jsonExport d'un shader Shadertoy (bouton Export de la page) : importé dans le dossier « shadertoy », puis rendu. Ni compte ni clé nécessaires
--diagnosticAffiche système, carte graphique, OpenGL, ffmpeg et encodeurs (sans chemin ni donnée personnelle) pour un rapport de bug
--benchmarkMesure les images par seconde par résolution et par encodeur (--seconds=N, --quick, --full, --json, --compare=file, --max-drop=N)
--license-infoAffiche l'état de la licence et le fichier attendu à côté du programme
--check-update[=url] [--download]Demande à GitHub la dernière version (seulement quand vous lancez cette commande) ; code de sortie 8 si une plus récente existe ; --download enregistre l'installeur dans updates/ après contrôle SHA-256, sans rien installer

Codes de sortie : 0 tout est fait, 1 un rendu a échoué, 2 ligne de commande invalide, 3 pas d'OpenGL 3.3, 4 ffmpeg introuvable, 5 régression du benchmark, 6 --check a trouvé quelque chose, 7 --compare / --golden a trouvé une différence