Support for on-device encrypted video streams

Originator:dimitribouniol
Number:rdar://10919636 Date Originated:Feb 23, 2012
Status:Open Resolved:
Product:iPad SDK Product Version:5
Classification:Enhancement Reproducible:N/A
 
Summary:
There are essentially two ways to load video into AVFoundation in iOS: from the disk, or from a server.
If you wanted to load it from the disk, you get fluid playback, fast-forward/reverse, live random seeking, and thumbnail generation essentially for free. However, you cannot open an encrypted file, something that requires a server serving an HTTP Live Streaming video. If you went the server route though, you loose benefits - namely fast-forward/reverse, live random seeking, and thumbnail generation, however, you can also not serve it from the device. The only workaround would be to build a server from scratch running inside the application to serve the .ts files, and essentially recreate HTTP live streaming from scratch. However, this still leaves out the same features an on-device video stream would have.

Steps to Reproduce:
Try to do the above. Cry, because the implementation breaks randomly.

Expected Results:
An easy way to prepare encrypted content for the device directly. This can either be directly through AVFoundation (say, export as encrypted), or with a tool for the Mac (just like HTTP Live Streaming has), that would Just Work(TM) with an AVURLAsset.
Alternatively, a toolkit to serve data directly to AVAsset would also be beneficial, as requests wouldn't time out (as they do when you implement a server), and could wait for the developer to provide the necessary data based on the offset and size requested.

Actual Results:
Currently not possible in practice.

Regression:

Notes:

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!