Aide SimpleRecorder
Enregistreur multi-sources Syphon et NDI sur une horloge commune : chaque source dans son propre film, toutes assemblées dans une seule image, ou les deux à la fois — avec le son NDI ou celui de l'ordinateur, piloté depuis la fenêtre, en OSC (OSCQuery) ou par MCP.
Premiers pas
- Choisir les sources. Dans la colonne Sources à gauche, coche les serveurs Syphon ou les sources NDI à enregistrer (jusqu'à huit). Glisse les sources cochées pour changer leur ordre dans l'image assemblée.
- Choisir la sortie. Dans la barre du haut, choisis ce que la prise écrit : Separate (un film
.movpar source), Assembled (un seul film réunissant toutes les sources) ou Both (les deux). - Choisir le son. Dans Movie › Sound à droite, choisis None, Computer (le son diffusé par ce Mac) ou l'une des sources NDI sélectionnées.
- Enregistrer. Clique sur le bouton rouge ou presse ⌘R (ou envoie
/record 1en OSC). Clique à nouveau ou presse ⌘R pour arrêter et finaliser les films.
La fenêtre
Enregistrement & dispositions
Une prise, une horloge
Tous les films d'une même prise partagent la même horloge : chacun commence dès que sa première image arrive, de sorte qu'ils s'alignent immédiatement lorsqu'on les superpose dans un logiciel de montage.
- Separate : chaque source cochée est écrite dans son propre fichier
.mov, à sa taille d'origine. - Assembled : un seul fichier
.movréunit toutes les sources cochées dans une même image. - Both : écrit à la fois le film assemblé et le film individuel de chaque source.
Les quatre dispositions
Les sources sont assemblées dans leur ordre sur fond noir (transparent en ProRes 4444, qui conserve aussi la transparence propre de chaque source) :
| Disposition | Taille automatique de l'image |
|---|---|
| Row (côte à côte) | Toutes les sources à la hauteur de la plus haute ; les largeurs s'additionnent. |
| Column (empilées) | Toutes les sources à la largeur de la plus large ; les hauteurs s'additionnent. |
| Grid (mosaïque) | Autant de colonnes que la racine carrée du nombre de sources (arrondie au supérieur) ; cellules à la taille de la plus grande source. |
| Focus (une grande) | La première source à sa taille ; les suivantes se partagent sa hauteur dans une colonne à sa droite. |
Si une taille est fixée (1920 × 1080, 3840 × 2160 ou Custom), l'image assemblée y est ajustée sans déformation. La taille et la disposition d'une prise sont figées au démarrage de l'enregistrement : si une source s'absente, sa place reste noire ; si elle change de taille en cours de prise, elle s'ajuste dans son cadre.
16384 pixels de côté ne peut pas être encodée : la prise refuse de démarrer et invite à fixer une taille dans Assembled › Size.Codecs, cadence et fichiers
- Codec : H.264, HEVC, ProRes 422 ou ProRes 4444 (avec couche alpha). Encodage matériel sur le GPU, hors du thread principal.
- Frame rate : Same as source (chaque image reçue est écrite) ou un plafond (24, 25, 30, 50, 60 i/s). Au-dessus du plafond, les images en trop sont écartées régulièrement.
- Bitrate : débit en Mbit/s pour H.264 et HEVC, ou automatique (vide /
0). ProRes n'utilise pas ce réglage. - Noms des fichiers :
<nom>.movpour le film assemblé (ou pour une source unique enregistrée seule), et<nom> — <source>.movpour le film propre de chaque source. Si le champ Name est vide, le nom estSimpleRecordersuivi de la date et de l'heure. Aucun fichier existant n'est jamais écrasé : un numéro (2,3…) est ajouté à tous les films de la prise. - Performance mode (Display › Performance mode ou
/performance 1) : pendant l'enregistrement uniquement, l'aperçu dans la fenêtre est dessiné 10 fois par seconde au lieu de suivre chaque image, afin de laisser le GPU aux encodeurs sur une machine chargée. Ce réglage s'applique immédiatement, même en cours de prise, et ne modifie en rien les films enregistrés.
Sources Syphon & NDI
Sélection et reconnexion automatique
Seules les sources cochées (jusqu'à huit places, /source/1 à /source/8) sont connectées. Les places sont verrouillées pendant un enregistrement.
- Waiting : une place mémorisée d'une session précédente attend que son application démarre. Dès que la source apparaît, elle prend sa place.
- Away : une source qui disparaît en cours de route (application fermée ou relancée, émetteur NDI coupé) garde sa place en grisé et se reconnecte automatiquement dès son retour — même si l'application source a été tuée puis relancée.
Bibliothèque NDI
Les sources NDI trouvées sur le réseau local apparaissent à côté des serveurs Syphon avec l'étiquette NDI. SimpleRecorder charge libndi.dylib à l'exécution (incluse dans le paquet de l'application lorsque construite avec le SDK NDI, ou cherchée dans $NDI_RUNTIME_DIR_V6, /usr/local/lib et /Library/NDI SDK for Apple). Si la bibliothèque n'est pas présente, l'application fonctionne normalement en mode NDI off avec les sources Syphon.
Le son (NDI et Ordinateur)
Le menu Movie › Sound (ou l'adresse OSC /sound) choisit quel son accompagnera les films :
| Choix | Comportement selon la sortie |
|---|---|
None ("") | Le film assemblé et les films des sources Syphon n'ont pas de piste son. Les films séparés des sources NDI qui envoient de l'audio conservent leur propre son. |
Computer ("computer") | Enregistre l'audio diffusé sur ce Mac (toutes les applications, pas le microphone) : • Avec Assembled ou Both : le son de l'ordinateur va dans le film assemblé (les films séparés NDI gardent leur propre son). • Avec Separate : le son de l'ordinateur va dans le film de chaque source Syphon (les sources NDI gardent leur propre son). |
| Une source NDI | Le film assemblé prend le son de cette source NDI. Une note (♪) dans la liste des sources indique celles qui envoient du son. |
Format et synchronisation
- Format : stéréo 48 kHz (les deux premiers canaux ; un canal mono est doublé). Encodé en AAC à 256 kbit/s avec H.264 et HEVC, ou en PCM linéaire 24 bits avec ProRes.
- Film muet : si aucun son non nul n'est reçu pendant toute la prise, le fichier
.movfinal ne comporte pas de piste audio inutile. - Priorité à l'image : le son est calé sur son heure d'arrivée et maintenu en phase avec l'image. Si un encodeur prend du retard, du son est laissé de côté et compté dans
/status/sound/leftoutsans jamais ralentir l'enregistrement vidéo.
OSC & OSCQuery
SimpleRecorder écoute l'OSC en UDP sur le port 9230 et s'annonce en Bonjour (_oscjson._tcp) via OSCQuery en HTTP sur le port 9231 (ou le port libre suivant si celui-ci est occupé — la barre d'état en bas affiche toujours les ports actifs).
Adresses de commande (lecture / écriture)
| Adresse | Type | Description |
|---|---|---|
/record | int | 1 démarre l'enregistrement, 0 l'arrête et finalise les films. |
/start, /stop | – | Démarre l'enregistrement, ou l'arrête et finalise les films (sans argument). |
/record/toggle | – | Démarre ou arrête l'enregistrement. |
/source/1 … /source/8 | string | La source à cette place : son titre exact ou une sous-chaîne. Vide ("") pour retirer la place. OSCQuery expose les sources disponibles dans RANGE. |
/source | string | Alias de /source/1. |
/output | string | separate, assembled ou both. |
/layout | string | row, column, grid ou focus. |
/codec | string | h264, hevc, prores422 ou prores4444. |
/fps | float | Cadence maximale en i/s, ou 0 pour garder chaque image de la source. |
/bitrate | float | Débit en Mbit/s (H.264 / HEVC), ou 0 pour automatique. |
/sound | string | computer pour le son du Mac, le titre (ou une partie) d'une source choisie pour le film assemblé, ou "" pour aucun. |
/width, /height | int | Taille dans laquelle l'image assemblée est ajustée (0 = automatique). |
/gap | int | Espacement en pixels entre les sources dans l'image assemblée (0 à 1000). |
/folder, /name, /setSaveFileName | string | Dossier d'enregistrement et nom de base de la prise (une extension .mov éventuelle est retirée). |
/performance | int | 1 limite l'aperçu à 10 i/s pendant l'enregistrement ; 0 dessine chaque image. S'applique immédiatement. |
Adresses d'état (lecture seule via OSCQuery)
| Adresse | Type | Description |
|---|---|---|
/status/version | string | Version de l'application (ex. 0.9, ou dev hors du paquet). |
/status/state | string | idle, recording ou finishing. |
/status/elapsed | float | Durée enregistrée en secondes. |
/status/dropped | int | Nombre total d'images perdues par les encodeurs. |
/status/error | string | Dernière erreur (message OSC refusé, démarrage impossible…). |
/status/failure | string | Raison de l'arrêt si la dernière prise a échoué. |
/status/ndi | int | 1 si la bibliothèque NDI est chargée, 0 sinon. |
/status/ndi/sources | string | Titres des sources NDI disponibles (un par ligne). |
/status/source/N/kind | string | syphon ou ndi pour la source en place N. |
/status/source/N/online | int | 1 si la source en place N livre des images. |
/status/source/N/width, /height, /fps | int, float | Dimensions et cadence reçues de la source N. |
/status/source/N/file, /frames, /dropped | string, int | Fichier, images écrites et images perdues pour la source N. |
/status/source/N/sound, /soundwritten | int, float | 1 si la source envoie du son ; secondes de son écrites dans son film. |
/status/assembled/width, /height | int | Taille de l'image assemblée actuelle ou de la prise en cours. |
/status/assembled/file, /frames, /dropped | string, int | Fichier, images écrites et perdues du film assemblé. |
/status/sound/written, /leftout | float | Secondes de son écrites dans le film assemblé, et secondes de son abandonnées. |
Serveur MCP
L'exécutable simple-recorder-mcp est inclus dans le paquet de l'application (/Applications/SimpleRecorder.app/Contents/MacOS/simple-recorder-mcp). Ce serveur MCP (stdio) permet à un agent comme Claude Code de lire l'état via OSCQuery et de piloter l'enregistreur en OSC pendant que l'application tourne.
| Outil MCP | Rôle |
|---|---|
recorder_status | Renvoie la version, l'état (idle, recording, finishing), les sources choisies et disponibles (syphon / ndi), les réglages (dont sound et performance), les films écrits et les erreurs éventuelles. |
recorder_configure | Modifie un ou plusieurs réglages : sources, source, codec, fps, bitrate, folder, name, output, layout, gap, width, height, sound ("computer", titre d'une source ou ""), performance. |
recorder_start | Accepte les mêmes paramètres optionnels que recorder_configure, lance la prise et rend la main dès que l'enregistrement a démarré. |
recorder_stop | Arrête la prise, attend que tous les fichiers .mov soient finalisés et renvoie leurs chemins. |
Raccourcis clavier
| Raccourci | Action |
|---|---|
| ⌘R | Démarrer ou arrêter l'enregistrement (File › Start / Stop Recording) |
| ⌘? | Ouvrir cette aide (Help › SimpleRecorder Help) |
| ⌘F | Rechercher dans l'aide (lorsque la fenêtre d'aide est active) |
| ⌘Q | Quitter SimpleRecorder (si un enregistrement est en cours, finalise proprement les films avant de quitter) |
Dépannage
Un message OSC ne déclenche rien
- Tout message OSC refusé (adresse inconnue, argument invalide, modification des sources pendant une prise) s'affiche en orange pendant quelques secondes dans la barre du haut et dans le titre de la fenêtre (
⚠ …), ainsi que dans/status/error. - Dans OSCScore, sur une piste de flags, écris les arguments entre chevrons dans le texte du flag (ex.
/record <1>et/record <0>) : envoyer l'adresse littérale/record <0>sans argument est refusé et signalé.
« NDI off » dans la barre d'état
Laissez le pointeur sur NDI off en bas de la fenêtre pour voir la raison exacte. Assurez-vous que le runtime NDI ou le SDK NDI (/Library/NDI SDK for Apple/lib/macOS/libndi.dylib) est installé, et que SimpleRecorder est autorisé dans Réglages Système › Confidentialité et sécurité › Réseau local.
Pas de son dans le film avec « Computer »
- Vérifiez que SimpleRecorder est autorisé dans Réglages Système › Confidentialité et sécurité › Enregistrement de l'audio du système uniquement.
- Si aucun son n'a été joué sur le Mac pendant toute la prise, aucun échantillon non nul n'arrive et le film reste volontairement sans piste audio.
Des images sont perdues (Dropped)
Activez Performance mode dans la colonne de droite pour limiter l'aperçu à 10 i/s pendant l'enregistrement. Si vous enregistrez de nombreuses sources en HEVC avec une image assemblée très grande (au-delà de la 4K), fixez Assembled › Size sur 3840 × 2160 ou 1920 × 1080, plafonnez Frame rate à 60, ou choisissez H.264 / ProRes 422.
Lancer une seconde instance
Par défaut, SimpleRecorder prend le premier port libre à partir de 9230 (OSC) et 9231 (OSCQuery). Vous pouvez aussi fixer les ports via l'environnement : SIMPLE_OSC_PORT=9240 SIMPLE_OSCQUERY_PORT=9241.
Rien ne correspond à cette recherche.