Cerify integration

The Cerify plugin allows Vidispine to integrate with Cerify from Tektronix. The plugin allows video files to be analyzed by Cerify during their import. RAW_IMPORT PLACEHOLDER_IMPORT ESSENCE_VERSION and AUTO_IMPORT are supported.

Installation

  1. Configure Cerify. The minimum configuration required is the creation of a MediaLocation with a path that is shared between Cerify and Vidispine storage, and the creation of a Profile. The profile may be empty.

  2. Configure the plugin by creating a Cerify resource containing the Cerify settings, by making a POST request to API/resource/cerify containing:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ResourceDocument xmlns="http://xml.vidispine.com/schema/vidispine">
      <cerify>
        <address>http://cerifyserver.example.com:80/CeriTalk?wsdl</address>
        <mediaLocation>
          <name>Name of Media Location</name>
          <storageMethod>VX-6</storageMethod>
        </mediaLocation>
        <cleanup>false</cleanup>
      </cerify>
    </ResourceDocument>
    

    The elements are:

    address

    The URL of the Cerify web service.

    mediaLocation

    One or many media locations. If many media locations are configured, the storage method where the file is stored will determine which one to use.

    name

    The name of the media location. A media location with this name must be configured in Cerify.

    storageMethod

    The storage method that contains the files that should be analyzed by Cerify. Must be on a file system accessible by Cerify through the path configured in the corresponding media location.

    cleanup

    If set to true, jobs and media sets will be removed from Cerify after completion.

  3. Update the task definition document by inserting a Cerify step at the appropriate position by making a POST request to API/task-definition containing something similar to:

    <TaskDefinitionListDocument xmlns="http://xml.vidispine.com/schema/vidispine">
      <task>
        <description>Executing Cerify job</description>
        <extradata>f</extradata>
        <flags>12</flags>
        <bean>CerifyJobBean</bean>
        <method>analyzeFile</method>
        <step>250</step>
        <dependency>
          <step>0</step>
          <previous>false</previous>
          <allPrevious>true</allPrevious>
        </dependency>
        <parallelDependency>
          <step>0</step>
          <previous>false</previous>
          <allPrevious>false</allPrevious>
        </parallelDependency>
        <jobType>RAW_IMPORT</jobType>
        <cleanup>false</cleanup>
        <critical>true</critical>
      </task>
    </TaskDefinitionListDocument>
    

    Note: for ESSENCE_VERSION, the Cerify job step should run after step 400; for AUTO_IMPORT, the Cerify step should run after step 200.

Usage

The Cerify profile to use when analyzing a file is specified using the jobmetadata query parameter.

Import a file and let Cerify analyze it using the Cerify profile named mpeg2 PAL :

curl -X POST -u admin:admin --data-binary @test_file.mpg 'http://127.0.0.1:8080/API/import/raw?throttle=false&jobmetadata=cerifyProfile%3Dmpeg2%20PAL'

For AUTO_IMPORT job, the job metadata can be set in the AutoImportRuleDocument. For example:

<AutoImportRuleDocument xmlns="http://xml.vidispine.com/schema/vidispine">
  <tag>mp4</tag>
  <jobmetadata>
    <field>
      <key>cerifyProfile</key>
      <value>Vidispine test profile</value>
    </field>
  </jobmetadata>
</AutoImportRuleDocument>

When the file is being analyzed by Cerify there will be progress information available in the job. The metadata key is cerifyProgress and the value will be an integer between 0 and 100.

Use the cerifyPriority job metadata field to set the Cerify job priority (LOW, MEDIUM, HIGH). For example:

curl -X POST -u admin:admin --data-binary @test_file.mpg 'http://127.0.0.1:8080/API/import/raw?throttle=false&jobmetadata=cerifyProfile%3Dmpeg2%20PAL&jobmetadata=cerifyPriority%3DHIGH'

Output

Upon completion the results from Cerify is added to the shape as bulky metadata. The following fields are available. Note that cerify_alerts might not always be present and its absence means that Cerify did not detect any problem with the file.

<URIListDocument xmlns="http://xml.vidispine.com/schema/vidispine">
  <uri>cerify_alert</uri>
  <uri>cerify_jobinfo</uri>
  <uri>cerify_streaminfo</uri>
</URIListDocument>

The element cerify_alerts contains all alerts produced by Cerify. Example:

<field start="466@3082500:128557" end="466@3082500:128557">
  <key>cerify_alert</key>
  <maps>
    <map>
      <entry key="alertFrame">http://10.185.0.7:80/ViewFrame.do?&amp;jobmediafile=115&amp;frame=467&amp;audio=false&amp;small=true</entry>
      <entry key="alertId">22015</entry>
      <entry key="details">In Main profile / Main level, the maximum permitted value of f_code[0][1] in a frame picture is 5. In the current picture it has been set to 7. Stream position: 0x7cf812 (dec. 8189970), bit 7 Bitstream context: [VSQ|PCX]</entry>
      <entry key="level">error</entry>
      <entry key="location">00:00:15;16 frame 467</entry>
      <entry key="title">Invalid f_code</entry>
      <entry key="trackId">-1</entry>
      <entry key="type">video</entry>
      <entry key="url">http://10.185.0.7:80/protected/AlertDetails.do?job=107&amp;jobmediafile=115&amp;frame=467&amp;alertid=1383&amp;trackId=-1</entry>
    </map>
  </maps>
</field>

cerify_streaminfo contains general information about the analyzed file, such as peak volume level, frame rate, etc.

See the following documents for for more complete examples of metadata documents produced by this plugin: