Motivation

VidiStream needs an URI for accessing the physical file for the preview (proxy) video. The most obvious criterion of selecting the right shape is the shape tag. However, there may be multiple shapes with the same (proxy) shape tag and each shape may have multiple URIs pointing to the same file.

To solve this problem a procedure for selecting the correct proxy video file is defined in this document. For all Enterprise MAM Solution products to behave identically, this procedure needs to be applied consistently in each of the products and components connected to an Enterprise MAM Solution.

Workflow

Supported URI Protocols

VidiStream supports these types of URIs:

  • file (file URIs w/o authority pointing to local mount points on Linux system)

  • unc (UNC paths, Windows only) DEPRECATED

  • azure

  • s3

  • https (currently only Azure – will be changed to plain HTTP with byte-range header)

  • http (currently only Azure – will be changed to plain HTTP with byte-range header)

This list shows the URI types in their order of preference. The items at the top of the list show better performance within VidiStream or are to be preferred from a security perspective. Thoughts behind this rule:

  • file/unc URIs provide direct access to the storage. No intermediate service is required for accessing the file that could cause performance problems or outages.

  • Direct access to a cloud storage (azure/s3) is preferred over https access to the same storage because direct access is authenticated whereas https access requires the storage to be made publicly available.

  • http is at the bottom of the list as it is unencrypted.

Selection Procedure

  1. Select all shapes with the first configured proxy shape tag.

  2. From these shapes, select all URIs for the storage method type PROXYSTREAMING (see Storage Configuration & Access [C ARC] ).

  3. Choose from the remaining URIs according to the protocol list above.

  4. If doesn’t result in a URI, repeat the same procedure with the next configured shape tag.

Step 1 and 2 can be done with a single VidiCore API call:

GET /API/item/ITEM-VX-236?content=uri&methodType=PROXYSTREAMING&tag=<configured proxy shape tag>
CODE

A storage ID should not be considered in the selection process as proxy videos may reside on multiple storages in a system or the default proxy storage may change over time.

Configured proxy shape tags must be a list to support migration of the proxy format from one format (shape tag) to another one. List of shape tags can be also retrieved, e.g. by following command.

GET /API/item/ITEM-VX-236?content=uri&methodType=PROXYSTREAMING&tag=__mp4, proxy_mp4_360_8ch,proxy_mp4_360_16ch
CODE

However as we need a prioritized list it should be taken care that always the shape-tags is chosen that has highest priority.

Proxy video URIs sent to VidiStream never should contain credentials for security reasons. If VidiCore returns credentials they must be stripped from the URI before sending them to VidiStream . VidiStream knows how to connect to storages were credentials are required.