External transcoders

Using the external transcoder support in Vidispine it is possible to use transcoders from other companies, or to perform transcodes in other ways. This is done using watch folders.

  • With transcoders that support watch folders directly, it’s simply a matter of configuring both Vidispine and the external transcoder to use the same watch folder.
  • Transcoders that do not support watch folders can still be integrated with by writing a service that monitors the watch folder and sends transcode request to the external transcoder accordingly.

Important

  • It is not possible to transcode using the Vidispine transcoder and an external transcoder at the same time.
  • It is only possible to transcode using one external transcoder shape tag at the time.

Any method supported by Vidispine can be specified as the source or destination, meaning that the watch folders do not need to be local.

How it works

When starting an import or transcode job, Vidispine will check if the given shape tag is defined to be handled by an external transcoder. If it is, then the source file (e.g. the original essence of the item) will be copied to the transcoder’s watch folder (e.g. <source> the external-transcoder ResourceDocument); then the job waits for one or more files to appear in the destination folder (e.g. <destination> in ResourceDocument), and perform the rest steps. Note: only the transcode step is handled by the external transcoder.

Settings

Filename pattern

It is mandatory to define a filename pattern (a.k.a <regex>) in the external transcoder resource to control what files the job should look for. In order to support multiple transcodes at the same time, the regex will be prefixed using the file name of the essence automatically. That is:

If the original essence file name is VX-100, and the regex is .*output.*, then Vidispine will look for files matching \QVX-100\E.*output.*.

Timeout
The output file must appear in the destination folder within this timeout, or the transcode step will be marked as failed. The default timeout is 30 seconds.
Interval
How frequently the destination folder should be checked for new or updated files. The default interval is 5 seconds.
Checks
How many times an output file must remain unchanged for the file to be considered completely written. By default files must remain unchanged for 3 checks.

Adding an external transcoder

Add an external transcoder by creating an externalTranscoder resource using POST /resource.

POST /resource/externalTranscoder/
Content-Type: application/xml

<ResourceDocument xmlns="http://xml.vidispine.com/schema/vidispine">
    <externalTranscoder>
        <source>file:///mnt/external-transcoder/source/</source>
        <destination>file:///mnt/external-transcoder/destination/</destination>
        <shapeTag>external-format</shapeTag>
        <timeout>60000</timeout>
        <regex>.*demo.*</regex>  <!-- Since Vidispine 4.0 -->
   </externalTranscoder>
</ResourceDocument>

Using an external transcoder

Before starting a transcode, make sure the shape tag in the example, has been defined in an external transcoder resource.

POST /shape-tag/external-format
Content-Type: application/xml

<TranscodePresetDocument xmlns="http://xml.vidispine.com/schema/vidispine">
  <format>mp4</format>
  <audio></audio>
  <video></video>
</TranscodePresetDocument>

The external transcoder is supported in AUTO_IMPORT and at the following requests