AGV ファイルのビデオ ソース タグについて
ファイル、フォルダ、サービスのいずれであっても、ビデオ レイヤには、グローブのサーフェス上にドレープされる個々のビデオ フレームの提供元であるソース データとの接続が維持されている必要があります。ビデオ レイヤを表示するには、ビデオ ソースが存在し、かつ ArcGlobe がそのソースにアクセスできる必要があります。
ビデオのソース情報には、ビデオのタイプとデータの場所の両方が含まれていなければなりません。
3 つの汎用タイプのビデオ ソースがあり、これらは以下のタグ グループで示されます。
- <VideoFilesSource>: 1 つの論理ファイルに格納されたビデオ
- <ImageFolderSource>: 1 つのフォルダ内に順に並んだイメージのセットとして格納されたビデオ
- <CustomSource>: カスタム コーディングによって使用可能になったビデオ タイプ
ビデオ ソースのパスは次のいずれかの形式になります。
- ローカル ファイル名またはパス(C:\Project1\Camera1.mpg など)
- UNC ファイル名またはパス(\\myServer\Videos\Camera8_Frames など)
- AGV ファイルの場所から始まる相対ファイル名またはパス(.\CustomVideoLayer.dll など)
- 相対パスを指定すると、標準の書式規則が適用されます。たとえば、.\ 文字列が前置されていれば、これは AGV ファイルを含む現在のフォルダを意味し、..\ 文字列が前置されていれば、親フォルダであることを意味します。
以下では、各ビデオ ソースについて詳細を説明します。
ビデオ ファイル ソース
このオプションは、サポートされているビデオ ファイル形式(AVI または MPG)でディスクに格納されるビデオを対象としています。この種のビデオ ソースは、AGV ファイル内で XML タグ <VideoSource FrameSourceType="File"> と </VideoSource>(以下の XML テキストの例を参照)内に接続情報を含めることで識別されます。
このビデオ レイヤ タイプの主要なデータ ソース タグは、ビデオ ファイルの場所を指定する <VideoFilePath> エレメントです。1 つのビデオ レイヤで複数のビデオ ファイルに接続するために複数の XML タグを含めることができます。
さらに、次の情報も定義する必要があります。
- <FrameRequestRate> による実世界の更新頻度(ミリ秒)
- この値はミリ秒単位であり、次のビデオ フレームを要求するまでの ArcGlobe の待機時間を表します。たとえば、値 50 は、ArcGlobe が 0.05 秒おきにフレームを要求し、その結果、ビデオが 20 フレーム/秒の速度で再生されることを意味します。
- これはビデオの「再生速度」であり、各フレームが表す実世界の時間単位とは異なることがあることに注意してください。
ビデオ ファイルは多数の使用可能なコーデックにより、多種多様な形式で格納できます。ビデオをローカル コンピュータ上の ArcGlobe、または Windows Media Player などのビデオ プレイヤーで再生するには、必要なコーデックがそのコンピュータ上に存在していなければなりません。ユーザのコンピュータに応じて、以下のビデオ ファイル形式がサポートされます。
- MPG(*.mpg、*.mpeg、*.mp4)
- AVI(*.avi)
- WMV(*.wmv)
検討事項
以下に、ビデオ ソース ファイルの作成時に注意すべきヒントを示します。
- VideoFilesSource グループ内に複数のビデオ ファイルを指定する場合は、すべてのビデオのイメージ解像度が同じでなければなりません。
- ビデオを ArcGlobe で表示できるかどうかを確認するには、簡単なテストとして、ソース ファイルを Windows Media Player でプレビューしてみます。 Windows Media Player でビデオが表示されない場合、そのビデオは ArcGlobe でビデオ レイヤとして表示されません。.
例
以下に示すのは、20 フレーム/秒で 2 つの AVI ソース ファイルから作成されるビデオ ソース レイヤの例です。
<VideoSource FrameSourceType="File">
<VideoFilesSource>
<VideoFilePath>.\Security_BldF_10.00AM.avi</VideoFilePath>
<VideoFilePath>.\Security_BldF_10.05AM.avi</VideoFilePath>
</VideoFilesSource>
<FrameRequestRate>50</FrameRequestRate>
</VideoSource>
イメージ フォルダ ソース
このオプションは、QuickTime(*.mov)ファイル形式など、非ネイティブにサポートされているビデオ形式を対象としており、それらのビデオはイメージのコンテナに変換された後に使用されます。このオプションではまた、ArcGIS アニメーション フレームワークから出力可能なフレームのフォルダの使用もサポートされています。この種のビデオ ソースは、AGV ファイル内で XML タグ <ImageSource FrameSourceType="Folder"> と </ImageSource>(以下の XML テキストの例を参照)内に接続情報を含めることで識別されます。
このビデオ レイヤ タイプの主要なデータ ソース タグは、イメージ ファイルを含むフォルダへのパスを指定する <ImageFolderPath> です。
さらに、次の情報も定義する必要があります。
- <NameFormat> タグによるファイル名の形式
- この値は文字列であり、正しいイメージ ファイルに正しい順序でアクセスできるようにイメージ フレームの命名規則のテンプレートを指定します。
- イメージ ファイル名の数値部分はハッシュ文字で表され、ファイル名のプレフィックスとサフィックスで囲まれます。
たとえば、フォルダに含まれているイメージの名前が Frame1.jpg、Frame2.jpg などの場合、<NameFormat> には値 Frame#.jpg が使用されます。
- <FirstIndex> と <LastIndex> タグによる最初と最後のフレーム インデックス値
- これらの 2 つの値は整数であり、使用されるイメージ ファイルの範囲を指定します。
- たとえば、フォルダ内に 300 個の連続するイメージ フレームがあり、最初のファイルの名前が Frame1.jpg である場合、これらのタグ値はそれぞれ 1 と 300 である必要があります。
- これらの値は、サイズの大きなフレーム フォルダのサブセットを再生するためにも使用できます。
- <Width> と <Height> タグによるイメージのサイズ値
- これらの 2 つの値はピクセル単位であり、ビデオの解像度を表します。
- この指定された解像度を持つイメージだけがビデオのフレームとして表示されます。
- これらのタグは、ビデオ レイヤが ArcGlobe に追加されたときか、またはコンテンツ ウィンドウ内のレイヤを右クリックし [更新] をクリックすることでレイヤの再読み取りが手動で行われたときに読み取られます。
- イメージ ファイルの解像度が高いほど、より多くのリソースがレンダリングに消費されるため、結果として、最大フレーム レートが低下することがあります。
- <FrameRequestRate> によるビデオ フレーム更新頻度
- この値はミリ秒単位であり、次のビデオ フレームを要求するまでの ArcGlobe の待機時間を表します。
たとえば、値 100 は、ArcGlobe が 0.1 秒おきにフレームを要求し、その結果、ビデオが 10 フレーム/秒の速度で再生されることを意味します。
- これはビデオの「再生速度」であり、各フレームが表す実世界の時間単位とは異なることがあることに注意してください。
- この値はミリ秒単位であり、次のビデオ フレームを要求するまでの ArcGlobe の待機時間を表します。
例
以下に示すのは、10 フレーム/秒でフレームのフォルダから作成されるビデオ ソース レイヤの例です。
<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>
カスタム ソース
このオプションは、コードを記述して、移動中の車両からのライブ フィードなどのカスタム ビデオ レイヤを作成できる上級ユーザを対象としています。ArcGlobe は、ディスク上の特定のファイルまたはフレームのフォルダにアクセスするのではなく、定義された間隔でカスタム DLL にビデオ フレームを要求します。この種のビデオ ソースは、AGV ファイル内で XML タグ <VideoSource FrameSourceType="DLLServer"> と <VideoSource>(以下の XML テキストの例を参照)内に接続情報を含めることで識別されます。
このビデオ レイヤ タイプの主要なデータ ソース タグは、ArcGlobe によるビデオ フレームとジオリファレンス情報の要求に応答する DLL へのフルパスを指定する <Location> です。
さらに、次の情報も定義する必要があります。
- <FrameRequestRate> による実世界の更新頻度(ミリ秒)
- この値はミリ秒単位であり、カスタム DLL に次のビデオ フレームを要求するまでの ArcGlobe の待機時間を表します。
たとえば、値 6000 は、ArcGlobe が 6 秒おきにフレームを要求し、その結果、ビデオが 10 フレーム/分の速度で再生されることを意味します。
- これはビデオの再生速度であり、各フレームが表す実世界の時間単位とは異なることがあることに注意してください。
- この値はミリ秒単位であり、カスタム DLL に次のビデオ フレームを要求するまでの ArcGlobe の待機時間を表します。
- カスタム DLL に必要な数のオプションの <Parameter> エレメント
- たとえば、カスタム DLL は、それぞれの AGV ファイルで当該レイヤの接続先のビデオ フィードを識別するために <Parameter> エレメントが使用されている場合に、多数のビデオに対する要求を処理できます。
例
以下に示すのは、10 フレーム/分でカスタム DLL から作成されるビデオ ソース レイヤの例です。
<VideoSource FrameSourceType="DLLServer">
<Location>C:\Program Files\App1\bin\MyVideoFrameProvider.dll</Location>
<FrameRequestRate>6000</FrameRequestRate>
<Parameter>VideoSource 1</ Parameter >
</VideoSource>