com.esri.arcgis.animation
Interface IVideoExporter

All Superinterfaces:
Serializable
All Known Implementing Classes:
AnimationExporterAVI, AnimationExporterQT

public interface IVideoExporter
extends Serializable

Provides access to members that control the video exporters.

Description

Codec is an acronym for 'compressor/decompressor'. An algorithm or scheme used when recording digital video. They are essentially programs to read and write animation videos. Different video formats (e.g. AVI, QuickTime) require different sets of codecs. A codec is required for a video to be exported. Windows has several codecs for AVI export. Installing the QuickTime player also installs QuickTime codecs. Additional codecs may reside on a machine when certain programs are installed and if third-party codecs are added.

CodecCode is the four character code (FOURCC) that uniquely identifies a codec.

CodecCodeList refers to the list of codec codes for the codecs available on a machine.

CodecList is the list of codec names for the codecs available on a machine. Each entry in the list is in the format CodecCode:CodecName (codec name prefixed with the four character code, separated by a colon).

ColorDepth means the color or gray scale resolution value to be used when exporting the video.

DataRate refers to the maximum number of bytes of data per second in the video. This can be used to adjust for hardware limitations during video playback.

FrameDuration indicates the duration of each video frame, in milliseconds.

IsInstalled property is currently applicable only to the QuickTime video exporter. If QuickTime player is not installed on a machine, QuickTime codecs would be unavailable. As a result, QuickTime videos can not be exported. This property checks if QuickTime codecs are available on a machine.

KeyFrameRate is the frequency with which key frames are inserted into the video.

Quality: Once a codec is selected, video can be exported at different qualities ranging from 1 to 100. The quality setting is directly propotional to the resolution and the video file size. A quality value of 200 allows lossless compression to be used if available in the codec.

RecordOffScreen specifies if the video export would be unaffected by other application windows that obscure the map display window or scene/globe viewer.

RecordWindow specifies if the whole application window (ArcMap, ArcScene or ArcGlobe) rather than just the map display window or scene/globe viewer would be exported.

ShowSettingsDialog specifies if the codec settings dialog would be displayed when exporting using the ExportAnimation() method. The default is off.

UseCustomSize indicates if the export would be based on custom video size settings.

Remarks

Some of the properties in this interface may not be applicable to the AVI exporter. They include IsInstalled, ColorDepth, KeyFrameRate, DataRate, and FrameDuration.

For AVI, all codec codes use upper cases. So querying a codec code always returns a string in upper case. When you assign a codec code, however, you can assign it in either case (but internally it always uses the upper case).

For QuickTime, codec code cases are mixed. Some use upper cases while others use lower cases. Therefore a developer needs to be careful because it's case sensitive. Pay special attention to some peculiar codecs when a four-letter codec code appears to only contain three letters - the last letter is actually a blank space. There're also some other rare codecs that have no codec names; they only have codec code used as an identifier.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.


Method Summary
 void exportAnimation(IAGAnimationTracks pTracks, IAGAnimationEnvironment pAnimEnv, IStatusBar pStatusBar)
          Export the animation into a video file.
 String getCodec()
          The current video codec.
 String getCodecCode()
          The current video codec's unique code.
 IStringArray getCodecCodeList()
          The list of unique codes of available codecs.
 IStringArray getCodecList()
          The list of names of available codecs.
 short getColorDepth()
          The number of bits per pixel in each video frame.
 void getCustomSize(int[] pWidth, int[] pHeight)
          The custom image size for video export.
 int getDataRate()
          The maximum number of bytes per second.
 String getExportFileName()
          The exported file name.
 String getFileExtension()
          The file extension associated with the current exporter.
 String getFilter()
          The filter string used in the CFileDialog class.
 int getFrameDuration()
          The duration of each frame in milliseconds.
 int getFrameRate()
          The frame rate in images per second.
 int getKeyFrameRate()
          The frequency of keyframes in the video.
 String getName()
          The name of the exporter.
 int getQuality()
          The quality of video compression (1-100).
 boolean isInstalled()
          Indicates if the video exporter is installed.
 boolean isRecordOffScreen()
          Indicates if video is to be recorded offscreen.
 boolean isRecordWindow()
          Indicates if entire window is to be recorded.
 boolean isResizeExportWindow()
          Indicates if the viewer window is to be resized during video export.
 boolean isShowSettingsDialog()
          Indicates if video compression settings dialog is to be displayed.
 boolean isUseCustomSize()
          Indicates if a custom image size should be used.
 void putCustomSize(int width, int height)
          The custom image size for video export.
 void setCodec(String pCodecName)
          The current video codec.
 void setCodecCode(String pCodecCode)
          The current video codec's unique code.
 void setColorDepth(short pColorDepth)
          The number of bits per pixel in each video frame.
 void setDataRate(int pDataRate)
          The maximum number of bytes per second.
 void setExportFileName(String fileName)
          The exported file name.
 void setFrameDuration(int pFrameDuration)
          The duration of each frame in milliseconds.
 void setFrameRate(int pImagesPerSecond)
          The frame rate in images per second.
 void setKeyFrameRate(int pKeyFrameRate)
          The frequency of keyframes in the video.
 void setQuality(int pQualityPercent)
          The quality of video compression (1-100).
 void setRecordOffScreen(boolean pbRecordOffScreen)
          Indicates if video is to be recorded offscreen.
 void setRecordWindow(boolean pbRecordAppWindow)
          Indicates if entire window is to be recorded.
 void setResizeExportWindow(boolean pbResizeExportWindow)
          Indicates if the viewer window is to be resized during video export.
 void setShowSettingsDialog(boolean pbShowSettingsDialog)
          Indicates if video compression settings dialog is to be displayed.
 void setUseCustomSize(boolean pbUseCustomSize)
          Indicates if a custom image size should be used.
 

Method Detail

getName

String getName()
               throws IOException,
                      AutomationException
The name of the exporter.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The name
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

exportAnimation

void exportAnimation(IAGAnimationTracks pTracks,
                     IAGAnimationEnvironment pAnimEnv,
                     IStatusBar pStatusBar)
                     throws IOException,
                            AutomationException
Export the animation into a video file.

Remarks

Note that the animation exporting honors the animation environment settings. When exporting to an animation to a video, you need to specify the output file name and the CodecCode used in compression. Optionally, you can set other video properties such as the frame rate, quality, etc.
If you choose to use custom size for the video, first you need to set the UseCustomSize property to true before calling the PutCustomSize method.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pTracks - A reference to a com.esri.arcgis.animation.IAGAnimationTracks (in)
pAnimEnv - A reference to a com.esri.arcgis.animation.IAGAnimationEnvironment (in)
pStatusBar - A reference to a com.esri.arcgis.system.IStatusBar (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFilter

String getFilter()
                 throws IOException,
                        AutomationException
The filter string used in the CFileDialog class.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The filter
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFileExtension

String getFileExtension()
                        throws IOException,
                               AutomationException
The file extension associated with the current exporter.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The name
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setExportFileName

void setExportFileName(String fileName)
                       throws IOException,
                              AutomationException
The exported file name.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
fileName - The fileName (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getExportFileName

String getExportFileName()
                         throws IOException,
                                AutomationException
The exported file name.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The fileName
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setFrameRate

void setFrameRate(int pImagesPerSecond)
                  throws IOException,
                         AutomationException
The frame rate in images per second.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pImagesPerSecond - The pImagesPerSecond (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFrameRate

int getFrameRate()
                 throws IOException,
                        AutomationException
The frame rate in images per second.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The pImagesPerSecond
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setUseCustomSize

void setUseCustomSize(boolean pbUseCustomSize)
                      throws IOException,
                             AutomationException
Indicates if a custom image size should be used.

Remarks

If you choose to use custom size for the video, first you need to set the UseCustomSize property to true before calling the PutCustomSize method, as shown by the following code segment:
'To use custom size during the exporting, set the UseCustomSize property to true first
pVideoExporter.UseCustomSize = True
'then call the PutCustomSize method

Call pVideoExporter.PutCustomSize(500, 500)

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pbUseCustomSize - The pbUseCustomSize (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isUseCustomSize

boolean isUseCustomSize()
                        throws IOException,
                               AutomationException
Indicates if a custom image size should be used.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The pbUseCustomSize
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

putCustomSize

void putCustomSize(int width,
                   int height)
                   throws IOException,
                          AutomationException
The custom image size for video export.

Remarks

If you choose to use custom size for the video, first you need to set the UseCustomSize property to true before calling the PutCustomSize method, as shown by the following code segment:
'To use custom size during the exporting, set the UseCustomSize property to true first
pVideoExporter.UseCustomSize = True
'then call the PutCustomSize method

Call pVideoExporter.PutCustomSize(500, 500)

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
width - The width (in)
height - The height (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCustomSize

void getCustomSize(int[] pWidth,
                   int[] pHeight)
                   throws IOException,
                          AutomationException
The custom image size for video export.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pWidth - The pWidth (out: use single element array)
pHeight - The pHeight (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isInstalled

boolean isInstalled()
                    throws IOException,
                           AutomationException
Indicates if the video exporter is installed.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The pbIsInstalled
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCodecList

IStringArray getCodecList()
                          throws IOException,
                                 AutomationException
The list of names of available codecs.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
A reference to a com.esri.arcgis.system.IStringArray
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCodecCodeList

IStringArray getCodecCodeList()
                              throws IOException,
                                     AutomationException
The list of unique codes of available codecs.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
A reference to a com.esri.arcgis.system.IStringArray
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setCodec

void setCodec(String pCodecName)
              throws IOException,
                     AutomationException
The current video codec.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pCodecName - The pCodecName (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCodec

String getCodec()
                throws IOException,
                       AutomationException
The current video codec.

Remarks

For AnimationExporterAVI, the default codec used by the video exporter is related to the quality setting. If the quality is below 90, then the Intel Indeo(R) Video R3.2 codec is used. Otherwise, the Cinepak Codec by Radius codec is used.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The pCodecName
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setCodecCode

void setCodecCode(String pCodecCode)
                  throws IOException,
                         AutomationException
The current video codec's unique code.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pCodecCode - The pCodecCode (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCodecCode

String getCodecCode()
                    throws IOException,
                           AutomationException
The current video codec's unique code.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The pCodecCode
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setColorDepth

void setColorDepth(short pColorDepth)
                   throws IOException,
                          AutomationException
The number of bits per pixel in each video frame.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pColorDepth - The pColorDepth (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getColorDepth

short getColorDepth()
                    throws IOException,
                           AutomationException
The number of bits per pixel in each video frame.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The pColorDepth
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setQuality

void setQuality(int pQualityPercent)
                throws IOException,
                       AutomationException
The quality of video compression (1-100). 200 - Lossless.

Remarks

This property is used to control the quality of the exported video, which ranges from 0 to 100. For AVI exporter (AnimationExporterAVI), the default value is 90. For QuickTime exporter, the default value is 50.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pQualityPercent - The pQualityPercent (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getQuality

int getQuality()
               throws IOException,
                      AutomationException
The quality of video compression (1-100). 200 - Lossless.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The pQualityPercent
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setKeyFrameRate

void setKeyFrameRate(int pKeyFrameRate)
                     throws IOException,
                            AutomationException
The frequency of keyframes in the video.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pKeyFrameRate - The pKeyFrameRate (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getKeyFrameRate

int getKeyFrameRate()
                    throws IOException,
                           AutomationException
The frequency of keyframes in the video.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The pKeyFrameRate
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setDataRate

void setDataRate(int pDataRate)
                 throws IOException,
                        AutomationException
The maximum number of bytes per second.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pDataRate - The pDataRate (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDataRate

int getDataRate()
                throws IOException,
                       AutomationException
The maximum number of bytes per second.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The pDataRate
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setFrameDuration

void setFrameDuration(int pFrameDuration)
                      throws IOException,
                             AutomationException
The duration of each frame in milliseconds.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pFrameDuration - The pFrameDuration (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFrameDuration

int getFrameDuration()
                     throws IOException,
                            AutomationException
The duration of each frame in milliseconds.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The pFrameDuration
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setRecordWindow

void setRecordWindow(boolean pbRecordAppWindow)
                     throws IOException,
                            AutomationException
Indicates if entire window is to be recorded.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pbRecordAppWindow - The pbRecordAppWindow (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isRecordWindow

boolean isRecordWindow()
                       throws IOException,
                              AutomationException
Indicates if entire window is to be recorded.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The pbRecordAppWindow
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setRecordOffScreen

void setRecordOffScreen(boolean pbRecordOffScreen)
                        throws IOException,
                               AutomationException
Indicates if video is to be recorded offscreen.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pbRecordOffScreen - The pbRecordOffScreen (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isRecordOffScreen

boolean isRecordOffScreen()
                          throws IOException,
                                 AutomationException
Indicates if video is to be recorded offscreen.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The pbRecordOffScreen
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setShowSettingsDialog

void setShowSettingsDialog(boolean pbShowSettingsDialog)
                           throws IOException,
                                  AutomationException
Indicates if video compression settings dialog is to be displayed.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pbShowSettingsDialog - The pbShowSettingsDialog (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isShowSettingsDialog

boolean isShowSettingsDialog()
                             throws IOException,
                                    AutomationException
Indicates if video compression settings dialog is to be displayed.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The pbShowSettingsDialog
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setResizeExportWindow

void setResizeExportWindow(boolean pbResizeExportWindow)
                           throws IOException,
                                  AutomationException
Indicates if the viewer window is to be resized during video export.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pbResizeExportWindow - The pbResizeExportWindow (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isResizeExportWindow

boolean isResizeExportWindow()
                             throws IOException,
                                    AutomationException
Indicates if the viewer window is to be resized during video export.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The pbResizeExportWindow
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.