Ce système n'est pas proprement 'emballé' pour être distribué. Pour fonctionner, il doit être installé dans $HOME/projets/videos/trunk. Je pourrais le finaliser, mais bon, est-ce que quelqu'un souhaite utiliser ce système, peut-être. Communiquez avec moi si ça vous intéresse. Bon, c'est la recette que j'utilise pour faire mes vidéos. À partir d'un seul script (fichier .scn, scn pour scénario), je réalise 3 choses: -Contrôle d'obs -Il démarre, arrête et pause l'enregistrement. -Il fait les changements de scène -Contrôle des composantes de bolixo, principalement le tableau blanc -Le tableau blanc sert pour présenter les points -Le tableau blanc peut aussi présenter des graphes et même des animations. -J'inscris les idées et le texte de la vidéo. Le programme agit comme téléscripteur. En fait, pendant l'enregistrement d'une vidéo, c'est généralement le seul programme que je regarde. Pour enregistrer une vidéo, je me positionne dans le répertoire contenant le fichier scn et j'inscris. scn_run fichier.scn Le format des fichiers scn est simple et pratique. Le fichier scn combine du texte, des directives et du C++. La vidéo est composée de pages. Souvent une énumération de points/sujets sera présentée à l'écran (de la vidéo). Voici une petite explication du format. Voici les commandes. --titre de la page Si on utilise la commande -T, ce titre sera utilisé par défaut. -# On passe en mode code ou on en sort. En mode code, chaque ligne est du C++. Bien que ça peut être n'importe quoi, les commandes C++ servent à générer d'autres C++. Voir les fichiers .scn comme exemple et le fichier scenario.h. -C code C++ Cela sert à inscrire une seule ligne de C++ sans sortir du mode normal (texte) -P Inscris une pause, une étape dans la page -B point à présenter La commande C++ addbullet() sera utilisée avec le texte et cela sera afficher dans le tableau blanc le document /projects/jacques-A/public/anim.whi. De plus, une pause (-P) sera automatiquement insérée avant le prochain -B. -b sous-point à présenter Comme -B, mais c'est addsubbullet() qui sera utilisée. -T titre optionnel Affiche une ligne de titre dans anim.whi. S'il n'y a pas de titre, alors le titre soumis avec la commande -- est utilisé. -/ texte explicatif qui n'apparaitra pas dans le téléscripteur. Cela permet de développer des idées sans trop encombrer l'écran durant l'enregistrement. Cela évite de juste lire le texte. La commande scn_run Cette commande fait un peu tout. Elle s'assure que les composantes du projet vidéos sont compilées/à jour. En lance l'analyse du fichier scn avec la commande scn_parse. Cela produit un fichier C++ appelé /tmp/scn.tlcc. Ce fichier sera compilé et exécuté. Il produira un fichier /tmp/scn.sh. Ce fichier sera finalement exécuté et l'enregistrement de la vidéo débutera. Configuration de KDE ==================== Pour rendre les mouvements de souris plus visibles, on peut activer certaines options. Dans le menu de KDE, chercher 'effets de bureau'. Il apparaitra à gauche. Dans cette application on peut configurer: Animation du clic de la souris: c'est meta+shift+* pour l'activer. Cela fait apparaître un rond coloré (configurable) autour de la souris. suivi de la souris: c'est ctrl+meta pour l'activer. En fait on doit le tenir pendant qu'on bouge la souris. Pour passer de la démo dans Chrome et revenir au télé-scripteur, on utilise la touche alt-a. Voir le script sendevent.sh pour savoir comment configurer KDE pour que alt-a exécute sentevent.sh. L'évènement est reçu par waitevent.sh Fonction à connaitre ==================== COOR c(700,700); SIZE s(75,75); void addelm (PARAM_STRING label, PARAM_STRING caption, ELM_TYPE type, COOR c, SIZE s) void addtext (PARAM_STRING label, PARAM_STRING caption, int x, int y) void bullettype(PARAM_STRING label, int type) void hidelastbullet() void delete_elm(PARAM_STRING label) // Efface tous les éléments ELLIPSE et RECT ajoutés par addelm() void delete_elms() void connect (PARAM_STRING label1, PARAM_STRING label2, int linetype) // linetype=0, efface la ligne void assignimg (PARAM_STRING label, const char *img) void boxtype (PARAM_STRING label, int type) void textsize (unsigned size) void settextsize (PARAM_STRING label, int size) void settextpos (PARAM_STRING label, int pos) void add_delay(int nbmilli); /* Retourne la coordonnée d'un élément placé sur un cercle composé de nbelm éléments. */ COOR cercle(int nbelm, int noelm, COOR centre, int rayon) /* Retourne la coordonnée d'un élément placé dans un tableau composé de nbx X nby éléments. */ COOR tableau(int x, int y, COOR centre, int distance) enum SCENE{ SCENE_WEBCAM, SCENE_BOLIXO_WEBCAM, SCENE_TABLEAU, SCENE_BOLIXO_UI, SCENE_WEBCAM_LOGO_TEXTE }; void obs_scene (SCENE scene, bool wait=true)