When you process media files, you create a job. That job becomes your window into the processing pipeline, showing you what's happening, when it will be complete, and how to resolve any issues.
Submit jobs through the RMS Console, the API directly, or using SDKs. Jobs execute your transforms, scale automatically based on demand, and provide retry capabilities.
In this article:
Before you begin
- Authenticate using the RMS API Authentication.
- Upload media file (via RMS Console or SDK).
Concepts
| Term | Definition |
|---|---|
| Transform | A reusable definition of processing logic. A transform references one or more presets. When run, RMS generates the same deterministic file list you would see in Azure Media Services (names, bitrates, resolutions) but stores only the files it actually needs. |
| Preset | A configuration that tells RMS how to process media. RMS supports 15 built-in presets and lets you supply custom ones. |
| Job |
A job executes the selected transform preset(s) on the input assets. The flow below shows the typical processing path:
|
| Assets |
|
Transform capabilities
RMS offers the following processing capabilities:
- Preview generation: create video previews or short clips from your media.
- Thumbnail extraction: automatically generate image thumbnails for visual display.
- Trimming: extract a specific part of the input.
- Stitching: merge multiple video segments into a single continuous output.
- Audio analysis: runs speech & tonal analysis and extracts a WebVTT subtitle file plus rich audio metadata through Azure AI Video Indexer integration, learn more.
Basic job operations
Jobs are managed through standard REST API endpoints:
| Job operation | Description |
| Create | Creates a job with specified parameters. |
| List | Retrieve all jobs for a transform. |
| Get | Retrieve details of a specific job. |
| Update | Modify job properties. |
| Cancel | Cancel a running or queued job. |
| Delete | Remove a completed job. |
Job statuses and lifecycle
Understanding job statuses helps you monitor and manage your media processing workflows. Jobs progress through different states from initiation to completion:
The following table outlines the job statuses:
| Job status | Description |
| Transient states: | |
| Queued | The job is waiting for resources to become available. |
| Scheduled | The job is being assigned to an available resource. |
| Processing | The job is actively processing through the encoding pipeline. |
| Canceling | The job is in the process of being canceled. |
| Final states: | |
| Finished | The job was completed successfully. |
| Canceled | The job was canceled before completion. |
| Error | The job encountered an error and failed. |
After a job finishes, you can publish the output assets for streaming, download them for local use, or feed those assets into another transform for further processing (e.g., for audio analysis).
RMS Console
The RMS Console provides an interface for managing your media processing workflows:
- Upload media files.
- Create and manage transforms.
- Submit jobs.
- Monitor processing progress in real-time and more.
The RMS Console is the recommended tool for RMS operations available through a user-friendly interface.
Job retry
If a job fails or is canceled, you can retry it - optionally resuming from the last failed output.
Jobs in canceled and error states can be retried. Jobs in other states cannot be retried.
RMS Console retry
The RMS Console includes a Retry job button in the UI, located in Transforms and Jobs tab > any transform > Jobs list.
This button calls the retry endpoint with the resume=true parameter, see below.
Retry endpoint
Retry job example:
POST https://{{api-endpoint}}/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Microsoft.Media/mediaServices/:accountName/transforms/:transformName/jobs/:jobName/restart?api-version={{api-version}}&resume=trueParameters:
-
resume=true: Resume from last failed output (skip completed steps).
When to use resume=true:
- Job failed during processing, but some outputs were already generated.
- You want to save processing time and resources.
- Transient errors (network timeouts, temporary service issues).
Restarting the job in this way keeps the original job ID and asset container.
-
resume=false(or omitted): Restart the entire job from the beginning.
When to use resume=false:
- You suspect previous outputs may be incomplete or corrupted.
- The job failed due to a systemic issue (e.g., invalid transform settings, missing permissions) that you have since corrected.
- You want to ensure a clean, end-to-end reprocessing of the media asset.
Performance and scaling
RMS offers flexibility in optimizing media processing resources. The system automatically scales to meet your processing needs. When you submit encoding jobs, the system allocates resources dynamically and processes multiple jobs concurrently.
Concurrent processing limits
- RMS allows up to 20 jobs to run simultaneously by default. This concurrent processing reduces overall processing time for batch operations, and Ravnur can adjust these limits based on your specific requirements.
- For high‑volume workflows, Ravnur can increase this limit upon request.
Resource management
- You control the total computing power available to your jobs through vCPU quota configuration. When your quota is insufficient, jobs will remain in the queued state longer while waiting for available resources.
- You can adjust these quotas yourself to fine-tune performance based on your processing needs and budget: learn about adjusting vCPU quotas.
Troubleshooting
Diagnose and resolve common issues of media processing.
Error resolution
When a job shows an error status, examine the error details using any of these methods:
- API call: Send a GET request to retrieve detailed error information in the response.
- RMS Console: Click View error to see the error details.
- Event Grid: Monitor job status changes and error events in real-time.
Act on the error type:
- File format: Ensure the format is supported by RMS.
-
File corruption:
- Asset input: test playback on your local machine using a media player like VLC to ensure the file isn't corrupted before uploading.
- HTTP input: for 404 errors, verify the media is active and playable via the HTTP link.
- Missing or corrupt metadata: If the error suggests issues with media info or file properties, use the MediaInfo or ffprobe tool to inspect the file and verify its technical metadata (codec, resolution, duration, etc.).
-
Transient errors: For temporary issues like network timeouts, connection failures, or brief service interruptions, use the Job retry with the
resume=trueparameter.
Processing delays
- Resource availability: If all concurrent job workers are busy processing other jobs, new jobs will remain queued until resources become available.
- Scaling: If jobs remain queued for more extended periods, consider increasing the vCPU quota to allow for more scaling and speed up job initiation.
- Azure downtime: If there are issues with Azure infrastructure, jobs may remain queued. You can monitor Azure Service Health. Once Azure resolves the issue, the job will automatically resume.
If problems persist after troubleshooting, please contact Ravnur.