FairPlay Streaming

RSS for tag

Securely deliver streaming media to devices through the HTTP Live Streaming protocol using FairPlay Streaming (FPS).

FairPlay Streaming Documentation

Posts under FairPlay Streaming tag

31 Posts
Sort by:
Post marked as solved
3 Replies
641 Views
Hello!We are developing a propietary KSM for our company. We have already access to our FairPlay certificate and ASK but we would like to not use production credentials in development process. We have found a development certificate (Common Name: Partner2) in "FairPlay_Streaming_Server_SDK_v4.2.0" but we have not found the associated ASK for that certificate.Where can we found the ASK?Thanks!
Posted
by diegofer.
Last updated
.
Post not yet marked as solved
0 Replies
99 Views
Hi, We are trying to adopt FPS for mp4 content protection playing on safari browser of Mac OS. I have verified that native functions of safari browser support the decryption for AES-128 encrypted TSs based on EME of HTML5 and HLS mechanism, where the CEK stores in http server described in the m3u8 manifest and is delivered to the browser in plain. Although it is a simple and easy solution to protect the mp4 contents, the security is still matter because the key is delivered in plain. So we decided to implment a key server to issue the CKC message after receiving SPC as safari browser's key request. I have a question before starting it. Q: The Encrypted AES-128 key in the Table 2-3. SPC container structure of FairPlay Streaming Programming Guide document says that "This key is itself encrypted, using RSA public key encryption with Optimal Asymmetric Encryption Padding (OAEP)". It means we needs a private key to decrypt it. I understand it if the client is a proprietary application so that the public key would be one of the FPS development credential, which will be issued by Apple according to our request. Because the client application can use the public key during the implementation. But what if the client is the safari browser? We cannot use any kind of new issued public key for the safari browser. I guess Mac OS uses some fixed public key which is already issued by Apple for safari browser's FPS. Now how can I get the counter private key? It could not be contained in the FPS credential. Because it should be a fixed one, not new generated one.
Posted Last updated
.
Post not yet marked as solved
0 Replies
127 Views
Hello I have a HLS manifest with multiple audio and multiple subtitle tracks. I use AVPlayer on iOS to play this HLS asset. On the iOS app I have the freedom to display selective subtitle and audio track list to the user but when the user uses AirPlay on the iOS, all the subtitle and audio tracks available in the HLS manifest is displayed to the user on the Apple TV (or any AirPlay compatible device). Let me explain with one example. Say, the HLS manifest has the following tracks: English, Spanish & German audio tracks English, Italian, Spanish & German subtitle tracks When the user uses AirPlay, I want to hide German language and display only the following tracks on the Apple TV: English & Spanish audio tracks English, Italian & Spanish subtitle tracks The primary intent here is that the user should not be able to see German language anywhere on the target AirPlay device. How to achieve this in code? Note: It's difficult to modify the source HLS manifest file.
Posted
by sudipta_s.
Last updated
.
Post not yet marked as solved
2 Replies
572 Views
Trying to play some non DRM video from HLS url but AVPlayer is not playing the video, Exactly getting this error :- "Player Item Error: Optional("The operation couldn’t be completed. (CoreMediaErrorDomain error -12971.)")" . No idea what is happening here and also what does error -12971 means exactly?
Posted
by asifMimi.
Last updated
.
Post marked as solved
4 Replies
811 Views
Hi,Refering to the "FairPlay Streaming Certificate Generation Guide"On page 7, we have created newreq.inf file and generated certreq.csr However, we didn't apply "certreq -accept newcert.pem"Then, we continue to create FPS Certificate by uploading our certreq.csr.We received the ASk and fairplay.cerWill this be a problem?Is there anyway we can amend the private key? Or do we need to resubmit FPS Deployment package to redo the process?Thanks.
Posted
by Efendy Se.
Last updated
.
Post not yet marked as solved
0 Replies
217 Views
I have an iOS app that can play audio books as FairPlay DRM'd audio streams. I'm using AVContentKeySession to fetch keys and AVQueuePlayer to play. It works great on iOS, but on Catalyst (Monterey 12.3.1, M1 Max MacBook Pro) it crashes. When it happens in debug, I get a message "Too few bits left in input buffer" printed to the console, and an exception is thrown in the guts of what appears to be core media. Here's the output from [NSThread callStackSymbols] when paused on an exception breakpoint at that point: 0   ???                       0x0000000156b8cc9c 0x0 + 5749918876, 1   BRFree                    0x000000010445cf08 main + 0, 2   AudioCodecs               0x0000000157918c24 _ZL11GetPropertyPvjPjS_ + 52, 3   AudioToolboxCore          0x00000001862536a4 _ZN15ADTSAudioStream11ParseHeaderER27AudioFileStreamContinuation + 1060, 4   AudioToolboxCore          0x000000018624259c AudioFileStreamParseBytes + 412, 5   MediaToolbox              0x00000001915f7d98 FigManifoldCreateForICY + 2176, 6   MediaToolbox              0x00000001915f7718 FigManifoldCreateForICY + 512, 7   MediaToolbox              0x00000001916bbd78 FigPlayerStreamCreate + 315920, 8   MediaToolbox              0x0000000191a269a0 FigMetadataConverterCreateForQuickTimeToFromiTunes + 45888, 9   MediaToolbox              0x0000000191a4a290 FigMetadataConverterCreateForQuickTimeToFromiTunes + 191536, 10  MediaToolbox              0x0000000191a2a470 FigMetadataConverterCreateForQuickTimeToFromiTunes + 60944, 11  MediaToolbox              0x0000000191a28c34 FigMetadataConverterCreateForQuickTimeToFromiTunes + 54740, 12  MediaToolbox              0x0000000191a413b4 FigMetadataConverterCreateForQuickTimeToFromiTunes + 154964, 13  MediaToolbox              0x0000000191a2f144 FigMetadataConverterCreateForQuickTimeToFromiTunes + 80612, 14  MediaToolbox              0x00000001917cae64 FigAlternateFilterMonitorCreateForThermalNotification + 30428, 15  MediaToolbox              0x00000001917ccb44 FigAlternateFilterMonitorCreateForThermalNotification + 37820, 16  MediaToolbox              0x00000001917cb134 FigAlternateFilterMonitorCreateForThermalNotification + 31148, 17  CFNetwork                 0x0000000189937cd4 _CFHostIsDomainTopLevelForCertificatePolicy + 27728, 18  Foundation                0x0000000185ba980c __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ + 24, 19  Foundation                0x0000000185ba96b4 -[NSBlockOperation main] + 104, 20  Foundation                0x0000000185ba9644 __NSOPERATION_IS_INVOKING_MAIN__ + 24, 21  Foundation                0x0000000185ba88dc -[NSOperation start] + 788, 22  Foundation                0x0000000185ba85c0 __NSOPERATIONQUEUE_IS_STARTING_AN_OPERATION__ + 24, 23  Foundation                0x0000000185ba8478 __NSOQSchedule_f + 184, 24  libdispatch.dylib         0x00000001099f60f4 _dispatch_block_async_invoke2 + 148, 25  libdispatch.dylib         0x00000001099e2394 _dispatch_client_callout + 20, 26  libdispatch.dylib         0x00000001099eb778 _dispatch_lane_serial_drain + 980, 27  libdispatch.dylib         0x00000001099ec814 _dispatch_lane_invoke + 492, 28  libdispatch.dylib         0x00000001099f9fc8 _dispatch_root_queue_drain + 408, 29  libdispatch.dylib         0x00000001099f9d3c _dispatch_worker_thread + 264, 30  libsystem_pthread.dylib   0x00000001094e1890 _pthread_start + 148, 31  libsystem_pthread.dylib   0x00000001094ebaa8 thread_start + 8 In the Debug Navigator, the top of the stack looks a little different: #0 0x0000000184bdeb3c in __cxa_throw () #1 0x000000015791941c in ACMP4AACLowComplexityDecoder::GetProperty(unsigned int, unsigned int&, void*) () #2 0x0000000157918c24 in GetProperty(void*, unsigned int, unsigned int*, void*) () #3 0x00000001862536a4 in ADTSAudioStream::ParseHeader(AudioFileStreamContinuation&) () #4 0x000000018624259c in AudioFileStreamParseBytes () #5 0x00000001915f7d98 in ___lldb_unnamed_symbol598$$MediaToolbox () What's going wrong here? Can anyone give me direction on what to fix? Or is FairPlay audio not even expected to work in Catalyst at this point?
Posted Last updated
.
Post not yet marked as solved
1 Replies
210 Views
Website serving Apple FairPlay videos here... I have three users reporting problems with playback using Safari on iPad with iOS 15.4. It seems they can no longer use Chrome (where we serve the same videos using DASH+CENC) either. That is all I know at this time. Not finding anything from google except the 15.1 FairPlay debacle... Just fishing. Anything similar for anyone else? Thank you kindly.
Posted
by steward.
Last updated
.
Post not yet marked as solved
0 Replies
141 Views
Hello everyone, I have downloaded the SDK 4.4.1 from Apple and I'm trying to implement fairplay streaming with encrypted videos. I have arrived the a section whereby it is asking to test Key Security Modules. I cannot get hold of any pkeyPem variable with a value and also cannot find the spc_internal_values_v2.txt file. Can anyone help me out? Thank you very much!
Posted
by SmartBze.
Last updated
.
Post not yet marked as solved
1 Replies
472 Views
Hi All,I'm testing the KSM implementation in the spc_internal_values_v2.txt file provided by the sdk we have spc payload data,but the ksm needs the entire spc container message to process the request(including the version, IV, key and certificate hash).is there a way to test the implementation?Thanks in advance
Posted
by rotem.
Last updated
.
Post not yet marked as solved
0 Replies
248 Views
Hi, I have a video streaming application and a part of code which use FairPlay + DRM. Im trying stream DRN content on appletv and It works well on iOS 13, but on iOS 15 i see nothing and catch internal player error: Error Domain=AVFoundationErrorDomain Code=-11870 "Operation failed" UserInfo={NSLocalizedFailureReason=An unknown error has occurred (808), NSLocalizedDescription=Operation failed, NSUnderlyingError=0x283902700 {Error Domain=NSOSStatusErrorDomain Code=808 "(null)"}}
Posted
by AlexMaz.
Last updated
.
Post marked as solved
3 Replies
521 Views
I've been maintaining adaptive HLS+FairPlay streams with audio and video for years. My implementation works great. However, I'm now also implementing captions or subtitles, and I'm having trouble with the later. I'm actually able to generate my HLS streams with WebVTT subtitles, and they work great. But as soon as I encrypt the streams, Apple players stop working (forever stall). And my fairplay implementation works perfectly when no subtitles are involved. I'm not encrypting the webvtt chunks: they travel as plain text, as stated in Apple guidelines. I believe this may be the issue: encrypted a/v streams with an unencrypted subtitles stream. However, encrypting plain text subtitles with SAMPLE-AES has no sense to me, so far I was unable to find a single HLS example online with subtitles that also happen to have FairPlay encryption. All documents I have about FairPlay also say nothing about this, I've also tried applying CEA-608 closed captions in the video stream, and this actually works great with FairPlay. But CEA-608 has its own issues, and so I would like to migrate that tech to WebVTT: which also works great, except when FairPlay is involved. I understand that Apple also establishes that I could use TTML (ISMC1) inside fMP4, which I suspect may be SAMPLE-AES encryptable. However, given my customers use cases, I need to use TS format for HLS, and so I can't use fMP4. With all this in mind, do anybody know how to properly configure HLS+FairPlay with a plain text WebVTT subtitles stream? Please note this is about live streaming, and not VOD nor offline playback. Thanks.
Posted Last updated
.
Post not yet marked as solved
0 Replies
256 Views
I've been searching all over to find an answer to this question. I know that FairPlay/HLS supports audio Streams since there's obviously audio in video, but I'm wondering if this is practical? Also is there any way to stream FairPlay DRM encrypted content without HLS? or if I use HLS could I create only a single audio bitrate format in order to save on hosting costs? I work on and Audio Book app that requires DRM for some content. Also any links to documentation, videos, tutorials, blog posts... etc on the topic would be awesome too. Very much appreciate anyone who takes the time to answer this. I wish this was more explicitly talked about on the Apple Dev site, but it seems very geared towards video streaming.
Posted
by awhb122.
Last updated
.
Post not yet marked as solved
1 Replies
961 Views
Trying to download an encrypted HLS stream we faced the following issue: When we start a new download, calling resume() function of AVAssetDownloadTask, the download process gets stuck (not every time) and neither of urlSession(_:assetDownloadTask:didFinishDownloadingTo:) or urlSession(_:task:didCompleteWithError:) delegate functions (AVAssetDownloadDelegate) are getting called. There are cases where not even the urlSession(_:assetDownloadTask:didLoad:totalTimeRangesLoaded:timeRangeExpectedToLoad:) delegate function is getting called. Any suggestions on how to troubleshoot?
Posted
by gcharita.
Last updated
.
Post not yet marked as solved
0 Replies
212 Views
When recording 4K 60fps on iPhone 11 Pro, 12 and 13 it does not provide a stable frame rate of 60fps. Checking the Meta data it ranges from 52-58. Are there any settings that can force 60 frames or anything I can do to get a stable frame rate of 60fps. it also appears when trimming the video the frame rate drops as well.
Posted Last updated
.
Post marked as solved
16 Replies
8.8k Views
Hi, IOS 15 Safari does not support Fairplay DRM and gives an error, other browsers like Chrome also do not work. Since IOS 15 released today, we as DRM providers are having a lot of complaints from our customers. The issue does not happen on IOS app, only for IOS browser. We have seen the same issue across multiple DRM providers, so issue is at the end of Apple and only occurs for IOS 15.
Posted Last updated
.
Post not yet marked as solved
0 Replies
234 Views
I recently successfully registered for the FPS certificate but I lost the ASK. How can I find it? Or I need to revoke the certificate.
Posted
by deltah.
Last updated
.
Post not yet marked as solved
0 Replies
952 Views
I am encoding CMAF contents and when I try to stream a DRM'd video on Safari, nothing happens and I don't even have an error code. It is working without any problem on Chrome (widevine). Our partners can stream the content on their side but we can't, on Macbook or iPhone... We have tested CMAF on the following iOS versions on various device types (phones and tablets): .3 .1 .1 .1 • 14 • 14.3 It was working without any problem. We had an issue on: Macbook pro M1 - Big Sur 11.3.1 Safari Version 14.1 (16611.1.21.161.6) iPhone 12.- iOS 14.5.1 Iphone 12. - iOS 14.4.2 Macbook Air Intel 2020 - Big Sur 11.2.3 Sometimes, it is working when I reload the page ... I don't know what happens...
Posted Last updated
.