Before you begin
Ensure you have completed the following steps before starting the migration process:
✅ You have an RMS instance deployed from the Azure Marketplace.
✅ You have a Microsoft Entra user account with user type = member in the Azure Tenant where the RMS instance is deployed.
✅ You have the RMS API Connection Credentials, find out how.
Migration steps:
1. Register Your AMS Storage Account(s) in RMS
2. Connect your application to RMS
3. Replace Azure Media Player with Another Player
Optional: Change Event Grid Subscriptions
4. AMS Account Data Migration to RMS
Verification and troubleshooting
Consider the following scenarios before starting:
Encrypted Videos (AES or DRM): If you have a large number of encrypted videos (AES or DRM) consider using the migration option to generate new keys instead of migrating existing ones. AMS API throttling will not allow you to migrate more than 1200 assets per hour if they have content keys. Contact us to turn on the key-generation option in the migration configuration for you.
Content Key Policies: Check if you have a large number of content key policies in your AMS account (e.g., policy per asset). This is considered bad practice from AMS's perspective (see Best Practices and Considerations) and is limited by AMS throttling to 1200 requests per hour. There is an option to apply a single policy for all migrated streaming locators of the same encryption scheme. Contact us, and we will specify it in the migration configuration before you start.
1. Register Your AMS Storage Account(s) in RMS
This Guide helps you connect Ravnur Media Services to your current storage setup in three steps: find the Managed Identity, give it the needed permissions, and configure it in Ravnur. As a result, you will set up Ravnur to work with your existing AMS storage to proceed with further steps.
Before migrating, it is essential to include all storage accounts associated with your AMS account in the RMS Console. If any storage accounts are not listed, the migration process will not initiate. Additionally, ensure that each storage account has a Managed Identity assigned with the appropriate role as described on this page.
2. Connect your application to RMS
The RMS API mirrors the AMS API, meaning no significant code changes are required. You can continue using your existing SDK and logic without modifications. However, RMS uses a different authentication scheme, so you will need to update your code to use the new credentials. You can copy them from the following sources:
- For Azure.ResourceManager.Media SDK, use this implementation.
Your media service client initialization code will look like this:
// For Microsoft.Azure.Management.Media SDK
var credentials = new RmsApiKeyCredentials(
new Uri("<RMS API endpoint>"),
"<RMS Subscription ID>",
"<RMS API Key>");
var mediaServicesClient = new AzureMediaServicesClient(credentials, new HttpClient(), true)
{
SubscriptionId = "<RMS Subscription ID>"
};
// All mediaServicesClient method calls then use RMS Resource Group and Account Name
- For Microsoft.Azure.Management.Media SDK, use this implementation.
Your media service client initialization code will look like this:
// For Azure.ResourceManager.Media SDK
var credentials = new RmsApiKeyCredentials(
new Uri("<RMS API endpoint>"),
"<RMS Subscription ID>",
"<RMS API Key>");
ArmClient armClient = new ArmClient(
credentials,
"<RMS Subscription ID>",
new ArmClientOptions
{
Environment = new ArmEnvironment(new Uri("<RMS API endpoint>"), "test"),
});
var mediaServicesAccountIdentifier = MediaServicesAccountResource.CreateResourceIdentifier(
"<RMS Subscription ID>",
"<RMS Resource Group Name>",
"<RMS Account Name>");
var mediaServiceClient = armClient.GetMediaServicesAccountResource(mediaServicesAccountIdentifier)
After applying these updates, your media service client initialization will be adapted for RMS.
3. Replace Azure Media Player with Another Player
The Azure Media Player is also being retired, and Ravnur Media Services does not support the Azure Media Player. We recommend switching to a supported player. Currently, the video players listed below are compatible with RMS, and most other HTML5 players work as well, but we do not include them in our testing:
- Ravnur Media Player
- hls.js
- dash.js
You can find the developer guide on how to set up Ravnur Media Player here.
Validation
At this stage, you have completed the RMS compatibility changes in steps 2 and 3. Ensure the following:
- your transforms work properly in RMS producing the expected output
- videos are streamed according to your streaming and content key policies
This validates the success of the Migration steps above.
Additionally, the Streaming URL has been updated: the host name has been changed from the AMS endpoint to the RMS endpoint.
Old URL: http://ams111-aaaa.streaming.media.azure.net/...
New URL: http://fd-111a1aaaaa1-a1aaaaaaaaaaaaa.z02.azurefd.net/...
This URL change proves the successful completion of backend compatibility. A change of the player, surely, would represent the completion of front-end changes.
Please proceed with the remaining steps to fully complete the procedure.
Optional: Change Event Grid Subscriptions
RMS produces the same Event Grid events schema as AMS. Use these instructions to change your current Event Grid subscriptions to listen to RMS events instead.
For this, your RMS instance should be deployed in the same subscription as your current AMS account.
4. AMS Account Data Migration to RMS
At this point you have your storages registered in RMS and you ensured that your application works seamlessly with RMS API. Now you can migrate all your existing AMS assets metadata to RMS. This migration copies only the metadata of your assets; it does not copy or move your assets' contents from storage. These instructions will guide you through this process.
✅ In the RMS Console, you can easily track the migration status. Getting "Completed" confirms the successful execution of your previous steps.
❌If an error occurs during the migration process, the status will be "Failed", with details in the Steps table. You can review them, make appropriate adjustments, and try again.
Streaming Endpoints
There is no migration of streaming endpoints from AMS to RMS. RMS does not support full streaming endpoint functionality. It contains only one hard-coded streaming endpoint which you can't remove.
By default, RMS streaming endpoint uses the same domain name as API and Console. The only RMS streaming endpoint property that you can change is HostName which your code may require for producing streaming URLs (it concatenates the Streaming Endpoint host name with Streaming Locator paths.
If you are using CDN, then you must specify your CDN domain name there to verify it navigate to your Streaming Endpoint in Azure Portal. CDN migration instructions will tell you what actions are required from you in this case.
If you do not want to use CDN but still want to use your custom domain name, then please contact us and we will setup your custom domain in RMS for you.
5. Update CDN configuration
Finally, it is time to change the CDN domain. The reason it is necessary is that the AMS streaming domain will be deleted immediately after the AMS account is deleted. If you keep the AMS account active, it will be available for a while after the AMS shutdown, but Microsoft will delete the DNS records before the end of 2024. So we highly recommend that you prepare your custom domain for your CDN in advance before migrating to RMS. It means that all your existing streaming links should be updated from the AMS streaming endpoint domain to your custom domain instead.
You are about to prepare a custom domain for the CDN in advance. Create a separate CDN endpoint pointed to the RMS streaming endpoint or change the origin for the existing CDN endpoint. Click here to see the full instructions.
Verification and troubleshooting
Congratulations on completing the migration process! You successfully transferred the data, configurations, and streaming infrastructure from Azure Media Services (AMS) to Ravnur Media Services (RMS). Now, your existing storage, application connections, and media playback seamlessly integrate with RMS. All your video URLs are now streaming directly from RMS, resulting in a smooth performance for your viewers.
You can now initiate your Post-migration Release Procedure. Check this document for valuable recommendations to help you finalize your media service application migration to RMS.
If you encounter any issues while following the provided steps, check the following known issues:
Still no answer? Please contact Ravnur for assistance.