Improve global streaming availability with HLS Content Steering

RSS for tag

Discuss the WWDC21 session Improve global streaming availability with HLS Content Steering.

Posts under wwdc21-10141 tag

4 Posts

Post

Replies

Boosts

Views

Activity

My app is approved but nowhere in the store..
I have an approved app. I can't find it on the link given at the bottom of General App Info page "show your app on store" the page keeps waiting to load but no result. but when I change the url manually with different country short codes like =nl or =tr it is there but not in the link that you provide me.. + As I download my app from the store the app holds at the splash screen..'! I am stuck and have no clue what to do..!
0
0
722
Jan ’22
Caching video streamed via HLS
Hello everyone! Recently our backend team integrated video streaming via HLS, before we had default HTTP streaming. With HTTP streaming this exporting code worked fine: private func cacheFile(from asset: AVURLAsset) {         guard asset.isExportable,               let fileName = asset.url.pathComponents.last,               let outputURL = self.cacheDirectory?.appendingPathComponent(fileName), !FileManager.default.fileExists(atPath: outputURL.path)         else { return }         asset.resourceLoader.setDelegate(self, queue: backgroundQueue.underlyingQueue)         let exporter = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetHighestQuality)         exporter?.outputURL = outputURL         exporter?.determineCompatibleFileTypes(completionHandler: { types in             guard let type = types.first else { return }             exporter?.outputFileType = type             exporter?.exportAsynchronously(completionHandler: {                 if let error = exporter?.error { print(error)                 }             })         })     } This code works great with HTTP streaming, but for HLS asset.isExportable is equal to false. After removing check for asset.isExportable exporter?.determineCompatibleFileTypes passes empty array inside closure. If setting outputFileType to .mp4 or .mov I'm receiving error inside exportAsynchronously completionHandler: Error Domain=AVFoundationErrorDomain Code=-11838 "Operation Stopped" UserInfo={NSLocalizedFailureReason=The operation is not supported for this media., NSLocalizedDescription=Operation Stopped, NSUnderlyingError=0x6000025abd50 {Error Domain=NSOSStatusErrorDomain Code=-16976 "(null)" Why does this happen? AVAssetExportSession cannot combine all parts of .m3u8 to .mp4? Is there any alternative way to cache streamed video via HLS?
1
0
1.2k
Sep ’21
how to inform part users with HLS content steering
I am confused with the example in the video of HLS content steering introduction.The example says that 100% clients from China to playback through the intial CN cdn from content steering server. And then the CN cdn is overloaded;My question is that how to select which part of 70% clients keep the previous CDN, and how to select which part of 30% clients switch into JP cdn? And how to inform the different part of clients to keep or switch new cdn?? I thought that all clients will get the new content steering information with new priority cdn ,and all of clients will switch into new one. So how to control the numbers of clients to do 70% clients keep priority or 30% clients change priority??
1
0
916
Jul ’21
HLS Steering Support
What is the first version of iOS and tvOS to support HLS Steering? Is the AppleTV+ service using HLS Steering to manage multiple CDNs?
Replies
3
Boosts
0
Views
1.5k
Activity
Jun ’22
My app is approved but nowhere in the store..
I have an approved app. I can't find it on the link given at the bottom of General App Info page "show your app on store" the page keeps waiting to load but no result. but when I change the url manually with different country short codes like =nl or =tr it is there but not in the link that you provide me.. + As I download my app from the store the app holds at the splash screen..'! I am stuck and have no clue what to do..!
Replies
0
Boosts
0
Views
722
Activity
Jan ’22
Caching video streamed via HLS
Hello everyone! Recently our backend team integrated video streaming via HLS, before we had default HTTP streaming. With HTTP streaming this exporting code worked fine: private func cacheFile(from asset: AVURLAsset) {         guard asset.isExportable,               let fileName = asset.url.pathComponents.last,               let outputURL = self.cacheDirectory?.appendingPathComponent(fileName), !FileManager.default.fileExists(atPath: outputURL.path)         else { return }         asset.resourceLoader.setDelegate(self, queue: backgroundQueue.underlyingQueue)         let exporter = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetHighestQuality)         exporter?.outputURL = outputURL         exporter?.determineCompatibleFileTypes(completionHandler: { types in             guard let type = types.first else { return }             exporter?.outputFileType = type             exporter?.exportAsynchronously(completionHandler: {                 if let error = exporter?.error { print(error)                 }             })         })     } This code works great with HTTP streaming, but for HLS asset.isExportable is equal to false. After removing check for asset.isExportable exporter?.determineCompatibleFileTypes passes empty array inside closure. If setting outputFileType to .mp4 or .mov I'm receiving error inside exportAsynchronously completionHandler: Error Domain=AVFoundationErrorDomain Code=-11838 "Operation Stopped" UserInfo={NSLocalizedFailureReason=The operation is not supported for this media., NSLocalizedDescription=Operation Stopped, NSUnderlyingError=0x6000025abd50 {Error Domain=NSOSStatusErrorDomain Code=-16976 "(null)" Why does this happen? AVAssetExportSession cannot combine all parts of .m3u8 to .mp4? Is there any alternative way to cache streamed video via HLS?
Replies
1
Boosts
0
Views
1.2k
Activity
Sep ’21
how to inform part users with HLS content steering
I am confused with the example in the video of HLS content steering introduction.The example says that 100% clients from China to playback through the intial CN cdn from content steering server. And then the CN cdn is overloaded;My question is that how to select which part of 70% clients keep the previous CDN, and how to select which part of 30% clients switch into JP cdn? And how to inform the different part of clients to keep or switch new cdn?? I thought that all clients will get the new content steering information with new priority cdn ,and all of clients will switch into new one. So how to control the numbers of clients to do 70% clients keep priority or 30% clients change priority??
Replies
1
Boosts
0
Views
916
Activity
Jul ’21