Upload
gisele-guillemin
View
104
Download
0
Embed Size (px)
Citation preview
Telescreen
Thierry Bouedo, 15 novembre 2011
Telescreenl
Thierry Bouedo, 15 novembre 2011
Contexte et environnement Caméras visant différents faisceaux de l’interféromètre pour :
assurer des contrôles locaux (de position), “surveiller” quelques salles, retourner de l’information de visualisation (qualitative) en salle de contrôle
Architecture du système actuel :
Affichage en salle de contrôle
Problématique : des caméras vieillissantes, volumineuses, très probablement des caméras supplémentaires dans le futur (une trentaine de caméras à
ce jour), un hardware d’acquisition (carte VME) et de calcul (RIO) obsolète
Application de configuration / contrôle (commerciale fermée)éthernet
Un choix à faire pour de nouvelles caméras (et pour l’acquisition)
mélangeur / compositeur analogique
(mosaïque statique ou singleton)
Contrôle locallien numériqueimage par image Flux vidéo
analogiqueContrôle local
lien numériqueimage par image Flux vidéo
analogiqueContrôle local
lien numériqueimage par image Flux vidéo
analogique
Sauvegarde intégrée (format propriétaire)
VME
VME
VME
Affichage en salle de contrôle
Telescreenl
Thierry Bouedo, 15 novembre 2011
Nouvelles camérasAu regard des critères principaux (optique, sensibilité du capteur, résolution,…), le choix s’est porté sur un modèle de caméra présentant une interface éthernet.La question devient :
La réponse est :
mélangeur / compositeur analogique
(mosaïque statique ou singleton)
Contrôle localFlux vidéo ?
Contrôle localFlux vidéo ?
Contrôle local
Sauvegarde intégrée (format propriétaire)
?
Affichage en salle de contrôle
Flux vidéo ?
?
?
mélangeur / compositeur numérique
logicielAffichage en
salle de contrôle
Sauvegarde externe (sur le réseau)
Flux vidéo (sur le réseau)
Rapport moral
Thierry Bouedo, 15 novembre 2011
Nouvelle architecture
PC temps réel
switch ethernet
RTSP, RTP
PC temps réel
switch ethernet
RTSP, RTP
Any video streams
RTSP
Remote displayRecording
NFS
RTSP
Telescreen (1 ou plusieurs Video Core)
Main displays in Control Room
ethernet ethernet
Private networks
Camera IP(http, tcp, udp, rtp, rtsp, …)
Remote display
Telescreenl
Contrôle (http)
Contrôles locaux
Rapport moral
Thierry Bouedo, 15 novembre 2011
Video Core, élément de base de l’architecture,appuyé sur deux technologies “open source” :
Gstreamer : framework de manipulation des flux multimédia : Basé sur une structure de graphe qui permet la
construction totalement arbitraire d’un pipeline de traitement,
Architecture ouverte à base de plugins (déjà existant ou à écrire soi-même),
Utilise le modèle objet de la Glib et son mécanisme de distribution des évènements,
Fortement threadé -> efficacité sur une machine multi-coeurs,
Utilisé par une large communauté (support, documentation, exemples, pérennité, …);
http://gstreamer.freedesktop.org/
LibSoup : librairie de développement de client/serveur sur http : Utilise le modèle objet de la GLib (projet Gnome), Fonctionnement asynchrone par l’utilisation du
mécanisme de callback de la boucle d’évènement de la GLib (GMainLoop),
http://live.gnome.org/LibSoup
Telescreenl
Client web (navigateur)
serveur web
LibSoup pipeline de
traitement vidéo
Gstreamer
Flux vidéo
callbacksde contrôle du pipeline
Rapport moral
Thierry Bouedo, 15 novembre 2011
Gstreamer, l’architecture
Plusieurs classes de plugins :• protocols : interface avec l’extérieur• sources: entrée pour l’audio/vidéo
(invoquent les plugins de protocole)• formats: compréhension des
containers, parseurs, formateurs, séparateurs et mélangeurs audio/vidéo, sous-titres, …
• codecs: codeurs et décodeurs• filters: convertisseurs, mixers,
effets, redimensionnement, ...• sinks: pour audio/vidéo (invoquent
les plugins de protocole)
Telescreenl
Séparation forte entre :• application • core (gestion du pipeline)• plugins
Rapport moral
Thierry Bouedo, 15 novembre 2011
Gstreamer, les fondations
Telescreenl
Pipeline : contient l'ensemble des actions à effectuer, assure le séquencement du traitement et gère le flux interne des données (passage de blocs par
buffers), gère les états START, PAUSE, STOP
la composition du pipeline s’effectue par le chainage d’Elements compatibles.
Rapport moral
Thierry Bouedo, 15 novembre 2011
Gstreamer, les fondations
Telescreenl
Element : objet de base ; un plugin = collection d’éléments du même domaine d’action un élément = une action (ou groupe d’action) dans un pipeline 3 types d’éléments :
Production des données Traitement des données Gestion de la sortie des données
Pads: sont les entrées/sorties des éléments. Ils servent à interconnecter les éléments entre eux sont classés en 2 sous-ensembles :
les pads de type "sink", permettant de faire entrer des données dans un élément les pads de type "src" (source), permettant de faire sortir des données d'un élément
incluent des critères (Caps): de vérification que le format des données correspond à ce qui est attendu (SINK pad) de définition des données générées (SRC pad)
plusieurs pads (src et/ou sink) peuvent être associés à un même élément 3 statuts possibles pour un pad :
ALWAYS : toujours présent REQUEST : créé par une demande de l’application SOMETIMES : créé en fonction du flux de données traversant
le pipeline garantit la négociation de lien entre un SRC pad et un SINK pad
Rapport moral
Thierry Bouedo, 15 novembre 2011
Gstreamer, la communication
Telescreenl
Plusieurs mécanismes pour la communication entre les éléments et entre le pipeline et l’application :
buffers : utilisés pour faire transiter le flux de données entre les éléments dans le pipeline. Les buffers vont toujours des sources vers les sinks (downstream)
events : envoyés entre les éléments ou depuis l’application vers les éléments. Les events peuvent voyager upstream and downstream. Par exemple, le blocage (du transfert des buffers) au sein d’un élément ou la fin d’un flux
messages : postés par les éléments vers l’application via le bus des message du pipeline bus. Les messages sont généralement utilisés pour transmettre des informations comme les erreurs, les changements d’état, l’état de bufferisation, la fin du flux, …
queries : permettent à l’application de demander des informations telles que la durée ou la position de lecture. Un élément peut aussi utiliser les queries pour réclamer des informations aux éléments auxquels il est lié (comme la taille du fichier, la durée – souvent upstream).
replicator
mixer-mosaic
Rapport moral
Thierry Bouedo, 15 novembre 2011
Video Core : un joli Lego… ! stream input stream input stream inputstream input
decoder
scaling
replicator
video output
stream input
decoder
scaling
decoder
scaling
replicator
stream input
decoder
scaling
replicator
decoder
scaling
replicator
scaling
mixer-mosaic
video output
connectors (pads) dynamically created
1 or more instances according the number of input streams
1 or more instances according the number of output video
RTSP server
Recorder
encoder encoder
Telescreenl
Rapport moral
Thierry Bouedo, 15 novembre 2011
Un système extensibleEn fonction de la charge du réseau, de la charge CPU (des machines où sont
décodés les flux), des différentes fonctionnalités (affichage,
enregistrement sur disque, …),plusieurs instances du Video Core peuventse répartir le travail.
Telescreenl
Subpart of video streams
Video Core
Subpart of video streams
Video Core
Control room displays
video streams
Control room displays
video streams
Écriture sur disque via NFS
Display Recording RTSP serverWWW
Vidéo streaming
Local network - ethernet
Local network - ethernet
Rapport moral
Thierry Bouedo, 15 novembre 2011
L’interface de contrôle
Telescreenl
à travers le web via un navigateur : les pages html sont construites dynamiquement et servies par le serveur web intégré dans chaque
instances du Video Core
Client web (navigateur)
serveur web
LibSoup pipeline de traitement
vidéoGstreamer
Flux vidéo
callbacksde contrôle du pipeline
Rapport moral
Thierry Bouedo, 15 novembre 2011
Telescreenl
Démo Questions ?