About encoding and playing back DRM content

The process of adding Digital Rights Management (DRM) to a file, and then playing back or distributing that file, consists of several steps. You can use the tools in Microsoft Expression Encoder to fully implement DRM so that you can deliver protected files. The process of playback is handled by both the client application and the license server. The following workflow is the typical process for creating and then playing back a file using Microsoft PlayReady DRM. For more information on selecting specific DRM parameters in Expression Encoder, see Set DRM options.

If you plan to create a Live Broadcasting project that you want to stream to Apple devices, do not set your DRM options in Expression Encoder. Instead, use the settings in IIS Media Services to encrypt your content using the Advanced Encryption Standard (AES) with a 128-bit key. Consult the IIS Media Services Help for more information.

When you are creating the content in Expression Encoder, use the options in the Security category to specify your DRM options. The first option is the License URL. The License URL is the location of the license server. The license server stores the license that lets the user play back your content. Type or, through Expression Encoder, generate a Key ID. The Key ID is a globally unique identifier (GUID) that specifically identifies the content. Finally, the license server provides you with either a Key Seed or a Content Key, which you then type into Expression Encoder. These keys are also stored on the license server.

If you supplied a Key Seed, when you encode, Expression Encoder uses the Key ID and the Key Seed to generate a Content Key. If you have already supplied a Content Key, there is no need to generate a new one. The Content Key is used to encrypt the content. Upon completion of the encoding, Expression Encoder writes the License URL and Key ID in the content header of the finished file.

Now, you can publish the content. A user can subsequently download the content and initiate playback.

Once the user initiates playback, the playback client searches the local computer for a valid license that authorizes local playback of the content. If a license does not exist locally, the client requests a license from the license server using the License URL embedded in the content header. The client also sends information about the local computer to the license server.

The license server obtains the Key ID from the content and then does one of two things depending on how the license server is configured. If the server is configured to use a Key Seed, it will generate a license using the Key ID and the Key Seed on the server. If it is configured to use a Content Key, it will look up the Key ID and generate the license with the associated Content Key. In either case, the server generates a license, signs the license, and downloads it to the user’s computer.

The PlayReady DRM component on the local computer verifies the license. It also notes the expiration date and any other key aspects of the license (for example, whether the content can be copied).

The local client plays back the content.


Since 30 years I work on Database Architecture and data migration protocols. I am also a consultant in Web content management solutions and medias protecting solutions. I am experienced web-developer with over 10 years developing PHP/MySQL, C#, VB.Net applications ranging from simple web sites to extensive web-based business applications. Besides my work, I like to work freelance only on some wordpress projects because it is relaxing and delightful CMS for me. When not working, I like to dance salsa and swing and to have fun with my little family.

You may also like...

Leave a Reply