Addons

Nuxeo Media Manipulation

Updated: May 2, 2024

The Nuxeo Media Manipulation connector allows users to transform media on the fly.

Transformations can be applied on the media content that is present as the main file, xpath - file:content of the document

Installation

The connector is available as a single add-on package in nuxeo marketplace.

Customers can install this just like any other add-on onto the nuxeo server instance.

Prerequisites

Nuxeo Platform – LTS-2023

Nuxeo Web UI – dependent package which will be installed if not present.

Picture View generations for OriginalJpeg and FullHD are enabled.

Current Scope

Supported Media Facets: Picture

Supported Functionalities: Cropping and Resizing, Addition of custom aspect ratio options, Output format selection, Download, Share – Public link, Save Manipulation as rendition, Save Manipulation as Derivative document.

Functional Overview

After installation of the package, on a given picture faceted document, for the users that have write permission, a document action - Edit Media - is enabled.

Icon
Icon

Upon clicking this icon, users will be presented with the dialog where they can perform all the transform activities on top of the images.

Dialog1
Dialog1

Keeping UI performance under consideration please note that the image that is loaded in the crop area is OriginalJPEG view of the actual image.

In case of large files, it is loaded with FullHD view.

All the transformations done on the FullHD view will be scaled accordingly and applied as would be for originalJPEG, resulting in the expected result.

The threshold at which this should happen is configurable and this would happen when the size of the originalJPEG rendition in MB > nuxeo.media.image.maxsize.

Cropping, Resizing and Aspect Ratios

The crop panel displays the picture and the crop box. Crop box can be operated freely when the Aspect ratio is selected as free, which is default.

Cropping
Cropping

The add-on offers some out of the box aspect ratios.

As these options sourced to the vocabulary: aspectRatio, admin can configure them as desired.

vocabulary: aspectRatio
vocabulary: aspectRatio

Sharing

Public URLs can be generated for the desired/existing transformation(s). These URLs won't need any authentication and can be simply used to get the transformed image.

To generate URL for desired/current transformation, the option of Custom must be selected in the drop down – Select a Value and clicking on create public url button.

The generated URL can be timeboxed by selecting from and to dates.

Share
Share

Download as

Allows to download the image applying the desired transformations in the selected output format. The following formats are supported for now: JPEG, PNG and WEBP

Download as
Download as

For both the download and public link use cases, please make sure to add the
nuxeo.url config key with appropriate nuxeo host value:

Eg: nuxeo.url=https://<your domain name here>/nuxeo

Saving

The desired transformation can be saved as a custom rendition in the current document or as a new derivative document.

Save
Save

Upon using Save as rendition, the desired transformation will be saved as a new picture view of the current document. This can be seen in the additional formats section of the document details page in Web UI. User can download the same from here.

Save as rendition
Save as rendition

Custom rendition is seen in additional formats section.

Upon save as derivative, a new document will be created, copying from the current document but containing the main file as the desired transformed image. The derivative document name can be specified in the derivative name field in the media manipulation dialog.

new rendition
new rendition

A new document can been seen with name: Derivative – City

Known Limitations

Large Images could cause significant user wait time when trying to invoke dynamic transformation.

Possible timeouts during the transformation of large sized images.

The transaction timeout needs to be increased explicitly in such cases using the config key: nuxeo.media.transform.transaction.timeout.seconds

Future Scope

Support of additional media and functionalities.

Asynchronous handling of invoked transformation requests with a dashboard to check the status.

Delivery through CDN.