Overview
Before a video is playing, the content is often represented visually by using an image. This image is referred to as a thumbnail.
Since having high quality thumbnails is important, the Opencast comes with built-in support for thumbnails. Thumbnails can not only show up in the engage player, but other places too! (The video editor, the engage ui or the ltitools for example).
Default Thumbnail
The default workflows come with workflow operations that automatically provide your videos with thumbnails. The operation may look something like this:
- id: image
if: ${straightToPublishing}
fail-on-error: true
exception-handler-workflow: partial-error
description: Creating Engage player preview image
configurations:
- source-flavor: '*/source'
- target-flavor: '*/player+preview'
- target-tags: engage-download
- encoding-profile: player-preview.http
- time: 1
Per convention, the flavor for a thumbnail is of the form
{flavor.type}/player+preview
so for example presenter/player+preview. The flavor type must always match to one of the tracks, e.g. presenter.
The flavor subtype can theoretically be changed. However, this requires touching quite a few configuration files and
is thus usually not worth it.
The engage ui and ltitools use a different flavor
{flavor.type}/search+preview
If you need thumbnails in additional resolutions (e.g. for a custom UI or export), add another
image workflow operation with its own target-flavor and a dedicated encoding profile. The
resolution is fixed by that profile's ffmpeg.command (see the scale filter), not by any runtime
configuration. For example, the default player-preview.http profile produces 1280x720 images for
*/player+preview, while search-cover.http produces 160x90 images for */search+preview
(see etc/encoding/opencast.properties). There is currently no mechanism to resize an existing
thumbnail on demand — every resolution you need must be generated by its own workflow operation and
stored under its own flavor.
If a media package contains preview thumbnails for more than one flavor type (e.g. both
presenter/search+preview and presentation/search+preview), which one gets shown is decided
independently by each UI component and is not currently consistent across Opencast:
- The Engage UI search results view and Paella Player 8 prefer
presentation/search+previewoverpresenter/search+previewwhen both exist. - The LTI series list and the Tobira integration do not distinguish between flavor types at all and will pick whichever matching attachment happens to come first in the media package.
If your workflow generates thumbnails for multiple flavor types, be aware that different tools
embedding Opencast content may display different thumbnails for the same event. When in doubt,
only publish one */search+preview and one */player+preview attachment per event to guarantee
consistent thumbnails everywhere.
Editor
The editor allows for generating or uploading new thumbnails. To enable thumbnail editing, set
[thumbnail]
show = true
in etc/ui-config/mh_default_org/editor/editor-settings.toml.
It is currently a known issue that thumbnails generated by workflows do not show in the editor.
Changing the thumbnail of a track will cause the editor to add a workflow variable to the next workflow.
The workflow variable is of the shape {flavor.type}/thumbnail_edited and is used to the tell workflow
to use the thumbnail from the editor instead of the default generated one.
You can find further settings in this config file etc/org.opencastproject.editor.EditorServiceImpl.cfg. Normally
you will not need to touch these.