Streaming

RSS for tag

Deep dive into the technical specifications that influence seamless playback for streaming services, including bitrates, codecs, and caching mechanisms.

Streaming Documentation

Posts under Streaming subtopic

Post

Replies

Boosts

Views

Activity

App for FILMS AND TV
I need help with these question from apple. Does your app offer any paid service? Who are the users that will use the paid services in the app? Where can users purchase the services that can be accessed in the app? What specific types of previously purchased services can a user access in the app? What paid content, subscriptions, or features are unlocked within your app that do not use in-app purchase?
0
0
568
Feb ’23
FairPlay and Extended Clear Lead
We're experimenting with a stream that has a large (10 minutes) clear portion in front of the protected section w/Fairplay. We're noticing that AVPlayer/Safari trigger calls to fetch the license key even while it's playing the clear part, and once we provide the key, playback fails with: name = AVPlayerItemFailedToPlayToEndTimeNotification, object = Optional(<AVPlayerItem: 0x281ff2800> I/NMU [No ID]), userInfo = Optional([AnyHashable("AVPlayerItemFailedToPlayToEndTimeErrorKey"): Error Domain=CoreMediaErrorDomain Code=-12894 "(null)"]) - name : "AVPlayerItemFailedToPlayToEndTimeNotification" - object : <AVPlayerItem: 0x281ff2800> I/NMU [No ID] ▿ userInfo : 1 element ▿ 0 : 2 elements ▿ key : AnyHashable("AVPlayerItemFailedToPlayToEndTimeErrorKey") - value : "AVPlayerItemFailedToPlayToEndTimeErrorKey" - value : Error Domain=CoreMediaErrorDomain Code=-12894 "(null)" It seems like AVPlayer is trying to decrypt the clear portion of the stream...and I'm wondering if it's because we've set up our manifest incorrectly. Here it is: #EXTM3U #EXT-X-VERSION:8 #EXT-X-TARGETDURATION:20 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-INDEPENDENT-SEGMENTS #EXT-X-PLAYLIST-TYPE:VOD #EXT-X-MAP:URI="clear-asset.mp4",BYTERANGE="885@0" #EXT-X-DEFINE:NAME="path0",VALUE="clear-asset.mp4" #EXTINF:9.98458, #EXT-X-BYTERANGE:81088@885 {$path0} #EXTINF:19.96916, #EXT-X-BYTERANGE:159892@81973 {$path0} #EXTINF:19.96916, #EXT-X-BYTERANGE:160245@241865 {$path0} #EXT-X-DISCONTINUITY #EXT-X-MAP:URI="secure-asset.mp4",BYTERANGE="788@0" #EXT-X-DEFINE:NAME="path1",VALUE="secure-asset.mp4" #EXT-X-KEY:METHOD=SAMPLE-AES,URI="skd://guid",KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1" #EXTINF:19.96916, #EXT-X-BYTERANGE:159928@5196150 {$path1} #EXT-X-ENDLIST
0
0
683
Dec ’23
Getting CoreMediaErrorDomain -15628 playback failure in iOS 26 (AVPlayer, HLS stream)
Hi, After updating to iOS 26, our app is experiencing playback failures with AVPlayer. The same code and streams work fine on iOS 18 and earlier. Error: Domain [CoreMediaErrorDomain] Code [-15628] Description [The operation couldn’t be completed.] Underlying Error Domain [(null)] Code [0] Description [(null)] Environment: iOS version: iOS 26 Stream type: HLS (m3u8) with segment (.ts) files Observed behaviour: We don’t have concrete steps to reproduce the issue, but so far, we have observed that this error tends to occur under low network conditions.
0
6
979
Sep ’25
AirPlay 2: video streaming - logs / debugging
Hello, We're developing a video streaming service. Can't get the video to stream on AirPlay2-enabled TVs, there is only a loader visible on the tV. We can only get the sounds to stream to AirPlay2 speakers. Media Stream Validator and HLS report on the playlists, shows that the video segments are recognized as something but can't process them. "Processed 0 of 600 segments" etc. We're at a loss on how to debug this. Is there any way to get access to AirPlay 2 logs to see what isn't working?
0
0
1.2k
Apr ’22
FairPlay Streaming Credentials Approval — no response after 5 days
Hi, I submitted a FairPlay Streaming credentials approval request 5 days ago (through the "Request FairPlay Streaming credentials approval" form) and haven't received any response yet. Could someone from the Security Engineering team please check the status? Team ID: US7RGQX775 We're an online education platform and use a third-party DRM/video hosting provider (VdoCipher) that already operates a working, tested FairPlay Streaming KSM on our behalf — we just need the certificate to hand over to them. Thanks in advance!
0
0
449
Aug ’26
Playing Offline HLS Content with AES-128 encryption on iOS
Hi Team, Offline playback with AES-128 encryption I'm downloading HLS content that is AES-128 encrypted and using the AVAssetResourceLoaderDelegate method shouldWaitForLoadingOfRequestedResource to parse the manifest to fetch the AES key URL. After fetching the key URL, I'll download and save the AES key locally. I will use the locally saved key to start the offline playback. Since AVContentKeySession has been there for quite some time, is it okay to use the resource loader delegate method to parse and download the AES key? Is there any chance that Apple will deprecate the downloading keys through the resource loader delegate? Thanks, Deepak.N
0
0
674
Nov ’23
[tvOS] AVPlayerViewController displays time period label for Live stream
During Live Stream playback on tvOS using AVPlayerViewController we noticed strange time period label: 12:30 PM - 1:00 PM next to the live indicator. It seems that during the start of the playback, the value is set to a 30-minute time period. Questions: What does 12:30 PM - 1:00 PM mean? Can we hide this label or manipulate it using tags in HLS playlist? We do not understand where this value (12:30 PM - 1:00 PM) comes from. Here is an example of our playlist: #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:3 #EXT-X-MEDIA-SEQUENCE:9091 #EXT-X-PROGRAM-DATE-TIME:2023-02-21T12:39:06.640Z As you can see it's not a EXT-X-PROGRAM-DATE-TIME Thanks!
0
0
777
Mar ’23
Use of Fairplay Streaming Test Streams with the Apple FPS Client sample code
Hello all, I am a completely new to iOS development, and I need to make an app that will be playing encrypted content using Fairplay. Right now I am using the Sample client in the latest FPS Server SDK (HLSCatalog), and from what I understand the default sources in Streams.plist are not protected. There's an entry with is_protected=YES and where I can replace the playlist_url, but I was wondering if I could use the .m3u8 files in the FPS Test Content found at https://developer.apple.com/streaming/fps/ ? If so, I don't really know how to. In one of the .m3u8 files of the Test Content, I could find the "content_key_id_list" example value that's also mentioned in the client's README (skd://twelve), which is why I'm asking. Thanks in advance!
0
0
1k
Jan ’24
AVKit - PiP with AVSampleBufferDisplayLayer Error
AVPictureInPictureControllerContentSource *contentSource = [[AVPictureInPictureControllerContentSource alloc] initWithSampleBufferDisplayLayer:self.renderView.sampleBufferDisplayLayer playbackDelegate:self]; AVPictureInPictureController *pictureInPictureController = [[AVPictureInPictureController alloc] initWithContentSource:contentSource]; pictureInPictureController.delegate = self; (void)pictureInPictureController:(AVPictureInPictureController *)pictureInPictureController failedToStartPictureInPictureWithError:(NSError *)error { //error NSError * domain: @"PGPegasusErrorDomain" - code: -1003 0x00000002819fe3a0 } when first start the PiP play, I got the error "//error NSError * domain: @"PGPegasusErrorDomain" - code: -1003 0x00000002819fe3a0", why? and second start is Ok.
0
0
488
Jul ’25
How to retrieve the playback state
Per FP Streaming programming guide, The SPC includes a specific TLLV to provide the state of the media content playback. And total value length of this is 16 in decimals. Here i'm trying to retrieve the Playback State. which is of 20-23 ByteRange. byte[] mediaPlaybackStateBlock = getBlock(MEDIA_PLAYBACK_STATE).getValueData(); playbackState = Arrays.copyOfRange(mediaPlaybackStateBlock, 20, 24); I'm endup in issue - arraycopy: length -4 is negative. I'm bit confused on how to retrieve the playback state from 20-23 ByteRange when its length jus 16.. Kindly clarify
0
0
682
Jan ’24
AppleTV HLS player with metrics?
Hello, I am running some simple playback tests. I would like to playback content streamed via HLS manifest on my AppleTV device, ideally with playback metrics. I should be able to use something like the VLC app: https://www.videolan.org/vlc/download-appletv.html (open to suggestions) But as for metrics, im not 100%. Does anyone have experience on this topic? As for the specific metrics, Im just looking for something that I can use to objectively measure different tests. I was thinking anything related to buffer rates, error rates, and percentage of time playing back specific streams.
0
0
841
May ’23
Possibility of using SAME FairPlay Certificate by two providers simultaneously
Hello There, Can the SAME FairPlay Certificate be used by two providers simultaneously without impacting each other? For example, we already have a DRM Providers using our FairPlay Certificate in Production. We are now planning to migrate to another DRM Provider for part of the traffic/channels in parallel with Production. This means, in Production, at the same time, 2 DRM providers would be using the SAME FairPlay Certificate. Kindly let us know if this will create any potential issues with the Encrypted Contents that use the Certificate. Is there any impact on the final user in the iOS/tvOS applications with two DRM providers using the same FairPlay certificate?
0
0
874
May ’23
Best supported transport for low-latency live video between two iPhones, including wired options
We are building an iOS video-editing companion workflow. An iPhone 17 Pro (USB-C) is the editor/master; an iPhone 14 Pro Max (Lightning) displays its continuous frame-by-frame live preview. The companion must follow playback, pause, seeks, and edits. It does not use a local copy of the media. Our prototype captures composed AVPlayer output with AVPlayerItemVideoOutput, encodes H.264 in real time with VideoToolbox, sends samples through an MCSession stream, and renders them with AVSampleBufferDisplayLayer. We want the best public, App Store-compatible transport for high quality, low latency, adaptive resolution, and reliable recovery. Can an ordinary iOS app send arbitrary stream or IP data directly between these two iPhones over a USB-C-to-Lightning cable? If not, is wired Ethernet via supported adapters and a common network the supported wired option? What are the discovery/routing constraints? For wireless peer-to-peer video on current iOS, should we prefer Network framework with Wi-Fi Aware where available, peer-to-peer Wi-Fi, or another transport over MultipeerConnectivity? Can Network framework prefer a wired Ethernet interface and switch paths without losing the editing session? For a live editing preview, which transport and codec patterns keep latency bounded while preserving frame order and recovering promptly after loss or a seek? Are QUIC streams/datagrams appropriate? What receiver feedback should drive bitrate or resolution changes and keyframe requests? Are there public examples or documentation specifically for live video between two iPhones with this USB-C/Lightning pairing? We cannot share the full Xcode project publicly, but can create a minimal reproducible example if needed. We would appreciate guidance based on public APIs and supported hardware paths.
0
0
92
Sep ’26
Apple Music data not syncing via MusicKit / Apple Music API
Hi, experiencing an issue with Apple Music syncing in our app. Apple Music data hasn’t been syncing for a while. We’ve investigated the issue on our side and haven’t found anything that could explain it, so we’d like to check whether there are any known issues or recent changes affecting Apple Music API data. Could someone from the Apple Music/MusicKit team help us investigate this? We can provide affected user examples, timestamps, API responses, and any other information needed.
0
0
94
4w
App for FILMS AND TV
I need help with these question from apple. Does your app offer any paid service? Who are the users that will use the paid services in the app? Where can users purchase the services that can be accessed in the app? What specific types of previously purchased services can a user access in the app? What paid content, subscriptions, or features are unlocked within your app that do not use in-app purchase?
Replies
0
Boosts
0
Views
568
Activity
Feb ’23
FairPlay and Extended Clear Lead
We're experimenting with a stream that has a large (10 minutes) clear portion in front of the protected section w/Fairplay. We're noticing that AVPlayer/Safari trigger calls to fetch the license key even while it's playing the clear part, and once we provide the key, playback fails with: name = AVPlayerItemFailedToPlayToEndTimeNotification, object = Optional(<AVPlayerItem: 0x281ff2800> I/NMU [No ID]), userInfo = Optional([AnyHashable("AVPlayerItemFailedToPlayToEndTimeErrorKey"): Error Domain=CoreMediaErrorDomain Code=-12894 "(null)"]) - name : "AVPlayerItemFailedToPlayToEndTimeNotification" - object : <AVPlayerItem: 0x281ff2800> I/NMU [No ID] ▿ userInfo : 1 element ▿ 0 : 2 elements ▿ key : AnyHashable("AVPlayerItemFailedToPlayToEndTimeErrorKey") - value : "AVPlayerItemFailedToPlayToEndTimeErrorKey" - value : Error Domain=CoreMediaErrorDomain Code=-12894 "(null)" It seems like AVPlayer is trying to decrypt the clear portion of the stream...and I'm wondering if it's because we've set up our manifest incorrectly. Here it is: #EXTM3U #EXT-X-VERSION:8 #EXT-X-TARGETDURATION:20 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-INDEPENDENT-SEGMENTS #EXT-X-PLAYLIST-TYPE:VOD #EXT-X-MAP:URI="clear-asset.mp4",BYTERANGE="885@0" #EXT-X-DEFINE:NAME="path0",VALUE="clear-asset.mp4" #EXTINF:9.98458, #EXT-X-BYTERANGE:81088@885 {$path0} #EXTINF:19.96916, #EXT-X-BYTERANGE:159892@81973 {$path0} #EXTINF:19.96916, #EXT-X-BYTERANGE:160245@241865 {$path0} #EXT-X-DISCONTINUITY #EXT-X-MAP:URI="secure-asset.mp4",BYTERANGE="788@0" #EXT-X-DEFINE:NAME="path1",VALUE="secure-asset.mp4" #EXT-X-KEY:METHOD=SAMPLE-AES,URI="skd://guid",KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1" #EXTINF:19.96916, #EXT-X-BYTERANGE:159928@5196150 {$path1} #EXT-X-ENDLIST
Replies
0
Boosts
0
Views
683
Activity
Dec ’23
Getting CoreMediaErrorDomain -15628 playback failure in iOS 26 (AVPlayer, HLS stream)
Hi, After updating to iOS 26, our app is experiencing playback failures with AVPlayer. The same code and streams work fine on iOS 18 and earlier. Error: Domain [CoreMediaErrorDomain] Code [-15628] Description [The operation couldn’t be completed.] Underlying Error Domain [(null)] Code [0] Description [(null)] Environment: iOS version: iOS 26 Stream type: HLS (m3u8) with segment (.ts) files Observed behaviour: We don’t have concrete steps to reproduce the issue, but so far, we have observed that this error tends to occur under low network conditions.
Replies
0
Boosts
6
Views
979
Activity
Sep ’25
AirPlay 2: video streaming - logs / debugging
Hello, We're developing a video streaming service. Can't get the video to stream on AirPlay2-enabled TVs, there is only a loader visible on the tV. We can only get the sounds to stream to AirPlay2 speakers. Media Stream Validator and HLS report on the playlists, shows that the video segments are recognized as something but can't process them. "Processed 0 of 600 segments" etc. We're at a loss on how to debug this. Is there any way to get access to AirPlay 2 logs to see what isn't working?
Replies
0
Boosts
0
Views
1.2k
Activity
Apr ’22
FairPlay Streaming Credentials Approval — no response after 5 days
Hi, I submitted a FairPlay Streaming credentials approval request 5 days ago (through the "Request FairPlay Streaming credentials approval" form) and haven't received any response yet. Could someone from the Security Engineering team please check the status? Team ID: US7RGQX775 We're an online education platform and use a third-party DRM/video hosting provider (VdoCipher) that already operates a working, tested FairPlay Streaming KSM on our behalf — we just need the certificate to hand over to them. Thanks in advance!
Replies
0
Boosts
0
Views
449
Activity
Aug ’26
New FairPlay Streaming (FPS) credentials
Hi, I have a question about FairPlay Streaming (FPS) credentials. When a new set of FPS credentials is requested, will existing FPS Credentials on a live app continue to function until it is swapped for the new ones?  Or will the existing FPS credentials immediately cease to function upon issuing new FPS credentials?
Replies
0
Boosts
0
Views
720
Activity
Mar ’23
Playing Offline HLS Content with AES-128 encryption on iOS
Hi Team, Offline playback with AES-128 encryption I'm downloading HLS content that is AES-128 encrypted and using the AVAssetResourceLoaderDelegate method shouldWaitForLoadingOfRequestedResource to parse the manifest to fetch the AES key URL. After fetching the key URL, I'll download and save the AES key locally. I will use the locally saved key to start the offline playback. Since AVContentKeySession has been there for quite some time, is it okay to use the resource loader delegate method to parse and download the AES key? Is there any chance that Apple will deprecate the downloading keys through the resource loader delegate? Thanks, Deepak.N
Replies
0
Boosts
0
Views
674
Activity
Nov ’23
[tvOS] AVPlayerViewController displays time period label for Live stream
During Live Stream playback on tvOS using AVPlayerViewController we noticed strange time period label: 12:30 PM - 1:00 PM next to the live indicator. It seems that during the start of the playback, the value is set to a 30-minute time period. Questions: What does 12:30 PM - 1:00 PM mean? Can we hide this label or manipulate it using tags in HLS playlist? We do not understand where this value (12:30 PM - 1:00 PM) comes from. Here is an example of our playlist: #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:3 #EXT-X-MEDIA-SEQUENCE:9091 #EXT-X-PROGRAM-DATE-TIME:2023-02-21T12:39:06.640Z As you can see it's not a EXT-X-PROGRAM-DATE-TIME Thanks!
Replies
0
Boosts
0
Views
777
Activity
Mar ’23
Use of Fairplay Streaming Test Streams with the Apple FPS Client sample code
Hello all, I am a completely new to iOS development, and I need to make an app that will be playing encrypted content using Fairplay. Right now I am using the Sample client in the latest FPS Server SDK (HLSCatalog), and from what I understand the default sources in Streams.plist are not protected. There's an entry with is_protected=YES and where I can replace the playlist_url, but I was wondering if I could use the .m3u8 files in the FPS Test Content found at https://developer.apple.com/streaming/fps/ ? If so, I don't really know how to. In one of the .m3u8 files of the Test Content, I could find the "content_key_id_list" example value that's also mentioned in the client's README (skd://twelve), which is why I'm asking. Thanks in advance!
Replies
0
Boosts
0
Views
1k
Activity
Jan ’24
AVKit - PiP with AVSampleBufferDisplayLayer Error
AVPictureInPictureControllerContentSource *contentSource = [[AVPictureInPictureControllerContentSource alloc] initWithSampleBufferDisplayLayer:self.renderView.sampleBufferDisplayLayer playbackDelegate:self]; AVPictureInPictureController *pictureInPictureController = [[AVPictureInPictureController alloc] initWithContentSource:contentSource]; pictureInPictureController.delegate = self; (void)pictureInPictureController:(AVPictureInPictureController *)pictureInPictureController failedToStartPictureInPictureWithError:(NSError *)error { //error NSError * domain: @"PGPegasusErrorDomain" - code: -1003 0x00000002819fe3a0 } when first start the PiP play, I got the error "//error NSError * domain: @"PGPegasusErrorDomain" - code: -1003 0x00000002819fe3a0", why? and second start is Ok.
Replies
0
Boosts
0
Views
488
Activity
Jul ’25
How to retrieve the playback state
Per FP Streaming programming guide, The SPC includes a specific TLLV to provide the state of the media content playback. And total value length of this is 16 in decimals. Here i'm trying to retrieve the Playback State. which is of 20-23 ByteRange. byte[] mediaPlaybackStateBlock = getBlock(MEDIA_PLAYBACK_STATE).getValueData(); playbackState = Arrays.copyOfRange(mediaPlaybackStateBlock, 20, 24); I'm endup in issue - arraycopy: length -4 is negative. I'm bit confused on how to retrieve the playback state from 20-23 ByteRange when its length jus 16.. Kindly clarify
Replies
0
Boosts
0
Views
682
Activity
Jan ’24
AppleTV HLS player with metrics?
Hello, I am running some simple playback tests. I would like to playback content streamed via HLS manifest on my AppleTV device, ideally with playback metrics. I should be able to use something like the VLC app: https://www.videolan.org/vlc/download-appletv.html (open to suggestions) But as for metrics, im not 100%. Does anyone have experience on this topic? As for the specific metrics, Im just looking for something that I can use to objectively measure different tests. I was thinking anything related to buffer rates, error rates, and percentage of time playing back specific streams.
Replies
0
Boosts
0
Views
841
Activity
May ’23
Possibility of using SAME FairPlay Certificate by two providers simultaneously
Hello There, Can the SAME FairPlay Certificate be used by two providers simultaneously without impacting each other? For example, we already have a DRM Providers using our FairPlay Certificate in Production. We are now planning to migrate to another DRM Provider for part of the traffic/channels in parallel with Production. This means, in Production, at the same time, 2 DRM providers would be using the SAME FairPlay Certificate. Kindly let us know if this will create any potential issues with the Encrypted Contents that use the Certificate. Is there any impact on the final user in the iOS/tvOS applications with two DRM providers using the same FairPlay certificate?
Replies
0
Boosts
0
Views
874
Activity
May ’23
Best supported transport for low-latency live video between two iPhones, including wired options
We are building an iOS video-editing companion workflow. An iPhone 17 Pro (USB-C) is the editor/master; an iPhone 14 Pro Max (Lightning) displays its continuous frame-by-frame live preview. The companion must follow playback, pause, seeks, and edits. It does not use a local copy of the media. Our prototype captures composed AVPlayer output with AVPlayerItemVideoOutput, encodes H.264 in real time with VideoToolbox, sends samples through an MCSession stream, and renders them with AVSampleBufferDisplayLayer. We want the best public, App Store-compatible transport for high quality, low latency, adaptive resolution, and reliable recovery. Can an ordinary iOS app send arbitrary stream or IP data directly between these two iPhones over a USB-C-to-Lightning cable? If not, is wired Ethernet via supported adapters and a common network the supported wired option? What are the discovery/routing constraints? For wireless peer-to-peer video on current iOS, should we prefer Network framework with Wi-Fi Aware where available, peer-to-peer Wi-Fi, or another transport over MultipeerConnectivity? Can Network framework prefer a wired Ethernet interface and switch paths without losing the editing session? For a live editing preview, which transport and codec patterns keep latency bounded while preserving frame order and recovering promptly after loss or a seek? Are QUIC streams/datagrams appropriate? What receiver feedback should drive bitrate or resolution changes and keyframe requests? Are there public examples or documentation specifically for live video between two iPhones with this USB-C/Lightning pairing? We cannot share the full Xcode project publicly, but can create a minimal reproducible example if needed. We would appreciate guidance based on public APIs and supported hardware paths.
Replies
0
Boosts
0
Views
92
Activity
Sep ’26
Apple Music data not syncing via MusicKit / Apple Music API
Hi, experiencing an issue with Apple Music syncing in our app. Apple Music data hasn’t been syncing for a while. We’ve investigated the issue on our side and haven’t found anything that could explain it, so we’d like to check whether there are any known issues or recent changes affecting Apple Music API data. Could someone from the Apple Music/MusicKit team help us investigate this? We can provide affected user examples, timestamps, API responses, and any other information needed.
Replies
0
Boosts
0
Views
94
Activity
4w