AEM 6.5: Dynamic Media Encode Video workflow causes CPU spike during parallel video uploads
This article explains how to resolve CPU spikes caused by the Dynamic Media Encode Video workflow during parallel video uploads in Adobe Experience Manager 6.5.
Description description
Environment
Adobe Experience Manager (AEM) 6.5 SP24 (all platforms)
Issue/Symptoms
When uploading multiple video assets simultaneously (For example: 15–20 videos of 10–80 MB each) to the Production Author server, the Dynamic Media Encode Video workflow triggers parallel FFmpeg transcoding processes, resulting in severe CPU spikes. The server becomes unresponsive and requires a restart. Similar behavior occurs in lower environments when uploading 5 videos of 30 MB each.
Symptoms:
- High CPU utilization on the Author server during video asset uploads
- Author instance becomes unresponsive and must be restarted
- Business users are unable to upload video assets until the issue is resolved.
Error logs show FFmpeg transcoding steps are active prior to the server outage.
Cause
Parallel FFmpeg processing triggered by the Dynamic Media Encode Video workflow wasn’t throttled due to a misconfigured queue topic (leading slash).
Correcting the topic and using a dedicated queue allows controlled concurrency, preventing CPU spikes.
Resolution resolution
Follow the steps below to resolve the issue:
-
Review Workflow Configuration:
- Identify the workflow model used for video encoding (For example:
Dynamic Media Encode Video). - Confirm the workflow topic by uploading a test video and checking
/system/console/slingeventfor the topic (For example:com/adobe/granite/workflow/job/var/workflow/models/nhbvideoencode).
- Identify the workflow model used for video encoding (For example:
-
Configure a Dedicated Ordered Sling Job Queue:
-
Create a custom Sling Job Queue for the workflow topic.
-
Ensure the queue topic matches exactly (no leading slash) with the topic shown in
/system/console/slingevent. -
Example:
- Correct:
com/adobe/granite/workflow/job/var/workflow/models/nhbvideoencode - Incorrect:
/com/adobe/granite/workflow/job/var/workflow/models/nhbvideoencode
- Correct:
-
-
Set Queue Ranking and Concurrency:
- Assign a higher ranking to the custom queue (For example: 1000) than the default workflow queue.
- Configure concurrency settings to throttle FFmpeg processing (For example: set
maxConcurrentJobsto limit simultaneous executions).
-
Validate Configuration:
- Reset workflow status and re-run the workflow.
- Confirm that jobs are routed through the dedicated queue and CPU utilization remains stable during parallel uploads.
-
Test in Lower Environment:
- Upload multiple videos simultaneously and monitor CPU usage.
- If successful, apply the configuration to Production.