2020-11-10 06:27:57 +11:00
|
|
|
# Fonderie et Interpolator
|
2020-11-03 00:51:48 +11:00
|
|
|
|
|
|
|
Avec toutes ces fonctions disponibles et `grabvidseq`, nous
|
2021-03-18 17:35:53 +11:00
|
|
|
savons faire des images **floues**. L'étape suivante, les plus
|
2020-11-03 00:51:48 +11:00
|
|
|
pervers d'entre vous le savent déja, est celle de la création
|
2021-03-18 17:35:53 +11:00
|
|
|
de **films flous** dans le domaine spacial.
|
2020-11-03 00:51:48 +11:00
|
|
|
|
2021-03-18 17:35:53 +11:00
|
|
|
À l'heure actuelle, il y a plusieurs programmes distincts. Le premier
|
2020-12-19 18:48:56 +11:00
|
|
|
(fonderie) fait une moyenne mobile sur N images consécutives,
|
|
|
|
et le second (interpolator) fait un fondu-enchainé de N pas
|
|
|
|
entre deux images consécutives.
|
|
|
|
|
|
|
|
Mais avant et après un de ces deux traitements, il y a des chaines
|
|
|
|
de filtres...
|
|
|
|
|
|
|
|
## Chaine de filtres
|
|
|
|
|
|
|
|
Ce système connait un certain nombre de filtres et d'effets spéciaux
|
|
|
|
destinés à la kitchitude du produit final. Ils peuvent être chainés
|
|
|
|
les uns après les autres, à l'entrée et à la sortie du process
|
|
|
|
de floutagement.
|
|
|
|
|
2020-12-31 00:42:44 +11:00
|
|
|
Ces filtres ont chacun un nom et un numéro. que l'on peut (en théorie)
|
2021-03-18 17:35:53 +11:00
|
|
|
utiliser indistinctement dans une chaine de filtres.
|
|
|
|
L'option `-L` de ces logiciels permet d'obtenir la liste des filtres.
|
2020-12-31 00:42:44 +11:00
|
|
|
|
|
|
|
Une chaine de filtres est constituée d'une liste de nom ou de numéro
|
|
|
|
de filtre, séparés par le caractère `:`, une façon de faire très
|
|
|
|
classique dans notre univers, en fait.
|
|
|
|
|
|
|
|
`mirsplit:ctr2x2:3:killlines`
|
|
|
|
|
|
|
|
Nous allons donc voir quelques exemples un peu plus loin.
|
2020-12-19 18:48:56 +11:00
|
|
|
|
2020-11-10 06:27:57 +11:00
|
|
|
## Fonderie
|
2020-11-03 00:51:48 +11:00
|
|
|
|
2020-11-03 08:20:54 +11:00
|
|
|
Le programme principal, utilisé à partir de la ligne de commande
|
2020-12-19 18:48:56 +11:00
|
|
|
avec une foule d'options aux mnémoniques abscons et à la syntaxe
|
|
|
|
perverse.
|
2020-11-03 08:20:54 +11:00
|
|
|
|
2020-11-09 03:38:55 +11:00
|
|
|
Rassurez-vous, en général il est wrappable dans des scripts
|
2020-11-06 07:07:38 +11:00
|
|
|
écrits en Bash. Il est même possible un jour qu'ils puissent lire des
|
2020-11-03 08:20:54 +11:00
|
|
|
paramètres dans `$(env)`.
|
|
|
|
|
2020-11-05 05:29:07 +11:00
|
|
|
```
|
2020-12-31 00:42:44 +11:00
|
|
|
./fonderie, compiled Dec 30 2020, 14:09:18, pid 5013
|
|
|
|
*** FloatImg library, alpha v116 (Dec 27 2020, 22:39:28)
|
2020-11-05 05:29:07 +11:00
|
|
|
FONDERIE
|
|
|
|
options:
|
2020-12-31 00:42:44 +11:00
|
|
|
-E input:filter:chain
|
|
|
|
-F output:filter:chain
|
2020-11-05 05:29:07 +11:00
|
|
|
-g convert to gray
|
|
|
|
-I input glob pattern
|
2020-12-31 00:42:44 +11:00
|
|
|
-L list available filters
|
2020-11-05 05:29:07 +11:00
|
|
|
-O output directory
|
|
|
|
-T fifo size
|
|
|
|
-v increase verbosity
|
|
|
|
```
|
|
|
|
|
2020-11-06 04:24:05 +11:00
|
|
|
## exemple d'utilisation
|
|
|
|
|
2020-12-31 00:42:44 +11:00
|
|
|
Voici comment appeler cette machinerie depuis la ligne de commande
|
|
|
|
tel qu'il m'arrive de le pratiquer :
|
2020-11-06 04:24:05 +11:00
|
|
|
|
|
|
|
```
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
GRABDIR="/spool/tth/fonderie"
|
|
|
|
FONDEUR="$HOME/Devel/FloatImg/Fonderie/fonderie"
|
|
|
|
GLOB=${GRABDIR}'/?????.fimg'
|
|
|
|
|
2020-12-31 00:42:44 +11:00
|
|
|
${FONDEUR} -I "$GLOB" -E cos01:25 -T 30 -F 2:classtrial
|
2020-11-06 04:24:05 +11:00
|
|
|
```
|
2020-11-06 07:07:38 +11:00
|
|
|
|
2021-03-18 17:35:53 +11:00
|
|
|
Votre machine va maintenant mouliner avec entrain et persévérance,
|
2020-12-31 00:42:44 +11:00
|
|
|
puis
|
2020-12-19 18:48:56 +11:00
|
|
|
ensuite il suffit d'encoder toutes les images générées dans
|
2020-11-09 03:38:55 +11:00
|
|
|
`p8/` (répertoire de sortie par défaut)
|
2020-11-06 04:24:05 +11:00
|
|
|
avec une incantation de ffmpeg :
|
|
|
|
|
|
|
|
```
|
2020-11-06 07:07:38 +11:00
|
|
|
ffmpeg -nostdin \
|
|
|
|
-loglevel error \
|
|
|
|
-y -r 30 -f image2 -i p8/%05d.png \
|
|
|
|
-c:v libx264 -pix_fmt yuv420p \
|
|
|
|
foo.mp4
|
2020-11-06 04:24:05 +11:00
|
|
|
```
|
|
|
|
|
2020-12-19 18:48:56 +11:00
|
|
|
## crapulator.c
|
2020-11-03 08:20:54 +11:00
|
|
|
|
|
|
|
C'est dans ce module qu'est codé le moteur de filtrage, utilisé
|
2020-11-05 05:29:07 +11:00
|
|
|
aussi bien en entrée qu'en sortie. Il est, à l'heure actuelle,
|
|
|
|
assez rudimentaire, avec un paramétrage simpliste, et un manque
|
|
|
|
criant de documentation...
|
|
|
|
|
2020-11-10 06:27:57 +11:00
|
|
|
## Interpolator
|
|
|
|
|
2020-12-19 18:48:56 +11:00
|
|
|
Un logiciel dont l'inspiration vient du passé et les améliorations
|
|
|
|
d'une résidence à Terre-Blanque, ça ne peut pas être complètement
|
|
|
|
malsain.
|
2020-11-13 09:39:16 +11:00
|
|
|
|
2021-01-14 02:09:27 +11:00
|
|
|
```
|
|
|
|
*** interpolator.c : compiled by tTh, Jan 12 2021 16:18:58
|
|
|
|
*** FloatImg library, alpha v116 (Dec 27 2020, 22:39:28)
|
|
|
|
INTERPOLATOR
|
|
|
|
usage:
|
|
|
|
interpolator [options] <inglob> <outdir> <nbsteep>
|
|
|
|
options:
|
|
|
|
-S nn mysterious sort
|
|
|
|
-E i:bla:k input filter chain
|
|
|
|
-F name:j output filter chain
|
|
|
|
-L list available filters
|
|
|
|
-v increase verbosity
|
|
|
|
```
|
2021-03-18 17:35:53 +11:00
|
|
|
## Singlepass
|
2020-11-10 10:50:25 +11:00
|
|
|
|
2021-03-18 21:46:35 +11:00
|
|
|
Le monde à l'envers : pas de traitement inter-frames, mais par contre,
|
|
|
|
on peut facilement tester une chaine de filtres sur une image unique.
|
|
|
|
|
|
|
|
```
|
|
|
|
*** singlepass.c : compiled Mar 17 2021 11:21:45
|
|
|
|
*** FloatImg library, alpha 122 (Mar 16 2021, 18:44:00)
|
|
|
|
------ Single pass serial filter ------
|
|
|
|
usage:
|
|
|
|
-F define:the:filter:chain
|
|
|
|
-g input glob pattern
|
|
|
|
-L list available filters
|
|
|
|
-O /output/directory
|
|
|
|
-v spit more messages
|
|
|
|
```
|
2020-11-10 10:50:25 +11:00
|
|
|
|
|
|
|
## Conclusion
|
|
|
|
|
2020-11-10 06:27:57 +11:00
|
|
|
|
2020-11-05 05:29:07 +11:00
|
|
|
**Use the source, Luke**
|
2020-11-03 08:20:54 +11:00
|
|
|
|