Overview

Video content is often represented visually by using thumbnail images and metadata. Think of, for example, of list of videos displayed as a thumbnail image together with the title and description for each video.

On this page, this is the image that we refer to as thumbnail.

Since having high quality thumbnails is important, the Opencast video editor comes with built-in support for thumbnails. We distinguish between three kinds of thumbnails:

  1. The Thumbnail Preview is a preview of the thumbnail shown in the video editor only
  2. The Default Thumbnail is automatically generated
  3. A Snapshot Thumbnail can be extracted from the video by the user
  4. An Uploaded Thumbnail is uploaded by the user

As both the video editor and your workflows need to work together to enable full support of this feature, the Admin UI comes with a number of configuration options that allows this feature to be integrated into your workflow configuration.

This page describes the configuration options of the Admin UI relevant for the thumbnail support of the video editor. These options can be adjusted in the configuration file etc/org.opencastproject.adminui.cfg.

Thumbnail Preview

The video editor displays a preview of the actual thumbnail at any time. This preview image is expected to be published in the publication channel internal as attachment with the flavor as specified in the Admin UI configuration:

# Default: thumbnail/preview
#thumbnail.preview.flavor=thumbnail/preview

The initial thumbnail preview image is generated by the workflow that creates and publishes the distribution artefacts required by the video editor (e.g. etc/workflows/partial-preview.xml).

If the user uploads a thumbnail in the video editor, the thumbnail preview is created by converting the uploaded thumbnail using the following encoding profile:

# Default: editor.thumbnail.preview.downscale
#thumbnail.preview.profile.downscale=editor.thumbnail.preview.downscale

If the user selects the default thumbnail or a snapshot thumbnail in the video editor, the update of the thumbnail preview is done differently depending on whether automatic distribution is enabled or not.

In case that automatic distribution is disabled, the thumbnail preview is extracted from the source track using the following encoding profile:

# Default: editor.thumbnail.preview
#thumbnail.preview.profile=editor.thumbnail.preview

In case that automatic distribution is enabled, a master thumbnail image is extracted. The thumbnail preview image is then created by downscaling this master thumbnail image using the following encoding profile:

# Default: editor.thumbnail.preview.downscale
#thumbnail.preview.profile.downscale=editor.thumbnail.preview.downscale

Note that the thumbnail preview image is supposed to be used by the Admin UI only.

Default Thumbnail

This thumbnail is supposed to be automatically generated without user interaction.

When the user chooses the default thumbnail in the video editor, Opencast will automatically generate and publish an updated thumbnail preview image.

The default thumbnail image is extracted from a track identified by the following configuration:

# Default: presenter
#thumbnail.source.flavor.type.primary=presenter

# Default: presentation
#thumbnail.source.flavor.type.secondary=presentation

# Default: source
#thumbnail.source.flavor.subtype=source

In this example, the default thumbnail would be extracted from the track with the flavor presenter/source or, if no such track is available, a track with the flavor presentation/source.

The relative position within the edited video where the default thumbnail is extracted can be configured:

# Default: 1.0
#thumbnail.default.position=1.0

Opencast will set the following processing settings for the event being edited:

- `thumbnailType` is set to `0` to indicate that the default thumbnail is used
- `thumbnailPosition` is set to the absolute position of the video where the default thumbnail should be extracted

Snapshot Thumbnail

In case the user is not happy with the automatically generated default thumbnail, the user can extract a thumbnail at an arbitrary position within the video.

The snapshot thumbnail will be extracted from tracks identified by the following configuration properties:

# Default: presenter/source
#sourcetrack.left.flavor=presenter/source

# Default: presentation/source
#sourcetrack.right.flavor=presentation/source

Note that the user can choose between "Extract from video", "Extract from left video" and "Extract from right video". In any case, the video editor ensures that the correct source track flavor is used.

Opencast will set the following processing settings for the event being edited:

- `thumbnailType` is set to `1` to indicate that a snapshot thumbnail is used
- `thumbnailPosition` is set to the absolute position of the video where the snapshot thumbnail should be extracted
- `thumbnailTrack` is set to the type of the flavor of the source track which is `presenter` or `presentation`

Uploaded Thumbnail

The most flexible option is to upload an image to be used as thumbnail.

When the user uploads an image in the video editor, Opencast will automatically generate and publish the thumbnail preview and creates a new media package snapshot after adding the uploaded image as attachment to the media package.

This attachment will have the following flavor:

# Default: thumbnail/source
#thumbnail.uploaded.flavor=thumbnail/source

Additionally, the following tags are added to the attachment:

# Default: archive
#thumbnail.uploaded.tags=archive

IMPORTANT: Please ensure that all workflows in your setup will always include this attachment when taking snapshots using the workflow operation snapshot by setting its configuration key source-tags and/or source-flavor appropriately.

Opencast will set the following processing settings for the event being edited:

- `thumbnailType` is set to `2` to indicate that an uploaded thumbnail is used

Automatic Distribution

To avoid the situation that a user needs to start a workflow just to update the thumbnail on the publication channels, Opencast supports automatic distribution of thumbnail images for publication channels that support incremental publication.

This is currently supported by the following kinds of publication channels:

  • Configurable publication channels (used by the External API)
  • OAI-PMH publication channels

Note that this mechanism is currently limited to at most one publication channel per kind.

The automatic distribution of thumbnail images can be enabled in the configuration:

# Default: false
#thumbnail.distribution.auto=false

If automatic distribution is enabled, Opencast will automatically create and publish the thumbnail. Note that the generation of multiple thumbnails is based on a master image that will be extracted using the following encoding profile:

# Default: editor.thumbnail.master
#thumbnail.master.profile=editor.thumbnail.master

This master image will be converted into all the different formats required.

For the automatic distribution to the OAI-PMH publication channel, the following settings are available:

# The ID of the OAI-PMH publication channel
# Default: oaipmh-default
#thumbnail.distribution.oaipmh.channel=oaipmh-default

# The flavor of the attachment
# Default: */search+preview
#thumbnail.distribution.oaipmh.flavor=*/search+preview

# Comma-separated list of tags
# Default:engage-download
#thumbnail.distribution.oaipmh.tags=engage-download

# Comma-separated list of encoding profiles
# Default: search-cover.http.downscale
#thumbnail.distribution.oaipmh.profiles=search-cover.http.downscale

To enable automatic distribution to the OAI-PMH channel, thumbnail.distribution.auto must be set to true and thumbnail.distribution.oaipmh.channel must be set to a non-empty string.

For the automatic distribution to the configurable publication channel, the following settings are available:

# The ID of the configurable publication channel
# Default: api
#thumbnail.distribution.configurable.channel=api

# The flavor of the attachment
# Default: */search+preview
#thumbnail.distribution.configurable.flavor=*/search+preview

# Comma-separated list of tags
# Default:engage-download
#thumbnail.distribution.configurable.tags=engage-download

# Comma-separated list of encoding profiles
# Default: search-cover.http.downscale
#thumbnail.distribution.configurable.profiles=search-cover.http.downscale

To enable automatic distribution to the configurable publication channel, thumbnail.distribution.auto must be set to true and thumbnail.distribution.configurable.channel must be set to a non-empty string.