From 055a470a2b606478a236ae98f47803f694a2e84e Mon Sep 17 00:00:00 2001 From: tTh Date: Thu, 8 Aug 2024 12:48:06 +0200 Subject: [PATCH] corrected an index --- chap/webcam.tex | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/chap/webcam.tex b/chap/webcam.tex index bbf91f7..9a66ef7 100644 --- a/chap/webcam.tex +++ b/chap/webcam.tex @@ -22,7 +22,7 @@ image. \textsl{Video For Linux, second edition.} \begin{verbatim} -tth@delirium:~/Essais/Fonderie$ v4l2-ctl --list-formats-ext +tth@delirium:~$ v4l2-ctl --list-formats-ext ioctl: VIDIOC_ENUM_FMT Type: Video Capture @@ -38,8 +38,42 @@ ioctl: VIDIOC_ENUM_FMT \end{verbatim} Question : quelle méthode utiliser pour avoir la même chose avec -des lignes de code écrites en C ? Il faut passer par une suite d'appels -\texttt{ioctl}\index{ioctl}. +des lignes de code écrites en C ? +Il faut certainement passer par une suite d'appels +\texttt{ioctl}\index{ioctl} après ouverture du device, +mais la documentation est difficile à \textsl{greper}. + +% -------------------------------------------------------------------- + +\section{GameBoy camera} + +% +% trouvé dans pleroma +% + +Voilà (désolé dur de faire moins technique en 500 charactères): + +\texttt{sudo modprobe v4l2loopback exclusive\_caps\=1 video\_nr\=7 % + card\_label="WebcamVirtuelle"} + +On créé un périphérique de caméra virtuelle sur /dev/video7 + +\texttt{ffmpeg -video\_size 352x288 -i /dev/video0 -i ./palette.png +-lavfi fps=10,scale=w=128:h=112,paletteuse=dither=bayer,format=yuyv422 +-f v4l2 /dev/video7} + +On fait une chaîne ffmpeg de la webcam réelle vers la virtuelle, +en redimensionnant en 128x112 1/2 + +puis en appliquant un algorithme de dithering et une palette de +couleurs (juste un PNG carré avec les différentes couleurs à utiliser +pour le dithering, je peux le fournir si besoin). +Enfin on force un format pour la webcam de destination et on sort +sur son fichier (/dev/video7 comme défini tout à l'heure). + +C'est pas propre (et il faudrait que je change d'algorithme pour le +scaling parce qu'il y a un effet de flou désagréable), MAIS ça +fonctionne et le rendu ressemble. % --------------------------------------------------------------------