Multimedia DRM

The following questions are related to implementing playback for media protected by digital rights management (DRM) technology.

Samsung TVs support playing media protected using the PlayReady, Widevine, and Verimatrix DRM technologies. For information on the supported media containers, streaming format and DRM combinations, and network protocols, see the General Specifications.

You can implement DRM-protected media playback by defining the DRM parameters with the setDrm() method of the AVPlay API. For implementation details, contact your Samsung Apps TV Seller Office Content Manager.

   #drm    #playready    #widevine    #verimatrix    #avplay api

You can define the HTTP header information in the DRM parameters, for example:

var drmParam = new Object();

drmParam.LicenseServer = "http://license.company.com";

drmParam.CustomData = "mycustomdata";

drmParam.HttpHeader = "header";

playerObj.setDrm("PLAYREADY", "SetProperties", JSON.stringify(drmParam));

   #drm    #http header    #license server request    #playready    #widevine

Check that the DRM configuration is set after opening the media file with open(), but before preparing it with prepare() or prepareAsync(). For more information, see the AVPlay API.

   #drm configuration    #avplay api

Yes. To delete the stored DRM license information, replace the DRM parameters with empty strings:

webapis.avplay.setDrm('', '', '');

   #license information    #avplay api    #setdrm    #delete

Samsung does not have documentation about PlayReady server communication details. You must contact Microsoft for this information.

   #playready    #public key    #server communication

When the application is hidden, the DRM session can be removed. To avoid the "PLAYER_ERROR_NONE" error when the application is resumed with the restore() method, you must also recreate the DRM session.

   #player error none    #drm session    #error    #restore    #multitasking    #avplay api

Make sure that all media segments begin with an instantaneous decoder refresh (IDR) frame. The codec information stored in the IDR frame is needed during playback to decode frames properly when the bandwidth changes.

   #verimatrix    #idr frame    #bandwidth change    #distortion    #stuttering

To avoid audio and video desynchronization, encode the video content at a constant frame rate (FPS). The other stream properties can be adaptive.

   #verimatrix    #audio sync    #frame rate    #fps