Video-Quelltags für AGV-Dateien
Ein Video-Layer muss eine Verbindung zu den Quelldaten haben (Datei, Ordner oder Service), die die einzelnen Videobilder bereitstellen, die auf der Oberfläche des Globus drapiert werden. Es muss eine Videoquelle vorhanden sein, auf die ArcGlobe zugreifen kann, damit der Video-Layer angezeigt werden kann.
Die Quellinformationen eines Videos müssen den Typ des Videos und die Position der Daten enthalten.
Es gibt drei allgemeine Typen von Videoquellen, die durch die folgenden Taggruppen dargestellt wurden:
- <VideoFilesSource>: Ein in einer einzelnen logischen Datei gespeichertes Video
- <ImageFolderSource>: Ein Video, das als Satz geordneter Bilder in einem einzelnen Ordner gespeichert ist
- <CustomSource>: Ein Videotyp, der durch benutzerdefinierte Kodierung verfügbar gemacht wurde
Der Videoquellpfad kann eines der folgenden Formate haben:
- Einen lokaler Dateinamen oder einen Pfad, z. B. C:\Project1\Camera1.mpg
- Einen UNC-Dateinamen oder einen Pfad, z. B. \\myServer\Videos\Camera8_Frames
- Einen relativen Dateinamen oder einen Pfad (ab der AGV-Datei-Position), z. B. \CustomVideoLayer.dll
- Beim Definieren eines relativen Pfades gelten die Standardformatierungsregeln. Die vorausgehende Zeichenfolge ".\" zeigt beispielsweise den aktuellen Ordner mit der AGV-Datei an, während ein nachgestelltes "..\" den übergeordneten Ordner anzeigt.
Im Folgenden wird jeder dieser drei allgemeinen Typen von Videoquellen näher beschrieben.
Videodateiquelle
Diese Option ist für Videos gedacht, die in einem unterstützten Videodateiformat wie AVI oder MPG auf der Festplatte gespeichert sind. Die AGV-Datei identifiziert diese Videoquelle, indem sie die Verbindungsinformationen in diesen XML-Tags enthält: <VideoSource FrameSourceType="File"> und </VideoSource>, wie unten im Beispiel-XML-Text dargestellt.
Der primäre Datenquellentag für diesen Video-Layer-Typ wird durch das Element <VideoFilePath> angegeben, das die Position der Videodatei definiert. Sie können mehrere XML-Tags verwenden, um mehrere Videodateien in einem einzelnen Video-Layer zu verbinden.
Folgendes müssen Sie ebenfalls definieren:
- Die reale Aktualisierungsrate (in Millisekunden) im Tag <FrameRequestRate>
- Dieser Wert wird in Millisekunden angegeben und stellt die Zeit dar, die ArcGlobe vor Abfragen des nächsten Videobildes abwarten sollte. Der Wert "50" würde z. B. bedeuten, dass ArcGlobe alle 0,05 Sekunden ein Bild abfragen und dadurch das Video mit einer Geschwindigkeit von 20 Bildern pro Sekunde wiedergeben würde.
- Beachten Sie, dass dies die "Abspielgeschwindigkeit" des Videos ist, die sich von den realen Zeiteinheiten unterscheiden kann, die jedes Bild darstellt.
Videodateien können in einem sehr großen Array von Formaten mit vielen möglichen Codecs gespeichert werden. Damit ein Video auf dem lokalen Computer (entweder in ArcGlobe oder in einem Videoplayer, z. B. Windows Media Player) wiedergegeben werden kann, muss sich der erforderliche Codec auf diesem Computer befinden. Je nach Computer sind dies die unterstützten Videodateiformate:
- MPG (.mpg, .mpeg, .mp4)
- AVI (.avi)
- WMV (.wmv)
Überlegungen
Im Folgenden sind einige hilfreiche Tipps zum Erstellen von Videoquelldateien beschrieben:
- Wenn Sie mehrere Videodateien in der Gruppe "VideoFilesSource" angeben, müssen alle Videos dieselbe Bildauflösung enthalten.
- Um zu sehen, ob das Video in ArcGlobe angezeigt werden kann, können Sie die Quelldatei einfach im Windows Media Player in der Vorschau anzeigen. Wenn das Video dort nicht angezeigt wird, wird es auch nicht als Video-Layer in ArcGlobe angezeigt.
Beispiel
Im Folgenden wird ein exemplarischer Video-Quell-Layer dargestellt, der aus zwei AVI-Quelldateien mit 20 Bildern pro Sekunde erstellt wurde:
<VideoSource FrameSourceType="File"> <VideoFilesSource> <VideoFilePath>.\Security_BldF_10.00AM.avi</VideoFilePath> <VideoFilePath>.\Security_BldF_10.05AM.avi</VideoFilePath> </VideoFilesSource> <FrameRequestRate>50</FrameRequestRate> </VideoSource>
ImageFolderSource
Diese Option ist für fremde, unterstützte Videoformate gedacht (z. B. das QuickTime-Dateiformat MOV), die verwendet werden, nachdem sie in einen Ordner mit Bildern konvertiert wurden. Die Option unterstützt auch die Verwendung des Bilderordners, der vom ArcGIS-Animationsframework ausgegeben werden kann. Die AGV-Datei identifiziert diese Videoquelle, indem sie die Verbindungsinformationen in diesen XML-Tags enthält: <ImageSource FrameSourceType="Folder"> und </ImageSource>, wie unten im Beispiel-XML-Text dargestellt.
Das primäre Datenquelltag für diesen Video-Layer-Typ ist <ImageFolderPath>, das den Pfad zum Ordner definiert, der die Bilddateien enthält.
Folgendes müssen Sie ebenfalls definieren:
- Die Formatierung des Dateinamens im Tag <NameFormat>
- Dieser Wert ist eine Zeichenfolge und stellt eine Vorlage für die Namenskonvention für Bilder bereit, damit in der richtigen Reihenfolge auf die richtigen Bilddateien zugegriffen wird.
- Der numerische Teil des Bilddateinamens wird mit einem Hash-Zeichen dargestellt, das vom Präfix und Suffix des Dateinamens umgeben ist.
Wenn der Ordner beispielsweise Bilder mit den Namen "Frame1.jpg", "Frame2.jpg" usw. enthielte, sollte ein <NameFormat>-Wert des Typs Frame#.jpg verwendet werden.
- Der erste und der letzte Werte des Bilderindex in den Tags <FirstIndex> und <LastIndex>
- Diese zwei Werte sind ganze Zahlen und geben den Bereich von Bilddateien an, der gelesen werden soll.
- Beispiel: Wenn Sie 300 sequenzielle Bildrahmen im Ordner haben und die erste Datei "Frame1.jpg" heißt, würden die erforderlichen Werte "1" bzw. "300" betragen.
- Diese Werte können verwendet werden, um auch eine Teilmenge eines großen Bilderordners wiederzugeben.
- Die Bildgrößenwerte sind in den Tags <Breite> und <Höhe> enthalten
- Diese zwei Werte werden in Pixel angegeben und stellen die Auflösung des Videos dar.
- Es werden nur Bilder mit dieser angegebenen Auflösung als Bilder im Video angezeigt.
- Die Tags werden gelesen, wenn ArcGlobe der Video-Layer hinzugefügt wird, oder wenn der Layer manuell erneut gelesen wird, indem Sie mit der rechten Maustaste auf den Layer im Inhaltsverzeichnis und dann auf "Aktualisieren" klicken.
- Beachten Sie, dass das Rendern von Bildern mit höherer Auflösung aufwändiger ist und zu einer geringeren maximalen Bildrate führen kann.
- Aktualisierungsrate für Videobilder im Tag <FrameRequestRate>
- Dieser Wert wird in Millisekunden angegeben und stellt die Zeit dar, die ArcGlobe vor Abfragen des nächsten Videobildes abwarten sollte.
Der Wert "100" würde z. B. bedeuten, dass ArcGlobe alle 0,1 Sekunden ein Bild abfragen und dadurch das Video mit einer Geschwindigkeit von 10 Bildern pro Sekunde wiedergeben würde.
- Beachten Sie, dass dies die "Abspielgeschwindigkeit" des Videos ist, die sich von den realen Zeiteinheiten unterscheiden kann, die jedes Bild darstellt.
- Dieser Wert wird in Millisekunden angegeben und stellt die Zeit dar, die ArcGlobe vor Abfragen des nächsten Videobildes abwarten sollte.
Beispiel
Das folgende Beispiel stellt einen Video-Quell-Layer dar, der aus einem Ordner mit Bildern und mit 10 Bildern pro Sekunde erstellt wurde.
<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>
CustomSource
Diese Option ist für erfahrene Benutzer gedacht, die Code schreiben können, um einen benutzerdefinierten Video-Layer zu erstellen, z. B. ein Live-Feed von einem beweglichen Fahrzeug. ArcGlobe fragt zu den definierten Intervallen von der benutzerdefinierten DLL Video-Frames ab, statt auf eine bestimmte Datei oder einen bestimmten Ordner mit Videobildern auf der Festplatte zuzugreifen. Die AGV-Datei identifiziert diese Videoquelle, indem sie die Verbindungsinformationen in diesen XML-Tags enthält: <VideoSource FrameSourceType="DLLServer"> und <VideoSource>, wie unten im Beispiel-XML-Text dargestellt.
Das primäre Datenquellentag für diesen Video-Layer-Typ ist <Verzeichnis>, das den vollständigen Pfad zur DLL definiert, die auf ArcGlobe-Anforderungen für Videobilder und Georeferenzierungsinformationen reagiert.
Folgendes müssen Sie ebenfalls definieren:
- Die reale Aktualisierungsrate (in Millisekunden) im Tag <FrameRequestRate>
- Dieser Wert wird in Millisekunden angegeben und stellt die Zeit dar, die ArcGlobe vor Abfragen des nächsten Videobildes von der benutzerdefinierten DLL abwarten sollte.
Beispiel: Ein Wert von "6000" würde bedeuten, dass ArcGlobe alle 6 Sekunden ein Bild abfragen und dadurch das Video mit einer Geschwindigkeit von 10 Bildern pro Minute wiedergeben würde.
- Beachten Sie, dass dies die "Abspielgeschwindigkeit" des Videos ist, die sich von den realen Zeiteinheiten unterscheiden kann, die jedes Bild darstellt
- Dieser Wert wird in Millisekunden angegeben und stellt die Zeit dar, die ArcGlobe vor Abfragen des nächsten Videobildes von der benutzerdefinierten DLL abwarten sollte.
- So viele optionale <Parameter>-Elemente, wie von der benutzerdefinierten DLL benötigt
- Beispiel: Die benutzerdefinierte DLL kann Anforderungen für viele Videos bearbeiten, wobei jede AGV-Datei ein <Parameter>-Element verwendet, um zu unterscheiden, mit welchem Video-Feed der Layer verbunden ist.
Beispiel
Im Folgenden Beispiel wird ein Video-Quell-Layer dargestellt, der von einem benutzerdefinierten DLL-Server mit 10 Bildern pro Minute erstellt wurde:
<VideoSource FrameSourceType="DLLServer"> <Location>C:\Program Files\App1\bin\MyVideoFrameProvider.dll</Location> <FrameRequestRate>6000</FrameRequestRate> <Parameter>VideoSource 1</ Parameter > </VideoSource>