ID: 4121

Configuration Details for VideoFX Hi-Res Ingest

Hi-Res Ingest Setup Notes

Zoom Hi-Res Video Management Release supports a proxy-based Hi-Res asset management wherein read-only stock/footage files (of typically large size) can reside outside the Zoom repository, and still be accessible to all Zoom users for their regular operations like linking, searching, etc. You can refer to the article here for an overview of the model. This post describes the nitty-gritty of setting up a Hi-Res ingest model.

Hi-res ingest requires various interacting components set up just right, in order to perform specific tasks in a proper sequence. The configuration to accomplish this, while not complex, is a bit tedious but only needs to be done once.

Now, a hi-res ingest involves the following distinct entities:

  • a client machine, where the hi-res asset is generated or housed prior to its arrival at the Zoom doors.
  • a mount location, where the hi-res asset will be moved to, so as to make it available to all Zoom users.
  • an ingest server aka script executor engine, where a host of Zoom automation scripts will be running to make the hi-res ingest happen – usually, this is on the Zoom Preview Server.

All these components require precise configuration of the parameters & metadata schema on Zoom Server. We will go over each of them in sections below.

 

Zoom Hi-Res ingest feature is a licensed feature and is available only in the deployments carrying this license.

Generic Hi-Res Life Cycle

Before we jump to the configuration details, let us quickly walk through a sample flow of events as depicted in the diagram above for hi-res ingest process.

  • The hi-res assets are linked to an Adobe Premiere Pro project or any other video editing application.
  • The project file is checked into Zoom along with the links from the Premiere Zoom plugin panel.
  • The Zoom Ingest server inspects all the files that are checked in, and identifies the hi-res assets. This identification is based on file formats of the files, as well as their relative location in a folder hierarchy being checked in. These settings are configurable (and you will see the details in the sections below).
  • Once determined as hi-res, Zoom ingest server copies the hi-res assets over to the pre-configured mount location. This step makes the hi-res assets available to all Zoom clients.
  • Zoom ingest server also makes a copy to the archive location and changes the metadata on the place-holder proxy file to flag it as a proxy in Zoom after ingest
Remember, once ingested so, the hi-res assets are part of the Zoom repository and are available for use by any Zoom client. Linking to the proxy file within Zoom, will in effect link with the corresponding hi-res asset itself. All anyone will have to do is to link with the proxy file, and then run resolve links so as to resolve to the correct hi-res asset path.

Metadata-driven Vantage-dependent Hi-Res Ingest

We have described the generic flow in the preceding sections. But in this section, we talk about the specific implementation of the ingest mechanism supported by Zoom.

In the present implementation, the hi-res asset handling integrates with the Telestream Vantage system to generate  proxies, thumbnails, certain specific Apple ProRes formats and to extract relevant media metadata. In this implementation, the ingest server handles each hi-res asset by doing the following:

  • Checks in a default placeholder file as the proxy corresponding to the hi-res assets. This is so that the file becomes immediately available for purposes of linking etc prior to transcoding.
  • Submits a request to the Telestream Vantage system to generate a low-resolution proxy, Prores version among other things. ProRes file is copied to the pre-configured mount location and the native hi-res asset is renamed. See screenshot for a sample Vantage workflow setup.
You can download a sample workflow configuration file for Vantage-based Hi-Res ingest from here – HiresIngest.xml . For more information on configuring the Vantage integration please see this help article.

 

 Vantage Hires Workflow

 

  • Checks in the low-resolution proxy once Vantage finishes trans-coding and it becomes available  in the Zoom server as a new revision on top of the placeholder earlier checked in.

Screen Shot 2015-12-07 at 4.47.42 pm

For hi-res asset ingest to work, there are two pre-requisites to be set up on the Zoom DAM server.

  • Certain metadata properties must be defined and set as “mandatory” in the metadata configuration module (controlled by the DAM/conf/metadataspec.xml file). These properties control the folder hierarchy in which the hi-res assets are organized on the mount location, as well as their low-res proxies are organized within the Zoom server.

For example, if you want to configure two properties named “Show” and “Episode_Title” under metadata group named “CORP”, you could set up the metadata spec as shown here:

<mdgroup code="CORP" label="MYCOMPANY" editable="true" appendable="false">
<metadataFields>

<field ns="zoom" name="Show" label="Show" keyType="string" valueType="string" type="mandatory">

<values>
<option key="people now" value="people now"/>
<option key="legends" value="legends"/>
<option key="other" value="other"/>
</values>

</field>
<field ns="zoom" name="Episode_Title" label="Episode Title" keyType="string" valueType="string" type="mandatory">

<values>
<option key="brad_pitt_interview" value="brad_pitt_interview"/>
<option key="angelina_jolie_interview" value="angeline_jolie_interview"/>
<option key="people_now_2015" value="people_now_2015"/>
<option key="stock_report" value="stock report"/>
<option key="market_analysis" value="market analysis"/>
</values>

</field>

</metadataFields>
</mdgroup>

  • 3 specific metadata properties must be defined as follows and if need be, declared non-editable:
    • A flag to indicate whether a Zoom asset is a low-res proxy or not
    • A status field to indicate the current archive status of the hi-res asset (if in fact, the Zoom asset is a proxy)
    • A path field to indicate the hi-res path in the mount location (if in fact, the Zoom asset is a proxy)

Given below is a sample of the relevant metadata spec section:

<mdgroup code="ZPIG" label="Zoom Proxy Info" editable="false" appendable="false">
<metadataFields>

<field ns="zoom" name="NativeFilePath" label="Native File Path" keyType="string" valueType="string"/>
<field ns="zoom" name="Archive Status" label="Archive Status"/>
<field ns="zoom" name="File Proxy" label="Proxy" keyType="string" valueType="string">
<values>

<option key="true" value="true"/>
<option key="false" value="false"/>

</values>
</field>

</metadataFields>
</mdgroup>

These metadata properties once defined in the Zoom server metadata spec XML file, will need to be referenced by the Zoom client configuration or the ingest server configuration at various points. These are described in the sections later in the document.

In addition to the metadata schema definition as described above, we must also set metadata entry as mandatory on every check-in. You can do this from Web-admin console->Server Control Panel ->Repository Settings and setting Enforces Mandatory Metadata on every Check-In flag to true. 

Zoom client configuration as you know is controlled data in the .zm/ folder in the user’s home directory. The client could be a Mac or a Windows machine. The configuration on the client machine, for hi-res ingest is controlled by the two files “hook.properties” and “zoom.properties”. These files should be placed in the $HOME/.zm/ directory. However for a large client deployment you will want to configure these properties on the Zoom server and have them auto-sync with each Zoom client’s $HOME/.zm/ directory.

Following are the parameters that ought to be defined in this configuration file.

Property Sample Value Cross-references
MD_BASED_INGEST_FORMAT  /#CORP_Show#/#CORP_Episode Title#/#OLD_NAME#_#TSTAMP# Defined in Server Metadata Schema
PRE_HOOK_SERVER_URL http\://192.168.0.99\:8873 None
PRE_HOOK_SCRIPT_PATH /home/evolphin/zoom-deploy/pre-hook/pre-checkin.pl None
POST_HOOK_SCRIPT_PATH /home/evolphin/zoom-deploy/post-hook/post-checkin.pl None 
ZOOM_PROXY_INOUT /Volumes/usan/.zoom-deploy/zoom-proxy-inout  

Same as PreHook#zmInOutPrefix

Same as PostHook#zmInOutPrefix

HI_RES_FOLDER /Volumes/usan/hires  

Same as PreHook#workspaceRoot

ZIP_FILE_PATH /data/usan/.zoom-deploy/Project.zip Requires PROJECT_FILE_IN_ZIP to work
PROJECT_FILE_IN_ZIP Project/testproj.prproj Requires ZIP_FILE_PATH to work
DELETE_INOUT_JSON_FILES true None 

These properties are described in detail below.

MD_BASED_INGEST_FORMAT

This is the folder schema pattern that defines the folder structure under which the hi-res assets must be organized into, when they are ingested in the mount location. This will also be the folder structure under which the proxies or placeholder of the hi-res assets will be housed in the Zoom server itself. This pattern is based on the Zoom metadata properties. The properties defined here must map to the definition on the Zoom server side as described in the section above.

For example, a typical setup could have a pattern as follows:

MD_BASED_INGEST_FORMAT=/#CORP_Show#/#CORP_Episode Title#/#OLD_NAME#_#TSTAMP#

 

Here, “CORP_Show” and “CORP_Episode Title” are metadata properties that are defined and set to “mandatory” on the Zoom server metadata schema.

It is recommended to set these properties as mandatory to make sure that the values are available in every check-in operation.

 

PRE_HOOK_SERVER_URL

This specifies the ingest server aka script execution server’s URL. At present, Zoom houses the script execution engine within the Zoom Preview Server. Therefore this URL must point to a preview server host/port.

For example, the property could look like this:

 PRE_HOOK_SERVER_URL=http\://192.168.0.99\:8873
Note that the special characters like the “:” are escaped using a preceding slash. This is vital.

 

PRE_HOOK_SCRIPT_PATH

This specifies the path of the script on the Zoom ingest server that would be invoked prior to the actual check-in of assets to Zoom. This path exists on the machine where the scripts are executed, which is the script executor framework running off the Zoom Preview Server. Therefore this script must be located in the specified location within that machine. 

For example,

PRE_HOOK_SCRIPT_PATH=/home/evolphin/zoom-deploy/pre-hook/pre-checkin.pl

 

In this example, we have of course assumed that the script executor (preview server) is running on a Linux box.

POST_HOOK_SCRIPT_PATH

This specifies the path of the script that would be invoked after running the check-in operation. Again, this is with respect to the Zoom Preview Server machine.

For example,

POST_HOOK_SCRIPT_PATH=/home/evolphin/zoom-deploy/post-hook/post-checkin.pl

 

ZOOM_PROXY_INOUT

This is the path used to exchange data between the client machine and the script executor engine regarding the ingest operations. Both machines (the client and the preview server machines) must have sufficient access privileges to be able to read from / write to this location.

For example, from a Mac client, a mounted network share that is accessible to both the client machine and the Linux preview server could look like this. The folder must be readable by the client and writable by the Zoom ingest server/script execution server.

ZOOM_PROXY_INOUT=/Volumes/usan/.zoom-deploy/zoom-proxy-inout

It is recommended that the mounted path be visited from the client machine at least once before launch of hi-res ingest to work around certain platform-specific limitations related to mounting of volumes. 

HI_RES_FOLDER

This specifies the path where the assets to be checked in are located. Check-in may be triggered by dragging assets from this location into the Asset Browser or from within the Zoom plugin panel inside the Adobe application. This path must be set to a location that is accessible from both the client and from the ingest server.

For example, from a Mac client, the hi-res network share location could look like this.

HI_RES_FOLDER=/Volumes/usan/hires

It is recommended that the mounted path be visited from the client machine at least once before launch of hi-res ingest to work around certain platform-specific limitations related to mounting of volumes. 

ZIP_FILE_PATH

This specifies the path where a sample template folder structure is placed in zipped format. This will be defined and supplied by the admins and can be automatically un-zipped from with the Zoom Premiere Pro plugin to create a new project. 

For example, on a Mac client, the path may be defined like this. 

ZIP_FILE_PATH=/data/usan/.zoom-deploy/Project.zip

 

In order to specify multiple templates zip files use -> as the separator:

ZIP_FILE_PATH=/Volumes/ES_SAN/U-SAN/.zoom-deploy/ZipFiles/Evolphin-Promos.zip->/Volumes/ES_SAN/U-SAN/.zoom-deploy/ZipFiles/Lower-Third.zip->/Volumes/ES_SAN/U-SAN/.zoom-deploy/ZipFiles/Celebrity-Interview.zip

 

PROJECT_FILE_IN_ZIP

This property defines the relative position of the project file in the template zip structure given. 

For example, it could be defined like this. 

PROJECT_FILE_IN_FORMAT=Project/testproj.prproj

 

DELETE_INOUT_JSON_FILES

This flag indicates whether or not a delete the intermediate files created by hi-res ingest module. In cases of facing any issues in this module, we could turn this flag to false and retrieve the intermediate files for purposes of debugging. 

By default this will be set to true, like this: 

DELETE_INOUT_JSON_FILES=true

 

Please note, the first 4 properties defined here would be common to all the clients using that particular deployment as they are really about the details of the script executor server-side details. Any other property dealing with paths could vary from one client machine to another. While it will definitely be different between a Windows client vs. a Mac client, even amongst clients of the same platform there could be minor variations (for example, drive letters or mount volumes could differ from machine to machine, even if the target location on the LAN is the same). Using the Zoom server-side client settings it is possible to use environment variables like $USER to automatically create a user-specific property value.

Properties saved inside $HOME/.zm/settings/serverwc/serverwc-settings.xml. Use the Settings dialog from Z-Icon to update the following values: 

 

defaultCheckoutLocation   —  This property defines the location where by default any checked out asset is placed. So it won’t prompt to select location every time user try to checkout file from zoom repository.

DEF_ZOOM_SERVER —  In typical deployments, clients only connect with a single Zoom server and therefore it is recommended that this property be configured to minimize user intervention in running Zoom operations.  

alwaysUseDefaultServer   – This property directs all Zoom operations from the client to the default server. This must be set to true to execute search operations from inside the Zoom Adobe plugins. 

Users may already be familiar with the Third Party Mount explained here. Hi-res asset ingest is really the same mechanism with some embellishments on the ingest operations side. In the case of hi-res ingest model, you will have to make sure that you have the following properties defined in the $HOME/.zm/zoom.properties file. 

Property Sample Value Cross-references
THIRD_PARTY_MOUNT_POINT /Volumes/psan/tpm

Same as PreHook#TPMPrefix

Same as PostHook#TPMPrefix

Same as Vantage#TPMPrefix

EXTENSIONS_PROXY_MAP mp4 -> mov, mxf

Low-res Proxy format (mp4 in the sample) same as Vantage WorkflowPreHook#defaultExtProxy and Vantage#lowProxyExt

ProRes format (mov in the sample) same as Vantage Workflow and Vantage#proResExt

IGNORE_PATTERN_IN_LINK_FILENAME _original None
PLUGIN_METADATA_TO_SHOW EDIT_Category,EDIT_Brand,  EDIT_Source,WKFL_Route to Defined in Server Metadata Schema
LIST_DEF_PROPS

EDIT_Category|Event, Edit_Brand|People,  Edit_Source|Getty,  WKFL_Route to|Evan

Defined in Server Metadata Schema
SHOW_STATUS_ALERT false None
HI_RES_PATH_PROP  VDEO_Native File Path

 Same as Prehook Hires Path

 and Post Hook Hires Path

THIRD_PARTY_MOUNT_POINT

This is the path where the hi-res assets would be copied to, after their “ingest” into Zoom server. Please recall, our model of hi-res ingest would place the hi-res assets in a location accessible to all Zoom clients and only ingest their proxies in the Zoom repository. This property defines the base folder location of these hi-res assets. The assets will further be organized into a sub-folder hierarchy similar to that of their proxies inside the Zoom repository.

THIRD_PARTY_MOUNT_POINT=/Volumes/psan/tpm

 

EXTENSIONS_PROXY_MAP

This property maps the file extension of the low-res proxy assets that are present in the Zoom repository, and the file extensions of the corresponding hi-res assets residing in the Third Party Mount locations. 

EXTENSIONS_PROXY_MAP=mp4 -> mov, mxf

In the example above, a hi-res asset of .mov or .mxf will correspond to low-res proxy asset of extension .mp4.

IGNORE_PATTERN_IN_LINK_FILENAME

This property defines the suffix to be added to the hi-res asset when being copied to the TPM.  

IGNORE_PATTERN_IN_LINK_FILENAME=_original

In the example above, a hi-res asset will be copied to the TPM location with the “_original” suffix in the file name. 

PLUGIN_METADATA_TO_SHOW

This property defines the list of metadata to be shown in the Zoom plugin search window for all matching assets. 

PLUGIN_METADATA_TO_SHOW=EDIT_Category,EDIT_Brand,  EDIT_Source,WKFL_Route to 

LIST_DEF_PROPS

This property defines all the metadata that will be shown as filter constructs displayed as drop-down options within the Zoom plugin panel. 

LIST_DEF_PROPS=EDIT_Category|Event, Edit_Brand|People,  Edit_Source|Getty,  WKFL_Route to|Evan

 

SHOW_STATUS_ALERT

This property turns off any alerts / confirmation pop-ups arising out of Zoom client-side operations. Since hi-res ingest is a complex sequence of many Zoom operations strung together, it is recommended that the alerts be turned off to minimize the amount of user intervention needed.  

SHOW_STATUS_ALERT=false

 

HI_RES_PATH_PROP

Use to override the default metadata property (ZPIG_Native File Path) used to store hires path.

HI_RES_PATH_PROP=VDEO_Native File Path

 

Make sure to never skip the indexing of this metadata property in metadataspec.xml, that may cause issues while creating links between the project file and the hires link files. 

For the metadata-based Vantage-integrated workflow discussed here, 3 scripts have to be invoked at different points of the asset ingestion process. Whenever an end-user drags and drops files into the Asset Browser or checks in files from within the Adobe Premiere Pro Zoom plugin, in course of the Zoom check-in process, these three scripts are invoked. All of these scripts are running out of the same Script Execution engine set up on a preview server system. This machine is also referred to as the ingest server in this article. 

The points of check-in interception are

  • Pre-Check-In
  • Post-Check-In
  • Post-Vantage Low-Proxy Ingest

Remember, the client side configurations will include the paths of the scripts to be invoked during different milestones as defined in the section above.

Hook Configurations

In the current implementation, all the hooks are implemented as Perl scripts and they are organized in such a way as to consume the configuration settings from a file located under “./conf/config.ini” with respect to the location of the script itself. This section covers the configuration for these scripts in detail.

Here is a list of the common configuration properties used by all three scripts discussed.

Do not edit any part of the packaged configuration files excepting to change the sample values to point to actual values appropriate to your deployment. All other factors like group names, property names, order of definition etc. are to be left undisturbed.

 

Ensure that all paths configured must have appropriate read / write accesses from the script executor engine machine, the Zoom client machines and the Vantage machine.

The pre-check-in script does the following:

  • parses the input files
  • segregates the hi-res assets based on the user configurations like folder hierarchy and file formats
  • creates a place-holder asset

 

Group Name Property Name=Sample Value Description Cross-references
[ZOOMSERVER] serverURL= http://192.168.0.107:8880 Zoom server host and port None
  webminURL= http://192.168.0.107:8443 Zoom web-admin console host and port None 
  serverUsername=admin Zoom username (must be in superadmin role) None 
  serverPassword=admin Zoom Password for the username configured above None 
[ENVIRONMENT] zmPath= /home/evolphin/zoom/bin/zm Path to the zoom executable in Ingest Server None 
 [MOUNTPREFIX] zmInOutPrefix = /data/usan/.zoom-deploy/zoom-proxy-inout Path used to exchange data between the client machine and the script executor engine regarding the ingest operations. 

Same as Hook.propeties #ZOOM_PROXY_INOUT

Same as PostHook #zmInOutPrefix

  workspaceRoot = /data/usan/hires Path where the assets to be checked in are located. 

Same as Hook.properties #HI_RES_FOLDERS

  TPMPrefix = /data/psan/tpm Path where the hi-res assets will be housed in order to be accessible by all Zoom clients. 

Same as Hook.properties #THIRD_PARTY_MOUNT_POINT

Same as PostHook#TPM_Prefix,

Same as Vantage#TPM_Prefix

  archivePrefix = /data/psan/archive Path where the hi-res assets are moved to when they are archived.

Same as PostHook#archivePrefix

[METADATA] proxy = ZPIG_Proxy Metadata field to indicate if the asset has proxy. [Proxy will be set to true for HiRes videos]

Defined in Server Metadata Schema

Same as PostHook#proxy

hiresArchiveStatus = ZPIG_HiResArchive Status Metadata field to store archive status transitions of Hi-Res file

Defined in Server Metadata Schema

Same as PostHook#archiveStatus

hiResPath = ZPIG_Native File Path Metadata field to indicate the location of HiRes file

Defined in Server Metadata Schema

Same as PostHook#hiResPath

[INGESTWORKFLOW] nativefileTimeStampFormat = mmddyyyy-hh mm ss mmm Native file time-stamp format None
defaultExtProxy = mp4 Default file extension for proxy files

Defined in Vantage Workflow

Same as the low-res proxy format defined in Zoom.properties #EXTENSIONS_PROXY_MAP

placeHolderAsset = /home/evolphin/zoom/zoom-deploy/PH.mov Default asset to be used as place holder None 
directIngestDirs =<<EOL
/Production/GFX/
/Production/Exports/.*TMP
EOL
Directories whose files do not require proxy during ingest [Exported videos/GFX etc] None 
directIngestFiles=<<EOL
\.pdf$
\.jpeg$
\.jpg$
\.mp3$
\.png$
\.DS_Store
EOL
Files which does not require proxy[Non video files] None 
hiresIngestDirs=<<EOL
/.*/zoom_video_ingest/10_nested_folders/f1
/.*/After Effects/
/.*/AE REF
/.*/Exports/For Review
/.*/zoom_video_ingest
EOL
List of dir patterns that are to be included for the hi-res workflow  
hiresIngestFiles=<<EOL
\.mp4$
\.mxf$
\.mov$
\.3gp$
#\.prproj$
EOL
File patterns which are to be included in a hi-res ingest  
folderMetadataOrder The Path Level count for mapping would start from the root of the folder path
or the bottom of the folder path. Supported values ‘Forward’ or ‘Reverse’
 
fileSizeLimitOnDirectIngest Flag to specify if file size limit should be enforced
on direct ingest files.
True – 1, False – 0
 
PATHTOMETADATAMAP  Level1=EDIT_Brand
Level2=IPTC_City
For each level N applies the sub-path value into the corresponding metadata field
Parameter: LevelN; Value: <Metadata Group>_<Metadata Field Name>
 
FILETYPESIZELIMIT  jpg = 500k
png = 1m
psd = unlimited
Direct ingest file types and their size limit  
       

 

After processing the input files, the pre-check-in hook hands off control to the Zoom check-in process.

The post-check-in hook gets invoked after the completion of the Zoom check-in process, wherein the placeholder asset for the corresponding hi-res asset gets imported into Zoom repo. This script does the following:

  • submits job requests to the Vantage system to generate the thumbnail, low-res proxy and the prores format assets for each hi-res asset found during the pre-check-in parsing.
  • applies metadata on the ingested placeholder
Group Name Property Name=Sample Value Description Cross-references
[ZOOMSERVER] serverURL=  http://192.168.0.107:8880 Zoom server host and port None
webminURL= http://192.168.0.107:8443 Zoom web-admin console host and port None 
serverUsername=admin Zoom username (must be in superadmin role) None 
serverPassword=admin Zoom Password for the username configured above None 
[ENVIRONMENT] zmPath= /home/evolphin/zoom/bin/zm Path to the zoom executable in Ingest Server None
 [MOUNTPREFIX]

zmInOutPrefix =

/data/usan/.zoom-deploy/zoom-proxy-inout

Path used to exchange data between the client machine and the script executor engine regarding the ingest operations. 

Same as Hook.properties #ZOOM_PROXY_INOUT

Same as PreHook#zmInOutPrefix

  TPMPrefix = /data/psan/tpm Path where the hi-res assets will be housed in order to be accessible by all Zoom clients. 

Same as PreHook#TPMPrefix,

Same as Vantage#TPMPrefix

  archivePrefix = /data/psan/archive Path where the hi-res assets are moved to when they are archived.

Same as PreHook#archivePrefix

 

workspaceRoot = /data/usan/hires

 Path where the assets to be checked in are located.  Same as Hook.properties #HI_RES_FOLDERS
[METADATA] proxy = ZPIG_Proxy Metadata field to indicate if the asset has proxy. [Proxy will be set to true for HiRes videos]

Defined in Server Metadata Schema

Same as PreHook#proxy

archiveStatus = ZPIG_Archive Status Metadata field to indicate if the HiRes file is copied to Archive Location

Defined in Server Metadata Schema

Same as PreHook#archiveStatus

hiResPath = ZPIG_Native File Path Metadata field to indicate the location of HiRes file

 

Defined in Server Metadata Schema

Same as PreHook#hiResPath

[VANTAGE] vantageServerURL =http://192.168.0.89:8676 Server Address where Vantage is installed None
inPathPrefix=/data/usan/hires Prefix to Hi-Res Location as seen in the Ingest Server Same as Vantage#inPathPrefix
outPathMount= T:\ Prefix to Vantage Location as seen in the Vantage machine Same as Vantage#outPathMount
proxyOutDir=         /data/usan/.zoom-deploy/vantage Output Location of files generated by Vantage

Same as PostHook#outPathMount

Same as Vantage#outPathMount

workflowName=HiRes Ingest Vantage workflow to generate low-res proxy and other outputs None
pollDuration=10 Duration to poll vantage for status after submitting request (in seconds) None 
sleepTime=2 Intermediate wait time during polling (in seconds) None 
[VANTAGEVARIABLES]

thumbOutFileVar       =zoomHiResThumbOutFile

proResOutFileVar          =zoomHiResProResOutFile

h264OutFileVar            =zoomHiResH264OutFile

mediaExtVar                  =zoomMediaExtension

hiResOutputFolderVar  =zoomHiResOutputFolder

postVantageInFileVar                =zoomvoutfile

Required for Vantage processing – DO NOT EDIT

Consumed in Vantage Workflow

Same as corresponding entries in PostVantage

METADATA

proxy=ZPIG_Proxy

Metadata field to indicate if the asset has proxy. [Proxy will be set to true for HiRes videos]  

hiResPath=ZPIG_Native File Path

Metadata field to indicate the location of HiRes file  
hiresArchiveJobId=ZPIG_SGL Hi-Res Archive Job Id Field to store Job UID returned by SGL for Hi-Res Archive  
hiresArchiveStatus=ZPIG_Hi-Res Archive Status Field to store archive status transitions of Hi-Res file  
SGLTargetDir = EDIT_Brand Field to use as target directory while archiving to SGL.
The field should be a mandatory metadata field with a drop down
list mapping to SGL’s volumes
 
legacyFilePath = IPTC_Country  Used to store the file’s disk path  
LEGACYINFO doHiresMoveOnIngest = 0 Set to 0[false] if hires files should not be moved
to post ingest location on successful ingest
If this flag is set to ‘0’, postIngestPath need not
be specified
 
postIngestPath = /data/POST/U-SAN/post-ingested Location of hires files post ingest  
ARCHIVE STATUS onArchiveFailure = Archive Failed Metadata statuses for archiving         
onRestoreFailure = Restore Failed  
onSGLArchive = CopiedToArchive  
onSGLRestore = CopiedToArchive  
onPSANDelete = Archived  
onArchiveSubmit = Archiving to S3  
onRestoreSubmit = Restoring from S3  
SGL baseURL = http://192.168.0.209:11000/flashnet/api/v1 SGL API host:port Same as Post Vantage     
caller = zoom  The application integrating with SGL
verifyFiles = true If set to true, SGL will check the integrity of the archived files. 0 for false and 1 for true
deleteFiles = true If set to true, SGL will delete the source file on successful archive
stagingOutPathMount = C:\ArchiveStaging Location from where SGL will pick up the files
AwsS3 root_bucket_URL = s3://nbcuni  Archive location Same as Post Vantage   
aws_cmd = /usr/local/bin/aws –endpoint-url=https://s3-us-west-1.amazonaws.com s3  S3 command 
aws_config_file = /home/evolphin/.aws/config  command line config 
ARCHIVE archiveModule = AwsS3 Archive module to use (SGL or S3)   Same as POST Vantage
ENCODER ENCODER = /home/evolphin/zoom/lib/imagemagick/convert Path to image encoder  
ENCODER-ARGS = -quiet -verbose -identify -density 72 Encoder args
#-quiet -auto-orient -background white -thumbnail 300^ -flatten
 
       

For every hi-res asset getting “ingested” into Zoom, a job is submitted to the Vantage system from within the post-check-in hook script. This request will be processed by Vantage and a thumbnail, a low-res proxy and a pro-res version of the hi-res asset will get generated and placed in appropriate configured locations. Subsequently this post-Vantage hook will check-in the low-res proxy generated herein into the Zoom repository as the second revision on top of the placeholder ingested during the check-in process.

For more information on configuring the Vantage integration please see this help article.

Group Name Property Name=Sample Value Description Cross-references
[PREVIEWSERVER] reviewServerURL    =http://192.168.0.107:8873 Zoom preview server host and port None
[ENVIRONMENT]  zmPath=C:\Program Files (x86)\Evolphin\DAM\bin\zm Path to the Zoom executable in Vantage machine None 
zoom-install-dir = C:\Program Files (x86)\Evolphin\DAM Path where Zoom is installed None 
[MOUNTPREFIX] TPMPrefix = /data/psan/tpm Path where the hi-res assets will be housed in order to be accessible by all Zoom clients. 

Same as PreHook#TPMPrefix

Same as PostHook#TPMPrefix

archivePrefix=C:\PSAN\ArchiveStaging Prefix to Archive Staging Area  
[VANTAGE] vantageServerURL    =http://192.168.0.89:8676 Server Address where Vantage is installed None 
inPathPrefix=/data/usan/ Prefix to HiRes Location as seen in Ingest Server Same as PostHook#inPathPrefix
outPathMount=T:\ Prefix to Vantage Location as seen in the Vantage machine

Same as PostHook#outPathMount

Same as PostHook#proxyOutDir

[VANTAGECONFIG] proResExt=mov File extension of the ProRes to be generated

Same as the ProRes format in Vantage Workflow

Zoom.properties #EXTENSIONS_PROXY_MAP

lowproxyExt=mp4 File extension of the low-res proxy

Same as low-res proxy format in Vantage Workflow

Zoom.properties #EXTENSIONS_PROXY_MAP

thumbExt=.jpg File suffix and extension of the thumbnail for the low-res proxy

Consumed in Vantage Workflow

[VANTAGEVARIABLES]

thumbOutFileVar       =zoomHiResThumbOutFile

proResOutFileVar          =zoomHiResProResOutFile

h264OutFileVar            =zoomHiResH264OutFile

mediaExtVar                  =zoomMediaExtension

hiResOutputFolderVar  =zoomHiResOutputFolder

postVantageInFileVar                =zoomvoutfile

Required for Vantage processing – DO NOT EDIT

Consumed in Vantage Workflow

Same as corresponding entries in   PostHook

METADATA

mdGroupCodes=<<EOL
VDEO
PRVP
NVPR
EOL

Metadata group codes to be updated for proxy files  
midresArchiveJobId=ZPIG_SGL Mid-Res Archive Job Id Field to store Job UID returned by SGL for Mid-Res Archive  
midresArchiveStatus=ZPIG_Mid-Res Archive Status Field to store archive status transitions of Mid-Res file  
SGLTargetDir = EDIT_Brand Field to use as target directory while archiving to SGL.
The field should be a mandatory metadata field with a drop down
list mapping to SGL’s volumes
 Same as Post Hook
ENCODING windowsFormat=cp1252    
SGL baseURL = http://192.168.0.209:11000/flashnet/api/v1   Same as Post Hook
caller = zoom  
verifyFiles = true  
deleteFiles = true  
stagingOutPathMount =\\vantage\PSAN\ArchiveStaging  
ARCHIVE archiveModule = SGL   Same as Post Hook
ARCHIVE STATUS onArchiveSubmit = Archiving to SGL   Same as Post Hook
       

 

Even if the Vantage processing should fail for some reason, the placeholder on the Zoom repository is good enough to let end-users do regular operations like linking etc. with the corresponding hi-res assets.
 
Please ensure the following Perl modules required by the automation scripts are setup on the appropriate server machines:
 

Config::IniFiles

Cwd

Data::Dumper

Data::UUID

DateTime::Format::Strptime

Encode

Encode::Locale

Fcntl

File::Basename

File::Copy

File::Find

File::Path

File::Temp

FindBin

Getopt::Long

IO::Pty::Easy

JSON

JSON::Parse

LockFile::Simple

List::Util

List::MoreUtils

Log::Dispatch::File

Log::Dispatch::FileRotate

Log::Log4perl

Log::Log4perl::Config::PropertyConfigurator

LWP::Simple

LWP::UserAgent

Net::FTP

Net::SMTP

Net::SMTP::SSL

Net:SSLeay

Time::Format

Time::HiRes

Time::Piece

URI::Encode;

URI::Escape

XML::LibXML

XML::Simple

YAML

 
These can be installed using the command line below:
 
cpan -fi Config::IniFiles Cwd Data::Dumper Data::UUID DateTime::Format::Strptime Encode Encode::Locale Fcntl File::Basename File::Copy File::Find File::Path File::Temp FindBin Getopt::Long IO::Pty::Easy JSON JSON::Parse LockFile::Simple List::Util List::MoreUtils Log::Dispatch::File Log::Dispatch::FileRotate Log::Log4perl Log::Log4perl::Config::PropertyConfigurator LWP::Simple LWP::UserAgent Net::FTP Net::SMTP Net::SMTP::SSL Net:SSLeay Time::Format Time::HiRes Time::Piece URI::Encode URI::Escape XML::LibXML XML::Simple YAML