How do I create DRM Licenses that can be used for Offline Playback?

[ Background ]
Typically, a license is acquired from the DRM license server when the client video player encounters a video that is DRM-protected.   However, some use cases call for the ability for end-users to be able to play DRM content when a network connection is not available to the device.
For example - the user wants to download a video from their home, acquire a license to play the content, and then get onto a train/airplane where a network connection isn't available.  On the train/airplane/etc..., the end user expects to be able to watch their video that they downloaded at home.
[ DRM Policy Requirements ]
For this use case to be possible, the DRM license must be acquired when the network connection is available.  In addition, the DRM license must be allowed to persist on the device disk.  For this to be possible, one value must be present in the DRM policy:
1. Offline License Caching must be set to 1 or higher.  This policy parameter indicates how many minutes a license is allowed to be persisted to disk once it's been acquired by the license server.
[ Workflow ]
Now that the content has been packaged with a DRM policy that allows for offline caching (persistance) of a license, the video player simply has to acquire the license before the network connection is lost.  This can be accomplished via the typical API calls that the Video Player Application Developer would use to do a normal DRM license acquisition (DRMManager.loadVoucher()).
For example, by using the DRMManager ActionScript3 API: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/drm/DRMManage r.html
For other platforms supported by Adobe Access DRM (iOS, Android, etc...), please refer to the appropriate documentation around playback of DRM content on how to pre-fetch the DRM license.
[ Workflow - iOS ]
Enabling offline playback using the Primetime Media Player SDK (PSDK) for iOS requires a bit of self-extraction & instantiation of the DRM Metadata from the m3u8.  The reason for this is that as of PSDK v1.2, the PSDK APIs do not expose an mechanism for extracting the DRM metadata.
You must manually (outside of the PSDK) get access to the DRM Metadata, instantiate a DRMContentData, and then use the DRMManager class to obtain a license for your content.  Afterwards, you may download your HLS content and stream it to your video player application locally.  Since the DRM license was pre-acquired before playback of the downloaded HLS content, your video player application does not require a network connection to acquire a DRM license.  Below is a code sample of obtaining the DRM Metadata from the m3u8 manifest and then using it with the DRMManager singleton.
/*          Main entry points, playlistURL is url to a top level m3u8. */
void PlayContent(NSURL* playlistURL)
          DRMManager* drmManager = [DRMManager sharedManager];
          if ([drmManager isSupportedPlaylist:playlistURL])
  // First we need a handler for any errors that may occur
                    DRMOperationError errorHandler = ^(NSUInteger major, NSUInteger minor, NSError* nsErr)
  /*          report error. */
  /*          Synchronous call to DRM manager to extract DRM metadata out of the playlist. */
                    [_drmManager getUpdatedPlaylist:playlistURL
                                                                                  error:errorHandler
                                                                                updated:^(NSURL *newPlaylist, DRMMetadata *newMetadata)
                               (void) newPlaylist; /*          updated URL is not used for this code sample. */
                               if (newMetadata)
                                                  Assumes we are going to try to satisfy requirements to acquire license on the first policy in the metadata.
                                                  If there are multiple policies in the metadata, only 1 of them need to be satisfied for the license request to
                                                  go through.                                          
                                         DRMPolicy* drmPolicy = NULL;
                                         for (id object in newMetadata.policies) {
                                                   DRMPolicy* drmPolicy = (DRMPolicy*)object;
                                                   break;
                                         if (drmPolicy == NULL)
                                                   /*          report error, this metadata is malformed. DRM metadata must contain at least 1 policy*/
                                         if (drmPolicy.authenticationMethod != ANONYMOUS)
However, please note that the above only describes the DRM license handling for offline playback.  The actual playback of video using the Primetime client SDK is not officially supported.  You will have to use your own mechanism of saving and playback back HLS content locally within the application.
Theoretically, it is possible to save the HLS stream to the app, and then embed an HTTP server to the app to stream the HLS content back into the application.  However, the Primetime client SDK doesn't not expose a way to do this directly, since it's not yet supported.
cheers,
/Eric.

no, the headers, here's a picture of the headers on this page. When I use SEO for Firefox, it sees them on every other page but never on my iweb sites.
Quickpost this image to Myspace, Digg, Facebook, and others!

Similar Messages

  • How do i create a stensil that can be added into diffrent files of adobe reader?

    I want to create a stencil that can be used in multiple adobe files for quality check purpose. Will be helpfull if somebody helps me out on this.

    why are you saying
    Pat Willener wrote:
    Please stay in your own topic, and answer the questions asked!

  • When I sync my iphone 4S using iTunes it only syncs 8.5GB of music, not the entore library as specified.  Is there a capcity default limit of the amount of storage that can be used for music and if so how do I change it?

    When I sync my iphone 4S using iTunes it only syncs 8.5GB of music, not the entore library as specified.  Is there a capcity default limit of the amount of storage that can be used for music and if so how do I change it?

    The only limit is that of the device. No restrictions on how much of it you can use for music. Is part of your music library unchecked?
    tt2

  • I want to create fillable PDF that can be used by many people running on both MAC and PC.  What Adobe product should I use?

    want to create fillable PDF that can be used by many people running on both MAC and PC.  What Adobe product should I use?

    Hans-Gunter
    Thanks so much.  I downloaded Acrobat XI.  It's been "extracting" for the past 30 minutes (even with a fast wi-fi).  Hope this is not a problem.
    Anne

  • System Image Restore Fails "No disk that can be used for recovering the system disk can be found"

    Greetings    
                                        - Our critical server image backup Fails on one
    server -
    Two 2008 R2 servers. Both do a nightly "Windows Server Backup" of Bare Metal Recovery, System State, C:, System Reserved partition, to another storage hard drive on the same machine as the source. Active Directory is on the C: The much larger D: data
    partition on each source hard drive is not included.
    Test recovery by disconnecting 500G System drive, booting from 2008R2 Install DVD, recovering to a new 500G SATA hard drive.
    Server A good.
    Server B fails. It finds the backed-up image, & then we can select the date we want. As soon as the image restore is beginning and the timeline appears, it bombs with "The system image restore failed. No disk that can be used for recovering the system
    disk can be found." There is a wordy Details message but none of it seems relevant (we are not using USB etc).
    At some point after this, in one (or two?) of the scenarios below, (I forget exactly where) we also got :
    "The system image restore failed. (0x80042403)"
    The destination drive is Not "Excluded".
    Used   diskpart clean   to remove volumes from destination drive. Recovery still errored.
    Tried a second restore-to drive, same make/model Seagate ST3500418AS, fails.
    Tried the earliest dated B image rather than the most recent, fail.
    The Server B backups show as "Success" each night.
    Copied image from B to the same storage drive on A where the A backup image is kept, and used the A hardware to attempt restore. Now only the latest backup date is available (as would occur normally if we had originally saved the backup to a network location).
    Restore still fails.         It looks like its to do with the image rather than with the hardware.
    Tried unticking "automatically check and update disk error info", still fail.
    Server A  SRP 100MB  C: 50.6GB on Seagate ST3500418AS 465.76GB  Microsoft driver 6.1.7600.16385   write cache off
    Server B  SRP 100MB  C: 102GB  on Seagate ST3500418AS 465.76GB  Microsoft driver 6.1.7600.16385   write cache off
    Restore-to hard drive is also Seagate ST3500418AS.
    http://social.answers.microsoft.com/Forums/en-US/w7repair/thread/e855ee43-186d-4200-a032-23d214d3d524      Some people report success after diskpart clean, but not us.
    http://social.technet.microsoft.com/Forums/en-US/windowsbackup/thread/31595afd-396f-4084-b5fc-f80b6f40dbeb
    "If your destination disk has a lower capacity than the source disk, you need to go into the disk manager and shrink each partition on the source disk before restoring."  Doesnt apply here.
    http://benchmarkreviews.com/index.php?option=com_content&task=view&id=439&Itemid=38&limit=1&limitstart=4
    for 0x80042403 says "The solution is really quite simple: the destination drive is of a lower capacity than the image's source drive." I cant see that here.
    Thank you so much.

    Hello,
    1. While recovering the OS to the new Hard disk, please don't keep the original boot disk attached to the System. There is a Disk signature for each hard disk. The signature will collide if the original boot disk signature is assigned to the new disk.
    You may attach the older disk after recovering the OS. If you want to recover data to the older disk then they should be attached as they were during backup.
    2. Make sure that the new boot disk is attached as the First Boot disk in hardware (IDE/SATA port 0/master) and is the first disk in boot order priority.
    3. In Windows Recovery Env (WinRE) check the Boot disk using: Cmd prompt -> Diskpart.exe -> Select Disk = System. This will show the disk where OS restore will be attempted. If the disk is different than the intended 2 TB disk then swap the disks in
    correct order in the hardware.
    4. Please make sure that the OS is always recovered to the System disk. (Due to an issue: BMR might recover the OS to some other disk if System disk is small in size. Here the OS won't boot. If you belive this is the case, then you should attach the
    bigger sized disk as System disk and/or exclude other disks from recovery). Disk exclusion is provided in System Image Restore/Complete PC Restore UI/cmdline. 
    5. Make sure that Number and Size of disks during restore match the backup config. Apart from boot volumes, some other volumes are also considered critical if there are services/roles installed on them. These disks will be marked critical for recovery and
    should be present with minimum size requirement.
    6. Some other requirements are discussed in following newsgroup threads:
    http://social.technet.microsoft.com/Forums/en-US/windowsbackup/thread/871a0216-fbaf-4a0c-83aa-1e02ae90dbe4
    http://social.technet.microsoft.com/Forums/en-US/windowsbackup/thread/9a082b90-bd7c-46f8-9eb3-9581f9d5efdd
    http://social.technet.microsoft.com/Forums/en-US/windowsbackup/thread/11d8c552-a841-49ac-ab2e-445e6f95e704
    Regards,
    Vikas Ranjan [MSFT]
    ------- This information is provided as-is without any warranties, implicit or explicit.-------

  • How do I create a letter that can then be attached to email

    How do I create a letter that then be attached to email? Thanks, Newbie

    Use a text editor or word processing program to create the letter. Then attach it to your email.
    Why are you asking in the Windows Compatibility forum?

  • Are there mac keyboard stickers that can be used for worn-out keyboards?

    Are there Mac keyboard lette stickers that can be used on worn-out keyboards?

    http://www.thekeyboardcompany.com/keyboard-stickers/replacement-keyboard-sticker s/?gclid=CPrkpciwtL4CFSsV7AodpBcA8w
    http://www.amazon.com/REPLACEMENT-KEYBOARD-STICKERS-BACKGROUND-NOTEBOOK/dp/B003D T15D6

  • How do I create a form that can be edited, then mailed, then edited again?

    I am trying to create a form that would be emailed to one person, they would complete part of it, email it on to a second user who would then complete another part based on the input from the first, and then forward it onto a third for their input.
    the issue I have is that once the second person enters their information, they can not save their additions and continue the process.
    any help would be greatly appreciated.

    Interactive forms cannot be saved locally using Reader. To do local save you either have to have Acrobat on each desktop or have the form Reader-extended to enable local save in Reader. A form is Reader-enabled using the LiveCycle Reader Extensions server component.
    Steve

  • Method that can be used for multiple views

    Hello,
    I've got three tables: Person, Company, Adress. Each Person/Company can have mulitple adresses. So Adress has a foreign key to Person and Company. In ADF BC I've created two views for Adress: PersonAdressView, that has PersonView as Master and CompanyAdressView that has CompanyView as Master. Now I want a copy functionality, that validates and copies a given Adress row. I want this functionality for PersonAdressView and for CompanyAdressView. Is there a possiblity to write generic code that can do this?
    The logic that works on CompanyAdressView/CompanyAdressViewRowImpl and on PersonAdressView/PersonAdressViewRowImpl is the same. But the java datatypes are in so many lines different that it is almost impossible to use common code. Is it possible to resolve this problem with common base classes? If it is, I have no idea how to create them.
    regards
    Jörg

    Hi,
    create a custom version of ViewObject (extending ViewObjectImpl) and base the two ViewObjects on your custom VO (extend).
    Frank

  • Is there a standard competency catalog available in Oracle Fusion TM that can be used for IT Services Organizations?

    We are planning to build a competency catalogue to be used in our company, which is an IT services organization. Is there a standard competency catalogue available in HCM  which can be used by IT Services organization? Or should it be built from scratch using place holders available in HCM?
    - Vikram

    Is the database on the server with the Niagara chipset ? If so, there are known performance issues for this combination. See MOS Doc 781763.1 (Migration from fast single threaded CPU machine to CMT UltraSPARC T1 and T2 results in increased CPU reporting) for details.
    Bottom line, the Niagara chipset is not recommended for database servers - they are fine for application or web servers.
    HTH
    Srini

  • How do I create fillable sections that can be filled or ticked online and then signed?

    Hi, I'm trying to make some fillable sections on a pdf file that is to be filled in online.  How do I do this?

    In Acrobat you can Reader-enable the file. For Acrobat 11, the menu item to do this is: File > Save as Other > Reader Extended PDF > Enable More Tools
    Do this as the last step before you distribute the form. Note that this isn't needed for Reader 11 since it is capable of saving a non-enabled PDF form that was created with Acrobat (as opposed to LiveCycle Designer).

  • How do I create a form that can be filled out, saved with data, and returned?

    We don't want to use EchoSign or any kind of service or account. We just want to send a form to clients via email and have them returned to us with their data. Simple. Intuitive. Requires virtually no explanation or bother. Why can't I find any way to do this in Acrobat any more? Is it hidden, or completely disabled? (Acrobat Pro 10.1.7)

    In Acrobat you can Reader-enable the file. For Acrobat 11, the menu item to do this is: File > Save as Other > Reader Extended PDF > Enable More Tools
    Do this as the last step before you distribute the form. Note that this isn't needed for Reader 11 since it is capable of saving a non-enabled PDF form that was created with Acrobat (as opposed to LiveCycle Designer).

  • How do I create an application that can be printed AND filled out online via my website?

    Is InDesign the best program to do this in?

    Webform with HTML would be best.
    But depends on a lot of things...
    InDesign is not a web authoring program.
    But it can produce fillable forms ... which are PDF.
    So if you want it on your site - a webform is best.
    If you want it as link they fill out and submit then InDesign.

  • How do i create a header that can be seen by seo for firefox?

    So I've tried to make a bunch of different headers in iweb but they never actually publish as headers but as something different. When I run SEO for firefox it never detects any headers in my entire page. Is there a way to create a true header in iweb?

    no, the headers, here's a picture of the headers on this page. When I use SEO for Firefox, it sees them on every other page but never on my iweb sites.
    Quickpost this image to Myspace, Digg, Facebook, and others!

  • How to make a java program, that can be used by c++ application

    I'm developing a Java web application (WEBapp), but I have also a c++ program.
    C++ program must use WEBapp method to communicate on the web.
    How to make a Java public function that accept value, elaborate, then return the resul to c++ application?

    jschell wrote:
    You have C code.
    You have Java code.
    The two must communicate.I have a c++ program, and a Java program.
    C++ program wants to communicate on the web (send text), and I'm trying to add this functionality to it creating a Java program.
    NOW THE PROBLEM? How c++ program can use java-program (in local) to send data on the web?
    You can just JNI to communicate either from java to C++ or from C++ to java. That is direct communication in that there is a single process involved. Thus you will no longer have a java application and a C++ application but rather a single application.I don't know JNI, i found http://java.sun.com/docs/books/jni/ and I think is too difficult to implement?
    You can use files or sockets to communicate. Using sockets allows for any number of additional protocols including the previously mentioned web services. Those methodologies would allow more than one application to exist.I developed yesterday a java-side-interface using socket (in local host 127.0.0.1). So the c++ program must write or read to/from the socket to comunicate to java (then the java program send data on the web).
    Finally it might be the case that you have a C++ application which you cannot modify. In that case then you MUST use whatever input/output mechanism that it supports. There is no choice. And until you have fully determined what those mechanisms are it is pointless to discuss a solution.I can modify the application, but I don't have developed it. The c++ application use a third-part dll (taken from SKYPE) to comunicate on the web: I have to remove the dipendence from this dll, and add the java program: java program must substitute the dll. It must be non-invasive to the c++ program. DLL calls can be "send(data)" or "receive(data)" or similar.
    For this do you think that JNI is a must, or I can use soket on local host?

Maybe you are looking for

  • This field cannot be updated as there are open sales order lines

    When trying to enable Item Attributes then I am getting a message "This field cannot be updated as there are open sales order lines". I cancelled the Sales Order ( which was having only 1 sales order line and that is also cancelled) but still I am ge

  • SBO object for outgoing payment

    HI All, I am using SBO 2004. I am trying to add Outgoing payment through DI. There is only one object for this Payment.When i try to intialise Payment object, I couldn't see outgoing payment, it shows only incoming payment. How will initialise outgoi

  • Status Message in ALE

    Whenever we post a order, and if that Order contains some error, it should throw a message to workflow inbox, telling the Order Number and the item Number for Error. For Eg., Actual error defined in SAP is "Document contains same order item more than

  • Scheduling the MAILS

    Hi, I have the requirement that I have to trigger one mail every friday to the team as a reminder. How can I do the scheduling of the mails and give the link in the subject to update. Please suggest. Thanks.

  • JSF vs Struts - both with tiles

    I'm running in the problem migrating from Struts to JSF. In struts I have the following fragments: jsp (actualy in the resulting html): log4j struts-config: <forward name="log4j-page" path="doc.log4j"/> tiles-config: <definition name="doc.log4j" exte