AEM 6.4 has reached the end of extended support and this documentation is no longer updated. For further details, see our technical support periods. Find the supported versions here.
Dynamic Media – Hybrid needs to be enabled and configured for use. Depending on your use case, Dynamic Media has several supported configurations.
If you intend to configure and run Dynamic Media in Scene7 run mode, see Configuring Dynamic Media - Scene7 mode.
If you intend to configure and run Dynamic Media in hybrid run mode, follow the instructions on this page.
Learn more about working with video in Dynamic Media.
If you use Adobe Experience Manager set up for different environments, such as one for development, one for staging, and one for live production, you need to configure Dynamic Media Cloud Services for each one of those environments.
If you are having issues with your Dynamic Media configuration, an important place to look are the log files specific to dynamic media. These are installed automatically when you enable dynamic media:
s7access.log
ImageServing.log
They are documented in Monitoring and maintaining your AEM instance.
Hybrid publishing and delivery is a core feature of the Dynamic Media addition to Adobe Experience Manager. Hybrid publishing lets you deliver Dynamic Media assets, such as images, sets and video, from the cloud instead of from the AEM publish nodes.
Other content, such as Dynamic Media viewers, Site pages, and static content will continue to be served from the AEM publish nodes.
If you are a customer of Dynamic Media, you are required to use hybrid delivery as the delivery mechanism for all Dynamic Media content.
The configuration tasks that follow reference the following terms:
Term | Dynamic Media Enabled | Description |
---|---|---|
AEM author node | White check mark in a green circle | The author node that you deploy to On-Premise or through Managed Services. |
AEM publish node | White “X” in a red square. | The publish node that you deploy to On-Premise or through Managed Services. |
Image Service publish node | White check mark in a green circle. | The publish node that you run on Data Centers that are managed by Adobe. Refers to the image service URL. |
You may choose to implement Dynamic Media only for imaging, only for video, or for both imaging and video. To determine the steps for configuring Dynamic Media for your specific scenario, please reference the following table.
Scenario | How it Works | Configuration Steps |
Deliver ONLY images in production | Images are delivered through servers in Adobe’s worldwide data centers and then cached by a CDN for scalable performance and global reach. |
|
Deliver ONLY images in pre-production (Dev, QE, Stage, and so on.) | Images are delivered through the AEM publish node. In this scenario, since traffic is minimal, there is no need to deliver images to Adobe’s data center. An additional benefit is that this allows for secure preview of content before production launch |
|
Deliver ONLY video in any environment (Production, Dev, QE, Stage, and so on) | Videos are delivered and cached by a CDN for scalable performance and global reach. The video poster image (thumbnail of video which shows before playback initiates) will be delivered by the AEM publish instance. |
|
Deliver BOTH images and video in production | Videos are delivered and cached by a CDN for scalable performance and global reach. Images and video poster images are delivered through servers in Adobe’s worldwide data centers and then cached by a CDN for scalable performance and global reach. Please refer to previous sections to setup image or video in pre-production. |
|
Dynamic media is disabled by default. To take advantage of Dynamic Media features, you need to enable dynamic media by using the dynamicmedia run mode as you would, for example, publish run mode. Before enabling, make sure to review the technical requirements.
Enabling dynamic media via the run mode replaces the functionality in AEM 6.1 and AEM 6.0 where you enabled dynamic media by setting the dynamicMediaEnabled flag to true. This flag has no functionality in AEM 6.2 and later. In addition, you do not need to restart the quickstart to enable dynamic media.
By enabling Dynamic Media, the dynamic media features will be available in the UI and every uploaded image asset receives a cqdam.pyramid.tiff
rendition that is used for fast delivery of dynamic image renditions. Those PTIFFs have significant advantages including (1) the ability to manage only a single master image and generate infinite renditions on-the-fly without any additional storage and (2) the ability to use interactive visualization such as zoom, pan, spin, and so on.
If you want to use Dynamic Media Classic in AEM, you should not enable Dynamic Media unless you are using a specific scenario. Dynamic Media is disabled unless you enable Dynamic Media by way of the runmode.
To enable dynamic media, you must enable the dynamic media runmode either from the command line or from the quickstart file name.
To enable dynamic media:
On the command line, when launching the quickstart, do the following:
java -Xmx4096m -Doak.queryLimitInMemory=500000 -Doak.queryLimitReads=500000 -jar cq-quickstart-6.4.0.jar -r dynamicmedia
If you are publishing to s7delivery, then you also need to include the following trustStore arguments:
-Djavax.net.ssl.trustStore=<absoluteFilePath>/customerTrustStoreFileName>
-Djavax.net.ssl.trustStorePassword=<passwordForTrustStoreFile>
Request http://localhost:4502/is/image
and make sure Image Server is now running.
To troubleshoot issues with Dynamic Media, see the following logs in the crx-quickstart/logs/ directory:
ImageServer-<PortId>-<yyyy><mm><dd>.log - The ImageServer log provides statistics and analytical information used for analyzing the behavior of the internal ImageServer process.
Example of an Image Server log file name: `ImageServer-57346-2019-07-25.log`
s7access-<yyyy><mm><dd>.log - The s7access log records each request made to Dynamic Media through /is/image
and /is/content
.
These logs are only used when Dynamic Media is enabled. They are not included in the Download Full package that is generated from the system/console/status-Bundlelist page; when calling Customer Support if you have a Dynamic Media issue, please append both these logs to the issue.
If you are deploying AEM to an application server and have Dynamic Media enabled, you need to configure the self domain in the externalizer. Otherwise, thumbnail generation for assets will not work properly for dynamic media assets.
In addition, if you run quickstart on a different port or context path, you also have to change the self domain.
When Dynamic Media is enabled, the static thumbnail renditions for image assets are generated using Dynamic Media. For thumbnail generation to work properly for dynamic media, AEM must perform a URL request to itself and must know both the port number and the context path.
In AEM:
In an AEM QuickStart WAR deployment, the port number and context path cannot be derived, therefore you must configure a self domain. See externalizer documentation on how to configure the self domain.
In an AEM Quickstart stand-alone deployment, a self domain generally does not need to be configured because the port number and context path can be auto-configured. However, if all network interfaces are turned off, you need to configure the self domain.
Dynamic media is not enabled by default. However, if you have previously enabled dynamic media, you may want to turn it off at a later time.
To disable dynamic media after you have enabled it, you remove the -r dynamicmedia run mode flag.
To disable Dynamic Media after it has been enabled:
On the command line, when launching the quickstart, you can do either of the following:
-r dynamicmedia
to the command line when starting the JAR file.java -Xmx4096m -Doak.queryLimitInMemory=500000 -Doak.queryLimitReads=500000 -jar cq-quickstart-6.4.0.jar
Request http://localhost:4502/is/image
. You receive a message that Dynamic Media is disabled.
After the Dynamic Media run mode is disabled, the workflow step that generates the qdam.pyramid.tiff
rendition is skipped automatically. This also disables dynamic rendition support and other Dynamic Media features.
Also note that when Dynamic Media run mode is disabled after configuring the AEM server, all assets that were uploaded under that run mode are now invalid.
If you are upgrading AEM Dynamic Media from 6.3 to 6.4 – which now includes the ability for zero downtime (also known as “Opt-in”) deployments – you are required to run the following curl command to migrate all your presets and configurations from /etc
to /conf
in CRXDE Lite.
Note: If you run your AEM instance in compatibility mode–that is, you have the compatibility packaged installed–you do not need to run these commands.
To migrate your custom presets and configurations from /etc
to /conf
, run the following Linux curl command:
curl -u admin:admin http://localhost:4502/libs/settings/dam/dm/presets.migratedmcontent.json
For all upgrades, either with or without the compatibility package, you can copy the out-of-the-box viewer presets by running the following command:
curl -u admin:admin http://localhost:4502/libs/settings/dam/dm/presets/viewer.pushviewerpresets
Dynamic Media image delivery works by publishing image assets, including video thumbnails, from AEM Author and replicating them to Adobe’s on-demand replication service (the Replication Service URL). Assets are then delivered by way of the on-demand image delivery service (the Image Service URL).
You must do the following:
The Replication Agent publishes Dynamic Media assets such as images, video metadata, and sets to the Adobe-hosted Image Service. The Replication Agent is not enabled by default.
After you have configured the replication agent, you need to validate and test that it has been successfully set up. This section describes these procedures.
The default memory limit for PTIFF creation is 3 GB across all workflows. For example, you can process one image that requires 3 GB of memory while other workflows are paused, or you can process 10 images in parallel that require 300 MB of memory each.
The memory limit is configurable and should fit the system resource availability and the type of image content being processed. If you have many very large assets and have enough memory on the system, you can increase this limit to ensure that the images are processed in parallel.
An image that requires more than the maximum memory limit will be rejected.
To change the memory limit for PTIFF creation, navigate to Tools > Operations > Web Console > Adobe CQ Scene7 PTiffManager and change the maxMemory
value.
You need to set up replication authentication on author in order to replicate images to the Dynamic Media image delivery service. You do this by obtaining a KeyStore and then saving it under the dynamic-media-replication user and configuring it. Your company administrator should have received a welcome email with the KeyStore file and necessary credentials during the provisioning process. If you did not receive this, please contact Customer Support.
To set up authentication:
Contact Customer Support for your KeyStore file and password if you do not already have this. This is part of provisioning and it will associate the keys to your account.
In AEM, tap the AEM logo to access the global navigation console, then tap Tools > Security > Users.
On the User Management page, navigate to the dynamic-media-replication user, then tap to open.
In the Edit User Settings For dynamic-media-replication page, tap the Keystore tab, then tap Create KeyStore.
Enter a password and confirm the password in the Set KeyStore Access Password dialog box.
Remember the password that you enter. You will need to enter it again when you configure the Replication Agent later.
On the Edit User Settings For dynamic-media-replication page, expand the Add Private Key from KeyStore file area and add the following (see the images that follow):
companyname-alias
. Adobe provides the private key alias in the Welcome email sent to you during provisioning. Contact Adobe Customer Support if you did not receive a private key alias.Tap Save & Close to save your changes to this user.
Next, you need to configure the replication agent.
In AEM, tap the AEM logo to access the global navigation console, then tap Tools > Deployment > Replication > Agents on author.
On the Agents on author page, tap Dynamic Media Hybrid Image Replication (s7delivery).
Tap Edit.
Tap the Settings tab, then enter the following:
replication
. (See step 7 in Setting Up Authentication.)The following image shows the replication agent with sample data:
Tap OK.
To validate the replication agent for dynamic media, do the following:
Tap Test Connection. Example output is as follows:
11.03.2016 10:57:55 - Transferring content for ReplicationAction{type=TEST, path[0]='/content/dam', time=1457722675402, userId='admin', revision='null'}
11.03.2016 10:57:55 - * Auth User: replication-receiver
11.03.2016 10:57:55 - * HTTP Version: 1.1
11.03.2016 10:57:55 - * Using OAuth 2.0 Authorization Grants
11.03.2016 10:57:55 - * OAuth 2.0 User: dynamic-media-replication
11.03.2016 10:57:55 - * OAuth 2.0 Token: '*****' initialized
11.03.2016 10:57:55 - Publishing: POST[https://replicate-na.assetsadobe.com:8580/is-publish/publish-receiver?Cmd=Test&RootId=xfpuu-6613]
11.03.2016 10:57:55 - Publish response: OK[]
11.03.2016 10:57:55 - Transfer succeeded in 141 ms for ReplicationAction{type=TEST, path[0]='/content/dam', time=1457722675402, userId='admin', revision='null'}
-------------------------------------------------------------------------------------------------------------------------------
Replication test succeeded
You can also check by doing one of the following:
When setting up authentication, here are some issues you may run into with their solutions. Before checking these, make sure you have set up replication.
This issue can be caused by a failure to set up the KeyStore for dynamic-media-replication
user.
Replication test to s7delivery:https://s7bern.macromedia.com:8580/is-publish/
17.06.2016 18:54:43 - Transferring content for ReplicationAction{type=TEST, path[0]='/content/dam', time=1466214883309, userId='admin', revision='null'}
17.06.2016 18:54:43 - * Auth User: replication-receiver
17.06.2016 18:54:43 - * HTTP Version: 1.1
17.06.2016 18:54:43 - * Using OAuth 2.0 Authorization Grants
17.06.2016 18:54:43 - * OAuth 2.0 User: dynamic-media-replication
17.06.2016 18:54:43 - No OAuth token available. OAuth not initialized
17.06.2016 18:54:43 - * Using Client Auth SSL alias - replication-alias *
17.06.2016 18:54:43 - Publishing: POST[https://<localhost>:8580/is-publish//publish-receiver?Cmd=Test&RootId=brough]
17.06.2016 18:54:43 - Transfer failed for ReplicationAction{type=TEST, path[0]='/content/dam', time=1466214883309, userId='admin', revision='null'}. java.io.IOException: Failed to execute request
'https://<localhost>:8580/is-publish//publish-receiver?Cmd=Test&RootId=brough':
Server returned status code 401 with message: Authorization required.
17.06.2016 18:54:43 - Error while replicating: com.day.cq.replication.ReplicationException: Transfer failed for ReplicationAction{type=TEST, path[0]='/content/dam', time=1466214883309,
userId='admin', revision='null'}. java.io.IOException: Failed to execute request
'https://<localhost>:8580/is-publish//publish-receiver?Cmd=Test&RootId=brough':
Server returned status code 401 with message: Authorization required.
Solution: Check that the KeyStore
is saved to dynamic-media-replication user and is provided with the correct password.
Replication test to s7delivery:https://<localhost>:8580/is-publish/
17.06.2016 19:00:16 - Transferring content for ReplicationAction{type=TEST, path[0]='/content/dam', time=1466215216662, userId='admin', revision='null'}
17.06.2016 19:00:16 - * Auth User: replication-receiver
17.06.2016 19:00:16 - * HTTP Version: 1.1
17.06.2016 19:00:16 - * Using OAuth 2.0 Authorization Grants
17.06.2016 19:00:16 - * OAuth 2.0 User: dynamic-media-replication
17.06.2016 19:00:16 - No OAuth token available. OAuth not initialized
17.06.2016 19:00:16 - * Using Client Auth SSL alias - replication-alias *
17.06.2016 19:00:16 - Transfer failed for ReplicationAction{type=TEST, path[0]='/content/dam', time=1466215216662, userId='admin', revision='null'}. java.lang.SecurityException: java.security.UnrecoverableKeyException: Could not decrypt key: Could not decrypt data.
Solution: Check the password. The password saved in the replication agent is not the same password that was used to create keystore.
This issue is caused by a configuration error in your AEM Author instance. The java process on the Author is not getting the correct javax.net.ssl.trustStore
. You see this error in the replication log:
14.04.2016 09:37:43 - Transfer failed for ReplicationAction{type=TEST, path[0]='/content/dam', time=1460651862089, userId='admin', revision='null'}. java.io.IOException: Failed to execute request 'https://<localhost>:8580/is-publish/publish-receiver?Cmd=Test&RootId=rbrough-osx2': java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
14.04.2016 09:37:43 - Error while replicating: com.day.cq.replication.ReplicationException: Transfer failed for ReplicationAction{type=TEST, path[0]='/content/dam', time=1460651862089, userId='admin', revision='null'}. java.io.IOException: Failed to execute request 'https://<localhost>:8580/is-publish/publish-receiver?Cmd=Test&RootId=rbrough-osx2': java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
Or the error log:
07.25.2019 12:00:59.893 *ERROR* [sling-threadpool-db2763bb-bc50-4bb5-bb64-10a09f432712-(apache-sling-job-thread-pool)-90-com_day_cq_replication_job_s7delivery(com/day/cq/replication/job/s7delivery)] com.day.cq.replication.Agent.s7delivery.queue Error during processing of replication.
java.io.IOException: Failed to execute request 'https://replicate-na.assetsadobe.com:8580/is-publish/publish-receiver?Cmd=Test&RootId=rbrough-osx': java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at com.scene7.is.catalog.service.publish.atomic.PublishingServiceHttp.executePost(PublishingServiceHttp.scala:195)
Solution: Make sure the java process on the AEM Author has the system property -Djavax.net.ssl.trustStore= set to a valid truststore.
This issue may be caused by a hot fix, or a feature pack overwriting the dynamic-media-user or keystore node.
Replication log example:
Replication test to s7delivery:https://replicate-na.assetsadobe.com/is-publish
02.08.2016 14:37:44 - Transferring content for ReplicationAction{type=TEST, path[0]='/content/dam', time=1470173864834, userId='admin', revision='null'}
02.08.2016 14:37:44 - * Auth User: replication-receiver
02.08.2016 14:37:44 - * HTTP Version: 1.1
02.08.2016 14:37:44 - * Using OAuth 2.0 Authorization Grants
02.08.2016 14:37:44 - * OAuth 2.0 User: dynamic-media-replication
02.08.2016 14:37:44 - Transfer failed for ReplicationAction{type=TEST, path[0]='/content/dam', time=1470173864834, userId='admin', revision='null'}. com.adobe.granite.keystore.KeyStoreNotInitialisedException: Uninitialised key store for user dynamic-media-replication
Solution:
Navigate to the User Management page:
localhost:4502/libs/granite/security/content/useradmin.html
On the User Management page, navigate to the dynamic-media-replication user, then tap to open.
Tap the KeyStore tab. If the Create KeyStore button appears, then you need to redo the steps under Setting up Authentication earlier.
If you had to redo the KeyStore setup, you may need to do Configuring the Replication Agent again, as well.
Reconfigure the s7delivery Replication Agent.
localhost:4502/etc/replication/agents.author/s7delivery.html
Tap Test Connection to verify the configuration is valid.
This issue may be caused by a hot fix or a feature pack that did not install correctly or overwrote the settings.
Replicate log example:
01.08.2016 18:42:59 - Transferring content for ReplicationAction{type=TEST, path[0]='/content/dam', time=1470073379634, userId='admin', revision='null'}
01.08.2016 18:42:59 - * Auth User: replication-receiver
01.08.2016 18:42:59 - * HTTP Version: 1.1
01.08.2016 18:42:59 - * Using Client Auth SSL alias - replication-receiver *
01.08.2016 18:42:59 - Publishing: POST[https://replicate-eu.assetsadobe2.com:443/is-publish/publish-receiver?Cmd=Test&RootId=altayerstaging]
01.08.2016 18:42:59 - Transfer failed for ReplicationAction{type=TEST, path[0]='/content/dam', time=1470073379634, userId='admin', revision='null'}. java.io.IOException: Failed to execute request 'https://replicate-eu.assetsadobe2.com:443/is-publish/publish-receiver?Cmd=Test&RootId=rbroughstaging': Server returned status code 401 with message: Authorization required.
01.08.2016 18:42:59 - Error while replicating: com.day.cq.replication.ReplicationException: Transfer failed for ReplicationAction{type=TEST, path[0]='/content/dam', time=1470073379634, userId='admin', revision='null'}. java.io.IOException: Failed to execute request 'https://replicate-eu.assetsadobe2.com:443/is-publish/publish-receiver?Cmd=Test&RootId=rbroughstaging': Server returned status code 401 with message: Authorization required.
Solution:
In AEM, tap Tools > General > CRXDE Lite.
localhost:4502/crx/de/index.jsp
Navigate to the s7delivery Replication Agent node.
localhost:4502/crx/de/index.jsp#/etc/replication/agents.author/s7delivery/jcr:content
Add this setting to the replication agent (Boolean with value set to True):
enableOauth=true
Near the upper-left corner of the page, tap Save All.
Adobe recommends that you perform an end-to-end test of the configuration.
Be sure you have already done the following prior to beginning this test:
To test your configuration:
Upload an image asset. (In Assets, tap Create > Files and select the file.)
Wait for the workflow to finish.
Publish the image asset. (Select the asset and tap Quick Publish.)
Navigate to the renditions for that image by opening the image, and tapping Renditions.
Select any dynamic rendition.
Tap URL to obtain the URL for this asset.
Navigate to the selected URL and check whether the image behaves as expected.
Another way to test that your assets were delivered is to append req=exists to your URL.
The Dynamic Media Cloud service provides support for cloud services such as hybrid publishing and delivery of images and video, video analytics, and video encoding, among other things.
As part of the configuration, you need to enter a registration ID, video service URL, image service URL, replication service URL and set up authentication. You should have received all this information as part of the account provisioning process. If you did not receive this information, contact your Adobe Experience Manager Administrator or Adobe Technical Support to obtain the information.
Before setting up Dynamic Media Cloud Services, be sure to have your publish instance set up. You must also have replication set up before configuring Dynamic Media Cloud Services.
To configure dynamic media cloud services:
In AEM, tap the AEM logo to access the global navigation console and tap Tools > Cloud Services > Dynamic Media Configuration (Pre-6.3).
On the Dynamic Media Configuration Browser page, in the left pane, select global, then tap Create.
In the Create Dynamic Media Configuration dialog box, in the Title field, type a title.
If you are configuring Dynamic Media for video,
If you are configuring Dynamic Media for imaging, in the Image Service URL field, enter the image service URL for the Dynamic Media Gateway.
Tap Save to return to the Dynamic Media Configuration Browser page.
Tap the AEM logo to access the global navigation console.
You can configure video reporting across multiple installations of AEM using Dynamic Media – Hybrid mode.
When to use: At the time you configure Dynamic Media Configuration (Pre 6.3), numerous features are started including video reporting. The configuration creates a report suite in a regional Analytics company. If you configure multiple Author nodes, you create a separate report suite for each one. As a result, reporting data is inconsistent among installations. Furthermore, if each Author node refers to the same Hybrid Publish server, the last Author installation changes the destination report suite for all video reporting. This issue overloads the Analytics system with too many report suites.
Get started: Configure video reporting by completing the following three tasks.
Create a Video Analytics preset package after you configure Dynamic Media Configuration (Pre 6.3) on the first Author node. This initial task is important because it allows a new configuration to continue using the same report suite.
Install the Video Analytics preset package to any new Author node before you configure Dynamic Media Configuration (Pre 6.3).
Verify and debug the package installation.
When you have finished this task, you will have a package file that contains the Video Analytics presets. These presets contain a report suite, the tracking server, the tracking namespace, and the Marketing Cloud Organization ID, if available.
If you have not already done so, configure Dynamic Media Configuration (Pre 6.3).
(Optional) View and copy the Report Suite ID (you must have access to the JCR). While having the Report Suite ID is not required, it makes validation easier.
Create a package using Package Manager.
Edit the package to include a filter.
In AEM: /conf/global/settings/dam/dm/presets/analytics/jcr:content/userdata
Build the package.
Download or share the Video Analytics preset package so that it can be shared with subsequent new Author nodes.
Be sure that you complete this task before you configure Dynamic Media Configuration (Pre 6.3). Failure to do so results in the creation of another unused report suite. In addition, even though video reporting will continue to work correctly, the gathering of data is not optimized.
Make sure that the Video Analytics preset package from the first Author node is accessible on the new Author node.
Do any one of the following to verify and, if necessary, debug the package installation:
Check the Video Analytics preset by way of the JCR
To check the Video Analytics preset by way of the JCR, you must have access to CRXDE Lite.
AEM - In CRXDE Lite, navigate to /conf/global/settings/dam/dm/presets/analytics/jcr:content/userdata
That is http://localhost:4502/crx/de/index.jsp#/conf/global/settings/dam/dm/presets/analytics/jcr%3Acontent/userdata
If you do not have access to CRXDE Lite on the Author node, you can check the preset through the Publish server.
Check the Video Analytics preset through the Image Server
You can validate the Video Analytics preset directly by making an Image Server req=userdata
request.
For example, to see the Video Analytics preset on the Author node, you can make the following request:
http://localhost:4502/is/image/conf/global/settings/dam/dm/presets/analytics?req=userdata
To validate the preset on Publish servers, you can make a similar direct request to the Publish server. The responses are the same on Author and Publish nodes. The response looks similar to the following:
marketingCloudOrgId=0FC4E86B573F99CC7F000101
reportSuite=aemaem6397618-2018-05-23
trackingNamespace=aemvideodal
trackingServer=aemvideodal.d2.sc.omtrdc.net
Check the Video Analytics preset through the Video Reporting tool in AEM
Tap Tools > Assets > Video Reporting http://localhost:4502/mnt/overlay/dam/gui/content/s7dam/videoreports/videoreport.html
If you see the following error message, the report suite is available, but unpopulated. This error is correct–and desired–in a new installation before the system collects any data.
To generate reporting data, upload and publish one video. Use Copy URL and run the video at least one time.
Be aware that it can take up to 12 hours before the reporting data is populated from Video Viewer usage.
If there is an error and the report suite is not set correctly, the following alert is displayed.
This error is also displayed if Video Reporting is run before you configure Dynamic Media Configuration (Pre 6.3) services.
SiteCatalystReportService
.The Video Analytics preset—sometimes known simply as analytics preset–is stored next to the Viewer presets in Dynamic Media. It is basically the same as a Viewer preset but with information used to configure AppMeasurement and Video Heartbeat reporting.
The preset’s properties are the following:
AEM 6.4 and newer versions save this preset at /conf/global/settings/dam/dm/presets/analytics/jcr:content/userdata
You must publish your own default catalog settings as part of the setup process through the JCR. To replicate catalog settings:
In a Terminal window, run the following:
curl -u admin:admin localhost:4502/libs/settings/dam/dm/presets/viewer.pushviewerpresets
In AEM, navigate to the following location in CRXDE Lite (requires admin privileges):
https://<server>:<port>/crx/de/index.jsp#/conf/global/settings/dam/dm/imageserver/
Tap the Replication tab.
Tap Replicate.
To deliver an asset with a viewer preset, you must replicate/publish the viewer preset. (All viewer presets must be activated and replicated to obtain the URL or embed code for an asset.) See Publishing Viewer Presets for more information.
By default, the system shows a variety of renditions when you select Renditions and a variety of viewer presets when you select Viewers in the asset’s detail view. You can increase or decrease the number seen. See Increasing the number of image presets that display or Increasing the number of viewer presets that display.
In non-Dynamic Media deployments, you replicate all assets (both images and video) from your AEM author environment to the AEM publish node. This workflow is necessary because the AEM publish servers also deliver the assets.
However, in Dynamic Media deployments, because assets are delivered by way of the cloud, there is no need to replicate those same assets to AEM publish nodes. Such a “hybrid publishing” workflow avoids extra storage costs and longer processing times to replicate assets. Other content, such as Dynamic Media viewers, Site pages, and static content continue to be served from the AEM publish nodes.
Besides replicating the assets, the following non-assets are also replicated:
/conf/global/settings/dam/dm/imageserver/configuration/jcr:content/settings
/conf/global/settings/dam/dm/presets/macros
/conf/global/settings/dam/dm/presets/viewer
The filters provide a way for you to exclude assets from being replicated to the AEM publish node.
If you are using Dynamic Media for 1) imaging in production or 2) imaging and video, then you can use the default filters that we provide as-is. The following filters are active by default:
Filter | Mimetype | Renditions | |
Dynamic Media Image Delivery | filter-images filter-sets
|
Starts with image/ Contains application/ and ends with set. |
The out-of-the-box "filter-images" (applies to single images assets, including interactive images) and "filter-sets" (applies to Spin Sets, Image Sets, Mixed Media Sets, and Carousel Sets) will:
|
Dynamic Media Video Delivery | filter-video | Starts with video/ | The out-of-the-box "filter-video" will:
|
Dynamic Media Classic integration | filter-images filter-sets filter-video |
Starts with image/ Contains application/ and ends with set. Starts with video/ |
You configure the Transport URI to point to your AEM publish server instead of the Adobe Dynamic Media Cloud Replication Service URL. Setting up this filter will allow Dynamic Media Classic to deliver assets instead of the AEM publish instance. The out-of-the-box "filter-images," "filter-sets," and "filter-video" will:
|
Filters apply to mime types and cannot be path specific.
If you are using Dynamic Media for video-only, follow these steps to set up asset filters for replication:
/etc/replication/agents.author/dynamic_media_replication/jcr:content/damRenditionFilters
/etc/replication/agents.author/publish
This sets up the AEM publish instance to deliver the video poster image as well as the video metadata required for playback, while the video itself is delivered by the Dynamic Media cloud service. The filter will also exclude from replication the original video and static thumbnail renditions, which are not needed on the publish instance.
If you are using Dynamic Media for imaging in non-production deployments, follow these steps to set up asset filters for replication:
In AEM, tap the AEM logo to access the global navigation console and tap Tools > Deployment > Replication > Agents on author.
On the Agents on author page, tap Default Agent (publish).
Tap Edit.
In the Agent Settings dialog box, in the Settings tab, check Enabled to turn on the agent.
Tap OK.
In AEM, tap Tools > General > CRXDE Lite.
In the left folder tree, navigate to /etc/replication/agents.author/dynamic_media_replication/jcr:content/damRenditionFilters
Locate filter-images, right-click it and select Copy.
In the left folder tree, navigate to /etc/replication/agents.author/publish
Locate jcr:content, right-click it and select Create > Create Node. Enter the name damRenditionFilters
of type nt:unstructured
.
Locate damRenditionFilters
, right-click it and select Paste.
This sets up the AEM publish instance to deliver the images to your non-production environment. The filter will also exclude from replication the original image and static renditions, which are not needed on the publish instance.
If there are many different filters in an author, each agent needs a different user assigned to it. The granite code enforces one-filter-per-user model. Always have a different user for each filter set up.
If you are using more than one filter on a server—for example, one filter for replication to publish and a second filter for s7delivery—then you need to ensure that these two filters have a different userId assigned to them in the jcr:content node. See the image that follows:
To optionally customize asset filters for replication:
In AEM, tap the AEM logo to access the global navigation console and tap Tools > General > CRXDE Lite.
In the left folder tree, navigate to /etc/replication/agents.author/dynamic_media_replication/jcr:content/damRenditionFilters
to review the filters.
To define the Mime Type for the filter, you can locate the Mime Type as follows:
In the left rail, expand content > dam > <locate_your_asset
> > jcr:content > metadata, and then in the table, locate dc:format
.
The following graphic is an example of an asset’s path to dc:format
.
Notice that the dc:format
for the asset Fiji Red.jpg
is image/jpeg
.
To have this filter apply to all images, regardless of their format, set the value to image/*
where *
is a regular expression that is applied to all images of any format.
To have the filter apply only to images of the type JPEG, enter a value of image/jpeg
.
Define what renditions you want to include or exclude from replication.
Characters that you can use to filter for replication include the following:
Character to use | How it filters assets for replication |
* | Wildcard character |
+ | Includes assets for replication. |
- | Excludes assets from replication. |
Navigate to content/dam/<locate_your_asset>/jcr:content/renditions
.
The following graphic is an example of an asset’s renditions.
Using the example above, if you only wanted to replicate the PTIFF (Pyramid TIFF), then you would enter +cqdam,*
which includes all the renditions that start with cqdam
. Inthe example, that rendition is cqdam.pyramid.tiff
.
If you only wanted to replicate the original, then you would enter +original
.
Configuring the Dynamic Media Image Server involves editing the Adobe CQ Scene7 ImageServer bundle and the Adobe CQ Scene7 PlatformServer bundle.
Dynamic Media works out-of-the-box after it is enabled. However, you can optionally choose to fine tune your installation by configuring Dynamic Media Image Server to meet certain specifications or requirements.
Prerequisite: Before you configure Dynamic Media Image Server, ensure that your VM of Windows includes an installation of the Microsoft Visual C++ Libraries. The libraries are necessary to run Dynamic Media Image Server. You can download the Microsoft Visual C++ 2010 Redistributable Package (x64) here.
To configure Dynamic Media Image Server settings:
In the upper-left corner of AEM, tap Adobe Experience Manager to access the global navigation console, then tap Tools > Operations > Web Console.
On the Adobe Experience Manager Web Console Configuration page, tap OSGi > Configuration to list all the bundles that are currently running within AEM.
The Dynamic Media Delivery Servers are found under the following names in the list:
In the list of bundles, to the right of Adobe CQ Scene7 ImageServer, tap the Edit icon.
In the Adobe CQ Scene7 ImageServer dialog box, set the following configuration values:
In most cases, there is no need to change the default values. However, if you do change the default values, you must restart the bundle for the changes to take affect.
Property | Default value | Description |
TcpPort.name | empty |
Port number to use for communication with the ImageServer process. By default free port is automatically detected. |
AllowRemoteAccess.name | empty |
Allow or disallow remote access to ImageServer process. If false, the image server listens only on localhost. Default externalizer settings that point to the localhost need to specify the actual domain or IP address of the specific VM instance. The reason for this is because the localhost may be pointing to the parent system of the VM. Domains or IP addresses for the VM may need to have a host file entry so that it can resolve itself. |
MaxRenderRgnPixels | 16 MPixels | Maximum size in megapixels that is rendered. |
MaxMessageSize | 16 MBytes | Maximum message size in megabytes that is delivered. |
RandomAccessUrlTimeout | 20 | Timeout value for how long in seconds the ImageServer will wait for the JCR to respond to a ranged tile request. |
WorkerThreads | 10 | Number of worker threads. |
Tap Save.
In the list of bundles, to the right of Adobe CQ Scene7 PlatformServer, tap the Edit icon.
In the Adobe CQ Scene7 PlatformServer dialog box, set the following default value options:
Dynamic Media Image Server uses its own disk cache to cache responses. The AEM HTTP cache and the Dispacher cannot be used to cache responses from Dynamic Media Image Server.
Property | Default value | Description |
---|---|---|
Cache enabled | Checked | Whether or not the response cache is enabled. |
Cache roots | cache | One or more paths to the response cache folders. Relative paths are resolved against the internal s7imaging bundle folder. |
Cache Max Size | 200000000 | Maximum size of response cache in bytes. |
Cache Max Entries | 100000 | Maximum number of entries allowed in the cache. |
The default manifest lets you configure the defaults that are used to generate the Dynamic Media Delivery responses. You can fine tune quality (JPEG quality, resolution, resampling mode), caching (expiration), and prevent the rendering of images that are too large (defaultpix, defaultthumbpix, maxpix).
The location of the default manifest configuration is taken from the Catalog root default value of the Adobe CQ Scene7 PlatformServer bundle. By default this value is located at the following path within Tools > General > CRXDE Lite:
/conf/global/settings/dam/dm/imageserver/
You can change the values of the properties, as described in the table below, by entering new values.
When you are finished making changes to the default manifest, in the upper-left corner of the page, tap Save All.
Be sure you tap the Access Control tab (to the right of the Properties tab), then set the access control privileges to jcr:read
for the everyone and dynamic-media-replication users.
Table of Manifest settings and their default values:
Property | Default value | Description |
bkgcolor | FFFFFF | Default background color. RGB value used to fill in any area of a reply image which does not contain actual image data. See also BkgColor in the Image Serving API. |
defaultpix | 300,300 | Default view size. The server constrains reply images to be no larger than this width and height, if the request does not specify the view size explicitly using wid=, hei=, or scl=. Specified as two integer numbers, 0 or larger, separated by a comma. Width and height in pixels. Either or both values may be set to 0 to keep them unconstrained. Does not apply to nested/embedded requests. See also DefaultPix in the Image Serving API. Usually, however, you are using a viewer preset or image preset to deliver the asset. Defaultpix only applies to an asset that is not using a viewer preset or image preset. |
defaultthumbpix | 100,100 | Default thumbnail size. Used instead of attribute::DefaultPix for thumbnail requests (req=tmb). The server constrains reply images to be no larger than this width and height, if a thumbnail request (req=tmb) does not specify the size explicitly not specify the view size explicitly using wid=, hei=, or scl=. Specified as two integer numbers, 0 or larger, separated by a comma. Width and height in pixels. Either or both values may be set to 0 to keep them unconstrained. Does not apply to nested/embedded requests. See also DefaultThumbPix in the Image Serving API. |
expiration | 36000000 | Default client cache time to live. Provides a default expiration interval in case a particular catalog record does not contain a valid catalog::Expiration value. Real number, 0 or greater. Number of milliseconds until expiration since the reply data was generated. Set to 0 to always expire the reply image immediately, which effectively disables client caching. By default, this value is set to 10 hours, which means that if a new image is published, it takes 10 hours for the old image to leave the user's cache. Contact Customer Support if you need the cache cleared sooner. See also Expiration in the Image Serving API. |
jpegquality | 80 | Default JPEG encoding attributes. Specifies the default attributes for JPEG reply images. Integer number and flag, separated by a comma. The first value is in the range 1..100 and defines the quality. The second value may be 0 for normal behavior, or 1 to disable the RGB chromaticity down-sampling usually employed by JPEG encoders. See also JpegQuality in the Image Serving API. |
maxpix | 2000,2000 | Reply image size limit. Maximum reply image width and height that is returned to the client. The server returns an error if a request causes a reply image whose width or height is larger than attribute::MaxPix. See also MaxPix in the Image Serving API. |
resmode | SHARP2 | Default resampling mode. Specifies the default resampling and interpolation attributes to be used for scaling image data. Used when resMode= is not specified in a request. Allowed values include BILIN, BICUB, or SHARP2. Enum. Set to 2 for bilin, 3 for bicub, or 4 for sharp2 interpolation mode. Use sharp2 for best results. See also ResMode in the Image Serving API. |
resolution | 72 | Default object resolution. Provides a default object resolution in case a particular catalog record does not contain a valid catalog::Resolution value. Real number, larger than 0. Typically expressed as pixels per inch, but may also be in other units, such as pixels per meter. See also Resolution in the Image Serving API. |
thumbnailtime | 1%,11%,21%,31%,41%,51%,61%,71%,81%,91% | These values represent a snapshot of video playtime and are passed to encoding.com. See About video thumbnails for more information. |
Dynamic media color management lets you color correct assets for previewing.
With color correction, ingested assets retain their color space (RGB, CMYK, Gray) and embedded color profile in the generated pyramid TIFF rendition. When you request a dynamic rendition, the image color is corrected into the target color space. You configure the output color profile in the dynamic media publish settings in the JCR.
Adobe color management uses ICC profiles, a format defined by the International Color Consortium (ICC).
You can configure dynamic media color management and configure image presets using CMYK, RGB, or Gray output. See Configuring Image Presets.
Advanced use cases could use a manual configure icc= modifier to explicitly select an output color profile:
icc - Output color profile.
iccEmbed - Embed color profile.
The standard set of Adobe color profiles are only available if you have Feature Pack 12445 from Software Distribution installed. All feature packs and service packs are available at Software Distribution. Feature Pack 12445 provides the Adobe color profiles.
You must install feature pack 12445 to use the dynamic media color management capabilities.
To install feature pack 12445:
Navigate to Software Distribution and download cq-6.3.0-featurepack-12445
.
See How to work with packages for more information on using packages in Adobe Experience Manager.
Install the feature pack.
After you install the feature pack, you need to configure the appropriate default color profiles to enable color correction when requesting RGB or CMYK image data.
To configure the default color profiles:
In Tools > General > CRXDE Lite, navigate to /conf/global/settings/dam/dm/imageserver/configuration/settings
which contains the default Adobe Color Profiles.
Add a color correction property by scrolling to the bottom of the Properties tab and manually entering the property name, type, and value, which are described in the following tables. After you enter the values, tap Add and then Save All to save your values.
Color correction properties are described in the Color Corrections Properties table. Values that you can assign to color correction properties are in the Color Profile table.
For example, in Name, add iccprofilecmyk
, select Type String
, and add WebCoated
as a Value. Tap Add, then Save All to save your values.
Color Correction Properties Table
Property | Type | Default | Description |
iccprofilergb | String | <empty> | Name of the default RGB color profile. |
iccprofilecmyk | String | <empty> | Name of the default CMYK color profile. |
iccprofilegray | String | <empty> | Name of the default Gray color profile. |
iccprofilesrcrgb | String | <empty> | Name of the default RGB color profile used for RGB images that do not have an embedded color profile |
iccprofilesrccmyk | String | <empty> | Name of the default CMYK color profile used for CMYK images that do not have an embedded color profile. |
iccprofilesrcgray | String | <empty> | Name of the default Gray color profile used for CMYK images that do not have an embedded color profile. |
iccblackpointcompensation | Boolean | True | Specifies whether black point compensation should be done during color correction. Adobe recommends this to be on. |
iccdither | Boolean | False | Specifies whether dithering should be done during color correction. |
iccrenderintent | String | relative | Specifies the render intent. Acceptable values are: perceptual, relative, saturation, absolute. Adobe recommends relative as the default. |
Property names are case sensitive and need to be all lowercase.
Color Profile Table
The following color profiles are installed:
Name |
Colorspace |
Description |
---|---|---|
AdobeRGB | RGB | Adobe RGB (1998) |
AppleRGB | RGB | Apple RGB |
CIERGB | RGB | CIE RGB |
CoatedFogra27 | CMYK | Coated FOGRA27 (ISO 12647-2:2004) |
CoatedFogra39 | CMYK | Coated FOGRA39 (ISO 12647-2:2004) |
CoatedGraCol | CMYK | Coated GRACoL 2006 (ISO 12647-2:2004) |
ColorMatchRGB | RGB | ColorMatch RGB |
EuropeISOCoated | CMYK | Europe ISO Coated FOGRA27 |
EuroscaleCoated | CMYK | Euroscale Coated v2 |
EuroscaleUncoated | CMYK | Euroscale Uncoated v2 |
JapanColorCoated | CMYK | Japan Color 2001 Coated |
JapanColorNewspaper | CMYK | Japan Color 2002 Newspaper |
JapanColorUncoated | CMYK | Japan Color 2001 Uncoated |
JapanColorWebCoated | CMYK | Japan Color 2003 Web Coated |
JapanWebCoated | CMYK | Japan Web Coated (Ad) |
NewsprintSNAP2007 | CMYK | US Newsprint (SNAP 2007) |
NTSC | RGB | NTSC (1953) |
PAL | RGB | PAL/SECAM |
ProPhoto | RGB | ProPhoto RGB |
PS4Default | CMYK | Photoshop 4 Default CMYK |
PS5Default | CMYK | Photoshop 5 Default CMYK |
SheetfedCoated | CMYK | U.S. Sheetfed Coated v2 |
SheetfedUncoated | CMYK | U.S. Sheetfed Uncoated v2 |
SMPTE | RGB | SMPTE-C |
sRGB | RGB | sRGB IEC61966-2.1 |
UncoatedFogra29 | CMYK | Uncoated FOGRA29 (ISO 12647-2:2004) |
WebCoated | CMYK | U.S. Web Coated (SWOP) v2 |
WebCoatedFogra28 | CMYK | Web Coated FOGRA28 (ISO 12647-2:2004) |
WebCoatedGrade3 | CMYK | Web Coated SWOP 2006 Grade 3 Paper |
WebCoatedGrade5 | CMYK | Web Coated SWOP 2006 Grade 5 Paper |
WebUncoated | CMYK | U.S. Web Uncoated v2 |
WideGamutRGB | RGB | Wide Gamut RGB |
Tap Save All.
For example, you could set iccprofilergb to sRGB
, and iccprofilecmyk to WebCoated
. Doing so would do the following:
sRGB
color space.WebCoated
color space.sRGB
color space.WebCoated
color space.After you complete all the tasks above, activated Dynamic Media assets are served from the Image or Video Service. In AEM, this ability shows up in a Copy Image URL, Copy Viewer URL, Embed Viewer Code, and in the WCM.
See Delivering Dynamic Media Assets.
When you... | Result |
Copy an image URL | The Copy URL dialog box displays a URL similar to following (URL is for demonstration purposes only):
Where See also Delivering Dynamic Media Assets. |
Copy a viewer URL | The Copy URL dialog box displays a URL similar to the following (URL is for demonstration purposes only):
Where See also Delivering Dynamic Media Assets. |
Copy a viewer's embed code | The Copy Embed Code dialog box displays a code snippet similar to the following (code sample is for demonstration purposes only):
Where See also Delivering Dynamic Media Assets. |
WCM pages that reference Dynamic Media and Interactive Media components reference the delivery service.