Default Configuration [VE 22.1 OG]
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. |
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 |
ME_StorageName | string | noindex |
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>
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>
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 |
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. |
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 | Search that include item and collection | PUT search?first={start}&number={count}&content=shape,thumbnail,metadata&methodType=AUTO&noauth-url=true |
_collection_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 | 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.