In order for VidiEditor to work with a VidiCore Starter or Team Edition in VidiNet, a set of specific configurations will be automatically applied to your VidiCore instance. The following is a complete list of the actions performed.

Configuration of publish storages for VidiEditor Timeline publish must be done manually. Read more here: How to configure a storage for publishing of VPMS MediaEditor timeline render output

Metadata Fields

The automatic configuration will create the following metadata fields that are needed to operate VidiEditor's basic functionality.

Metadata Field Name

Data Type

index

Usage in VidiEditor

V3_Hidden

boolean

index

Set for item sequence/placeholder.
Before export, set to true. After export, set to false.

V3_CollectionType

Dataset/string

index

This marks collections as a VidiEditor project.

ME_ProjectData

string

index

In collection (project): It is used to store all project version collection id and current project version collection id.

In collection (project version): It is used to store what item in the project bin.

ME_Timeline

string

noindex

Timeline data describing the settings and composition made in the VidiEditor timeline.

ME_SequenceDocument

string

noindex

Used to store the timeline description for the timeline video streaming.

ME_LockUntil

date

noindex

Expiry date time for the project lock.

ME_LastEditor

string

noindex

The last user that opened the project which also lock the project.

ME_PublishStorage

boolean

noindex

See detail
Publish Storage Configuration [VE OG]

ME_StorageName

string

noindex

See detail
Publish Storage Configuration [VE OG]

Shape Tag

In order for content (items) to be usable in VidiEditor preview (Source and Timeline Player), the items must have a shape holding a video format supported for the VidiEditor's streaming server (See section VidiEditor Proxy Formats also).

The automatic configuration will create a shape tag named “ME_proxy_mp4_360_8ch”, and add it to the list of allowed shape tags in the “me-user” user group key-value metadata. This shape tag is the recommended format to use for the proxy copy of video assets. It can be adjusted or another shape tag can be defined as usable as long as the related video files fulfill the requirements for the proxy file format.

<TranscodePresetDocument xmlns="http://xml.vidispine.com/schema/vidispine">
    <format>mp4</format>
    <audio>
        <codec>aac</codec>
        <bitrate>192000</bitrate>
        <framerate>
            <numerator>1</numerator>
            <denominator>48000</denominator>
        </framerate>
        <channel>0</channel>
        <channel>1</channel>
        <channel>2</channel>
        <channel>3</channel>
        <channel>4</channel>
        <channel>5</channel>
        <channel>6</channel>
        <channel>7</channel>
        <stream>2</stream>
        <stream>2</stream>
        <stream>2</stream>
        <stream>2</stream>
    </audio>
    <video>
        <scaling>
            <width>640</width>
            <height>360</height>
            <targetDAR>
                <horizontal>16</horizontal>
                <vertical>9</vertical>
            </targetDAR>
        </scaling>
        <codec>h264</codec>
        <bitrate>2000000</bitrate>
        <preset>baseline</preset>
        <setting>
            <key>interlace_flag</key>
            <value>progressive</value>
        </setting>
    </video>
    <thumbnailPlugin>scenechange</thumbnailPlugin>
    <metadata/>
</TranscodePresetDocument>
CODE

Items in VidiCore must be transcoded into a shape valid for use with VidiEditor in order for content to appear in the VidiEditor content browser. The shape tag name must match a configured parameter for the searchable shape tags.

Furthermore a shape tag named “ME_AudioOnly for audio only files will be added upon default.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TranscodePresetDocument xmlns="http://xml.vidispine.com/schema/vidispine">
    <format>m4a</format>
    <audio>
        <codec>aac</codec>
        <bitrate>192000</bitrate>
        <framerate>
            <numerator>1</numerator>
            <denominator>48000</denominator>
        </framerate>
        <channel>0</channel>
        <channel>1</channel>
        <stream>2</stream>
    </audio>
    <video>
        <noVideo>true</noVideo>
    </video>
    <metadata/>
</TranscodePresetDocument>
CODE

User Groups, Roles and Metadata

The automatic configuration will create a User Group called “me_user” and the Vidispine “admin” user account will be added to this group.

The User Group will be configured with the following Key-value metadata use for basic configuration. The effect is described in following table:

Key-value metadata

Value (Default)

Usage in MediaEditor

ME_ProxyShapeTag

ME_proxy_mp4_360_8ch,__mp4

Proxy shape tag to filter for in VidiEditor search. Only items with a matching shape will appear in search results. Comma separated list is possible.

ME_ProjectDeletionLockExpiry

0

VidiCore deletion lock duration for VidiEditor Project (in hours). Set “INF” for infinity, which mean this project will not allowed to delete at all until date 9999-12-31T23:59:59Z
Leave it empty, if no deletion lock should be set.

ME_PublishShapes

ME_proxy_mp4_360_8ch

Supported publish shapes, separated by comma "," Defines the transcoding presets that can be chosen by the user in the publish dialog.

ME_PublishSourceShape

original

Supported publish source shape that defines the transcoding source preset.

ME_ProxyAudioShapeTag

original,ME_AudioOnly

This is used for searching and importing audios

ME_ProxyImageShapeTag

original

This is used for searching and importing images

ME_RenderEngine_OutputFormat

ME_proxy_mp4_360_8ch

Shape tag used by render engine player to stream video output format.

FrameFrate parameter will be ignored in here and overwritten by VidiEditor project setting.

ME_SupportedFrameRate

25,29.97,30,59.94

Supported frame rates for VidiEditor projects. The user can choose time base on Timeline creation form the configured list. Media must match this time base to be usable in the timeline. Supported values:

25, 30, 29.97, 59.94

ME_UsePresignedPath

true

Used to define how VidiEditor shall access files. Must be true when VidiEditor is operated in VidiNet.

ME_ConcurrentSession 

[{"Username":"admin","SessionToken":"zPvvmF0txqRInkFt4DPkJzY8m/sXtK9eca9wseDp","ExpiryDate":"15/7/2020 3:15:23 AM"}] 

List out the concurrent sessions  

ME_DirectOutShapes 

 

supported direct out shape for audio. 
Separated by comma "," 

ME_ExportFinalCutXml

Defines download presets for Final Cut Pro 7 XML’s to be usable in 3rd party applications.

Not set on default, please see https://vidispine.atlassian.net/wiki/spaces/IES/pages/1858306162?focusedCommentId=1858307171#comment-1858307171

Roles

The User Group will also be configured with the following Roles that are needed to perform different interactions in the VidiEditor:

Role

 Used for

Actual API call used in MediaEditor

_item_search

get item

GET item/{itemId}?content={content}&methodType=AUTO&noauth-url=true

_item_search

item search

 

item?first={start}&number={count}&content=shape,thumbnail,metadata&methodType=AUTO&noauth-url=true

_item_search
_thumbnail_read
_metadata_read

Search that include item and collection

PUT search?first={start}&number={count}&content=shape,thumbnail,metadata&methodType=AUTO&noauth-url=true

_collection_read
_metadata_read

search for collection

PUT collection?content=metadata&field=created,title

_collection_read

get item in collection

GET collection/{collectionId}/item?content=shape,thumbnail,metadata&methodType=AUTO&noauth-url=true

_collection_read

get collection by id

GET collection/{collectionId}?content=metadata

_collection_read

Search that include item and collection

PUT search?first={start}&number={count}&content=shape,thumbnail,metadata&methodType=AUTO&noauth-url=true

_collection_write

create collection

POST collection?name={name}

_collection_write

add item into collection

PUT collection/{collectionId}/{itemId}?type=item

_collection_write

remove item from collection

DELETE collection/{collectionId}/{itemId}?type=item

_collection_write

Add collection to collection

PUT collection/{collectionParentId}/{collectionChildId}?type=collection

_collection_write

remove collection from collection

DELETE collection/{collectionId}/{itemId}?type=collection

_metadata_write

update item metadata

PUT item/{itemId}/metadata

_metadata_write

update collection metadata

PUT collection/{collectionId}/metadata

_metadata_field_write

create metadata field

PUT metadata-field/{name}

_job_read

retrieve a job

GET job/{jobId}

_job_read

retrieve jobs with given types and states

GET job?metadata=true&type={types}&state={states}&sort=desc&field=itemId

_job_write

transcode item

POST item/{itemId}/transcode?tag={shapetag}

_job_write

voiceover or audio (missing waveform), to analyze the shape (new job)

POST item/{itemId}/shape/{shapeId}/analyze

_job_write

abort the given job but mainly used for aborting voice over job when the user decided to remove the voice over from the bin while it is still in transcoding

DELETE job/{jobId}?reason={reason}&cleanup={cleanup}

_item_shape_read

get waveform image uri

GET item/{ItemId}/waveform/imageURI

_deletion_lock_write

delete sequence item/placeholder

POST item/{itemId}/deletion-lock

_deletion_lock_write

delete ME collection

POST collection/{collectionId}/deletion-lock

_sequence_write

create item sequence

PUT item/{itemId}/sequence/vidispine

_sequence_read

get sequence for item

GET item/{itemId}/sequence/vidispine

_sequence_write

render sequence job

POST item/{itemId}/sequence/render?tag={shapeTag}&original={shapeTag}&sourceTag={sourceTag}&jobmetadata=destinationStorageId%3d{storgeId}

_sequence_write

exports a sequence of a given type

GET

item/{itemId}/sequence/export?type={type}&tag={shapeTag}&storage={storageId=/foo/&storage=storageId=/bar/}

_import

Create placeholder item => item sequence, voiceover

POST import/placeholder?container=1

_import

import to a placeholder item using request body => for voice over

POST import/placeholder/{itemId}/container/raw?filename=voiceover-{id}.wav&tag={_voiceOverShapeTag}

_shape_tag_read

get shape tag list

GET shape-tag

_shape_tag_read

get shape tag with given name

GET shape-tag/{name}

_shape_tag_write

update/create shape tag with given name

PUT shape-tag/{name}

_shape_tag_write

delete a shape-tag with given name

DELETE shape-tag/{name}

_storage_read

get storage

GET storage

_user_read

get user metadata

GET user/{_username}/metadata

_user_read

List all groups for a user

GET user/{username}/groups

_library_read
_item_uri
_item_id_read
_accesscontrol_read

Retrieve library content base on the id

GET library/{libraryId}?content=uri&methodType=proxystreaming&tag={shapeTag}

_library_write

Post and get new library id

POST library

_library_write

Delete id

DELETE library/{libraryId}

_file_write

Get temporary pre-signed path

POST /storage/file/{fileId}/uri?scheme=https&write=false&duration=600

_group_read

Get user group metadata

GET group/{userGroup}/metadata

_group_write

Update user group metadata

PUT group/{userGroup}/metadata

System Configuration properties

userTokenDefaultInterval

Default token expiry time should set to more than > 7200 seconds.