Transcoder discovery

Vidispine can automatically discover transcoders using either HTTP or DNS. This makes it possible to use Consul, Amazon Route 53 or any DNS or HTTP server to track the available transcoders, with custom health checks and rules to determine which transcoders should be used by Vidispine for example.

You could also configure Vidispine instances to read transcoders from another instance, as an easy way to manage a set of transcoders.

Adding a transcoder directory

To have Vidispine discover transcoders, add a transcoder resource to Vidispine with the type set to DIRECTORY.

POST /resource/
Content-Type: application/xml

<?xml version="1.0"?>
<ResourceDocument xmlns="http://xml.vidispine.com/schema/vidispine">
  <transcoder>
    <type>DIRECTORY</type>
    <url>http://service-user:oeHie2Ye@vs1.example.com:8080/API/resource/transcoder</url>
  </transcoder>
</ResourceDocument>

Once the transcoders have been retrieved, they will show up as nested transcoders under the transcoder resource.

GET /resource/VX-24
<?xml version="1.0"?>
<ResourceDocument xmlns="http://xml.vidispine.com/schema/vidispine">
  <id>VX-24</id>
  <transcoder>
    <type>DIRECTORY</type>
    <url>http://service-user:oeHie2Ye@vs1.example.com:8080/API/resource/transcoder</url>
    <state>ONLINE</state>
    <transcoder>
      <url>http://t1.transcoder.example.com:8888/</url>
      <version>4.4</version>
      <reverseAddressDetected>172.17.42.1</reverseAddressDetected>
      <state>ONLINE</state>
    </transcoder>
    <transcoder>
      <url>http://t2.transcoder.example.com:8888/</url>
      <state>OFFLINE</state>
    </transcoder>
  </transcoder>
</ResourceDocument>

Note

If the HTTP/DNS server is offline then the known set of transcoders will be kept and used until the server comes online again and the set of transcoders is updated.

Supported URIs

http:
Syntax:http://[{user}:{password}@]{host}/{path}
Response:application/xml - ResourceListDocument

The HTTP server should return a list with all available transcoders.

dns:
Syntax:dns:[//{dnsServer}/]{domainName}

Vidispine will perform a SRV lookup to retrieve the host and port of all available transcoders. SRV lookups will be done against:

  • {domainName}
  • _transcoder._http.{domainName}
  • _transcoder._https.{domainName}

RFC 2782 names

If the domain name already has the format of a RFC 2782 style SRV resource record (_service._protocol.name), then a single SRV lookup will be done.

If the service or protocol name is https then HTTPS will be used instead of HTTP to connect to the discovered transcoders. For example, these SRV records would enable secure communication using HTTPS between Vidispine and transcoders:

  • _transcoder._https.example.com
  • _https._tcp.transcoder.example.com

Changed in version 4.15: Support for RFC 2782 style lookups and HTTPS was added.