A propos des balises de source vidéo des fichiers AGV
Une couche vidéo doit disposer d'une connexion aux données source, qu'il s'agisse d'un fichier, d'un dossier ou d'un service, qui peuvent fournir les images vidéo individuelles qui sont drapées sur la surface du globe. La source vidéo doit exister et ArcGlobe doit y avoir accès pour que la couche vidéo soit affichée.
Les informations source d'une vidéo doivent inclure à la fois le type de vidéo et l'emplacement des données.
Il existe trois types généraux de sources vidéo, représentés par les groupes de balises suivants :
- <VideoFilesSource> - Vidéo stockée dans un seul fichier logique
- <ImageFolderSource> - Vidéo stockée en tant qu'ensemble d'images classées dans un seul dossier
- <CustomSource> - Type de vidéo rendu disponible par l'intermédiaire d'un codage personnalisé
Le chemin d'accès de la source vidéo peut correspondre à l'un des formats suivants :
- Un nom de fichier ou chemin d'accès local, tel que C:\Project1\Camera1.mpg
- Un nom de fichier ou chemin d'accès UNC, tel que \\myServer\Videos\Camera8_Frames
- Un nom de fichier ou chemin d'accès relatif (à partir de l'emplacement du fichier AGV), tel que .\CustomVideoLayer.dll
![Astuce Astuce](rsrc/tip.png)
- Les règles de mise en forme standard s'appliquent lors de la définition du chemin relatif. Par exemple, une chaîne .\ au début implique le dossier courant qui contient le fichier AGV, alors qu'une chaîne ..\ au début implique le dossier parent.
Chacun des trois types généraux de sources vidéo est détaillé ci-dessous.
Source de fichiers vidéo
Cette option est conçue pour les vidéos stockées sur disque dans un format de fichier vidéo pris en charge, tel que AVI ou MPG. Le fichier AGV identifie cette source vidéo en plaçant les informations de connexion à l'intérieur des balises XML suivantes : <VideoSource FrameSourceType="File"> et </VideoSource>, comme indiqué dans l'exemple de texte XML ci-dessous.
La balise principale de la source de données pour ce type de couche vidéo est l'élément <VideoFilePath>, qui définit l'emplacement du fichier vidéo. Vous pouvez inclure plusieurs balises XML pour connecter plusieurs fichiers vidéo dans une seule couche vidéo.
Vous devez également définir les éléments suivants :
- La vitesse d'actualisation réelle (en millisecondes) dans la balise <FrameRequestRate>
- Cette valeur est en millisecondes et représente la durée à attendre par ArcGlobe avant de demander le prochain cadre de la vidéo. Par exemple, une valeur de 50 signifie qu'ArcGlobe demande un cadre toutes les 0,05 secondes, impliquant une lecture de la vidéo à une vitesse de 20 cadres par seconde.
- Notez qu'il s'agit de la "vitesse de lecture" de la vidéo, qui peut être différente des unités de temps réelles représentées par chaque cadre.
Les fichiers vidéo peuvent être stockés dans une vaste gamme de formats, avec de nombreux codecs possibles. Pour lire une vidéo sur la machine locale, à l'intérieur d'ArcGlobe ou dans un lecteur vidéo tel que le Lecteur Windows Media, le codec doit résider sur cette machine. Selon votre machine, les formats de fichier vidéo suivants sont pris en charge :
- MPG (.mpg, .mpeg, .mp4)
- AVI (.avi)
- WMV (.wmv)
Eléments à prendre en compte
Voici quelques astuces à garder à l'esprit lors de la création de fichiers source vidéo :
- Si vous spécifiez plusieurs fichiers vidéo à l'intérieur du groupe VideoFilesSource, toutes les vidéos doivent présenter la même résolution d'image.
- Un test simple pour déterminer si votre vidéo peut être affichée dans ArcGlobe consiste à visionner le fichier source dans le Lecteur Windows Media. Si la vidéo ne s'affiche pas dans cette application, elle ne s'affiche pas sous forme de couche vidéo dans ArcGlobe.
Exemple
Voici un exemple de couche source vidéo réalisée à partir de deux fichiers AVI source avec 20 cadres par seconde :
<VideoSource FrameSourceType="File">
<VideoFilesSource>
<VideoFilePath>.\Security_BldF_10.00AM.avi</VideoFilePath>
<VideoFilePath>.\Security_BldF_10.05AM.avi</VideoFilePath>
</VideoFilesSource>
<FrameRequestRate>50</FrameRequestRate>
</VideoSource>
Source de dossier d'images
Cette option est conçue pour les formats de vidéo sans prise en charge native, tels que le format de fichier QuickTime (.mov), en les consommant après leur conversion en conteneur d'images. Elle prend également en charge la consommation du dossier de cadres créé en sortie de la structure d'animation ArcGIS. Le fichier AGV identifie cette source vidéo en plaçant les informations de connexion à l'intérieur des balises XML suivantes : <ImageSource FrameSourceType="Folder"> et </ImageSource>, comme indiqué dans l'exemple de texte XML ci-dessous.
La balise principale de la source de données pour ce type de couche vidéo est <ImageFolderPath>, qui définit le chemin d'accès au dossier contenant les fichiers image.
Vous devez également définir les éléments suivants :
- Le format du nom de fichier dans la balise <NameFormat>
- Cette valeur est une chaîne et fournit un modèle pour la convention d'affectation de noms du cadre d'image afin que l'accès aux fichiers image appropriés s'effectue dans l'ordre qui convient.
- La partie numérique du nom de fichier image est représentée avec un caractère dièse placé entre le préfixe et le suffixe du nom de fichier.
Par exemple, si le dossier contient des images nommées Frame1.jpg, Frame2.jpg et ainsi de suite, la valeur Frame#.jpg doit être utilisée pour <NameFormat>.
- Première et dernière valeur d'index de cadre dans les balises <FirstIndex> et <LastIndex>
- Ces deux valeurs sont des nombres entiers et spécifient la plage des fichiers image à lire.
- Exemple : si vous disposez de 300 cadres d'image séquentiels dans le dossier et que le premier fichier est nommé Frame1.jpg, les valeurs requises sont respectivement 1 et 300.
- Ces valeurs peuvent également permettre de lire un sous-ensemble d'un grand dossier de cadres.
- Valeurs de la taille d'image dans les balises <Width> et <Height>
- Ces deux valeurs sont en pixels et représentent la résolution de la vidéo.
- Seules les images avec cette résolution spécifiée sont affichées en tant que cadres dans la vidéo.
- Les balises sont lues lorsque la couche vidéo est ajoutée à ArcGlobe ou lorsque la couche est relue manuellement en cliquant avec le bouton droit de la souris sur la couche dans la table des matières et en cliquant sur Actualiser.
- Notez que les cadres d'image de résolution supérieure sont plus coûteux à représenter et peuvent provoquer une fréquence d'image maximale inférieure.
- La vitesse d'actualisation des cadres de la vidéo dans la balise <FrameRequestRate>
- Cette valeur est en millisecondes et représente la durée à attendre par ArcGlobe avant de demander le prochain cadre de la vidéo.
Par exemple, une valeur de 100 signifie qu'ArcGlobe demande un cadre toutes les 0,1 secondes, impliquant une lecture de la vidéo à une vitesse de 10 cadres par seconde.
- Notez qu'il s'agit de la "vitesse de lecture" de la vidéo, qui peut être différente des unités de temps réelles représentées par chaque cadre.
- Cette valeur est en millisecondes et représente la durée à attendre par ArcGlobe avant de demander le prochain cadre de la vidéo.
Exemple
Voici un exemple de couche source vidéo réalisée à partir d'un dossier de cadres à 10 cadres par seconde.
<ImageSource FrameSourceType="Folder">
<ImageFolderPath>\\server1\VideoOverlays\Analysis1</ImageFolderPath>
<Frames>
<NameFormat>Frame#.jpg</NameFormat>
<FirstIndex>1</FirstIndex>
<Width>600</Width>
<Height>480</Height>
</Frames>
<FrameRequestRate>100</FrameRequestRate>
</ImageSource>
Source personnalisée
Cette option est destinée aux utilisateurs avancés qui peuvent écrire du code pour créer une couche vidéo personnalisée, telle qu'un flux en temps réel provenant d'un véhicule mobile. ArcGlobe demande des cadres vidéo à partir de la DLL personnalisée à intervalles définis plutôt que d'accéder à un fichier ou dossier de cadres spécifique sur le disque. Le fichier AGV identifie cette source vidéo en plaçant les informations de connexion à l'intérieur des balises XML suivantes : <VideoSource FrameSourceType="DLLServer"> et </VideoSource>, comme indiqué dans l'exemple de texte XML ci-dessous.
La balise principale de la source de données pour ce type de couche vidéo est <Location>, qui définit le chemin complet à la DLL qui répond aux demandes d'ArcGlobe concernant les images de cadre vidéo et les informations de géoréférencement.
Vous devez également définir les éléments suivants :
- La vitesse d'actualisation réelle (en millisecondes) dans la balise <FrameRequestRate>
- Cette valeur est en millisecondes et représente la durée à attendre par ArcGlobe avant de demander le prochain cadre de la vidéo à partir de la DLL personnalisée.
Exemple : une valeur de 6 000 signifie qu'ArcGlobe demande un cadre toutes les 6 secondes, impliquant une lecture de la vidéo à une vitesse de 10 cadres par minute.
- Notez qu'il s'agit de la vitesse de lecture de la vidéo, qui peut être différente des unités de temps réelles représentées par chaque cadre.
- Cette valeur est en millisecondes et représente la durée à attendre par ArcGlobe avant de demander le prochain cadre de la vidéo à partir de la DLL personnalisée.
- Autant d'éléments <Parameter> facultatifs que nécessaires pour votre DLL personnalisée
- Exemple : votre DLL personnalisée peut gérer de nombreuses demandes de vidéos, dans lesquelles chaque fichier AGV utilise un élément <Parameter> pour distinguer le flux vidéo auquel la couche particulière est connectée.
Exemple
Voici un exemple de couche source vidéo réalisée à partir d'un serveur de DLL personnalisé avec 10 cadres par minute :
<VideoSource FrameSourceType="DLLServer">
<Location>C:\Program Files\App1\bin\MyVideoFrameProvider.dll</Location>
<FrameRequestRate>6000</FrameRequestRate>
<Parameter>VideoSource 1</ Parameter >
</VideoSource>