The Digital Asset Management addon of the Nuxeo Platform provides multimedia files management (pictures, audio and video).
Installation
This addon requires no specific installation steps. It can be installed like any other package from the Marketplace or from the Admin tab.
However some features depend on external software for conversion and transcoding. See the page Installing and Setting Up Related Software.
Functional Overview
Technical Overview
Picture
Schema
picture
: Used to store picture views.image_metadata
: Used to store EXIF metadata.
Some IPTC metadata are stored within dublincore. More information Binary Metadata
Facets
Picture
: The facet to put on Document Types that should be considered as Picture . This facet comes with the following schemas:file
(to store the picture file),picture
,image_metadata
andiptc
.MultiviewPicture
: The marker facet to be put on document types already havingPicture
facet to instantiateMultiviewPictureAdapter
.
Document Type
Picture
: This is the default type in Nuxeo that handles picture files. It comes with thePicture
andMultiviewPicture
facets.
Listeners
pictureChangedListener
: Synchronous listener checking if the main Picture file has changed. If so, pre-fills all the picture views with a placeholder and trigger an eventupdatePictureview
to notify asynchronous listeners.pictureViewListener
: Asynchronous listener computing the picture views.
File Manager Plug-in
The plug-in Imageplugin
is contributed to the File Manager to create Picture
documents when the imported file mime type matches one of the contributed image/*
mime types.
Picture conversions
Picture conversions are used to generate the picture views of document having the Picture
facet. Default picture conversions (Thumbnail, Small, Medium and OriginalJpeg) are contributed to the pictureConversions
extension point. They are marked as default
and so are always generated, their associated filters are not evaluated. If the default conversions are not necessary, they can be disabled using Nuxeo Studio.
Video
The Nuxeo Platform provides an addon with the following video features:
- Extract video information
- In-browser HTML5 video player (fallback on Flash player if needed)
- Storyboard extraction and time based navigation
Schema
video
: Used to store the video info, the transcoded videos and the storyboard.
Facets
Video
: Facet to put on Document Types that should be considered as Video. This facet comes with the following schemas:file
(to store the video file),video
andpicture
(to store the preview screenshot).HasStoryboard
: Marker facet to be set on types for which you want to generate Storyboard, types on which you already added theVideo
facet.HasVideoPreview
: Marker facet to be set on types for which you want to generate a video preview (screenshot), and on which you already added theVideo
facet.
Document Type
Video
: This is the default type in the Nuxeo Platform that handles video files. It comes with theVideo
,HasStoryboard
andHasVideoPreview
facets.
Listeners
videoChangedListener
: Synchronous listener checking if the main Video file has changed, if so extract the video information (stored invid:info
) and trigger and eventvideoChanged
to notify asynchronous listeners.videoStoryboardListener
: Asynchronous listener generating the preview screenshots (stored as picture views in thepicture
schema) and the storyboard of the video (stored invid:storyboard
).videoAutomaticConversions
: Asynchronous listener computing the transcoded videos from the video conversions marked as automatic. Transcoded videos are stored invid:transcodedVideos
.
File Manager Plug-in
The plug-in VideoImporter
is contributed to the File Manager to create Video
documents when the imported file mime type matches video/*
.
Conversion Operations
More complex conversions can be performed using the video conversion operations:
- Add Watermark to Video
- Concatenate Video
- Slice Video
- Extract Video Closed Captions
Be sure you have both ffmpeg
and ccextractor
installed, both of which are required by certain operations.
Locate the operation you wish to use on the Automation Documentation page and copy its JSON definition to the Automation Operations Registry in Nuxeo Studio (Settings > Registries > Automation Operations) . The operation will then be exposed in Studio and can be implemented in an Automation Chain.
Add a Photo Watermark to a Video
To add a company logo to your videos, create a simple Automation Chain in Nuxeo Studio.
- From the Automation menu, select User Actions and create a new User Action.
- Add a button in the Contextual Tools category to trigger the Automation Chain.
- Under the Action Activation menu, select the permissions required to activate the User Action and add the Video document type to the activation conditions.
- Enter the name of your Automation Chain, and click Create.
Then create your Automation Chain as follows:
- Context.FetchDocument
- Context.SetInputAsVar:
name: theVideoToConvert
- Repository.GetDocument:
value: /default-domain/workspaces/watermarks/NuxeoLogo
- Context.SetInputAsVar:
name: watermark
- Context.RestoreDocumentInput:
name: theVideoToConvert
- Video.AddWatermark:
watermark: Context["watermark"]
x: '0'
y: '0'
- WebUI.DownloadFile
When navigating on an existing Video document in Nuxeo, clicking the User Action button you created triggers the operation, taking the video as input and the watermark image as a parameter. By default the watermark will appear in the top left corner. This can be modified by attributing different values to the optional x
and y
parameters. The watermarked video is then automatically downloaded.
Concatenate Videos
To merge two or more videos together sequentially, a User Action can be added to the Document List Toolbar so that Video documents in the same folder can easily be selected and concatenated:
- Seam.GetSelectedDocuments
- Video.Concat
- WebUI.DownloadFile
The resulting video is then automatically downloaded. The videos you wish to concatenate should all be of the same format.
Slice Videos
You can edit the length of the videos using the Video Slice operations. The following automation chain will download a zip file with 5-second snippets of the original video:
- Context.FetchDocument
- Video.SliceInParts:
duration: 00:00:05
- Blob.CreateZip:
filename: SlicedVideos
- WebUI.DownloadFile
Or you can specify the start time and duration of the clip and download it directly:
- Context.FetchDocument
- Video.Slice:
duration: 00:00:10
encode: 'true'
startAt: 00:00:23
- WebUI.DownloadFile
Extract Video Subtitles
Creating a separate transcript of a Video document is easily done if the video has subtitles. By adding a User Action that triggers the following automation chain on all Video documents, you can instantly download a simple text file of the video's subtitles.
- Context.FetchDocument
- Video.ExtractClosedCaptions:
outFormat: ttxt
- WebUI.DownloadFile
Exposed Extension Points
The VideoService
exposed two extension points:
videoConversions
: Extension point to contribute video conversions that will be available on the VideoService.Default contributions<extension target="org.nuxeo.ecm.platform.video.service.VideoService" point="videoConversions"> <videoConversion name="MP4 480p" converter="convertToMP4" height="480"/> <videoConversion name="WebM 480p" converter="convertToWebM" height="480"/> <videoConversion name="Ogg 480p" converter="convertToOgg" height="480"/> </extension>
automaticVideoConversions
: Extension point to contribute which video conversion should be done automatically (through thevideoAutomaticConversions
listener).Default contributions<extension target="org.nuxeo.ecm.platform.video.service.VideoService" point="automaticVideoConversions"> <automaticVideoConversion name="MP4 480p" order="0" /> <automaticVideoConversion name="WebM 480p" order="10" /> </extension>
Audio
Schema
audio
: Used to store audio related information.
Facets
Audio
: Facet to put on document types that should be considered as Audio. This facet comes with the following schemas:file
(to store the audio file), andaudio
.
Document Type
Audio
: This is the default type in the Nuxeo Platform that handles audio files. It comes with theAudio
facet.
File Manager Plug-in
The plug-in AudioImporter
is contributed to the File Manager to create Audio
documents when the imported file mime type matches audio/*
.