Post

Replies

Boosts

Views

Activity

Reply to AVAssetTrack nominalFrameRate is always 30 for high speed videos
I figured it out. The issue was the way I was creating the AVAssets. Instead of pulling them in from a copied url I used the localIdentifiers to fetch the assets with a defined set of options. The code below works for obtaining the correct FPS for a selected asset. func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) { let identifiers = results.compactMap(\.assetIdentifier) let assets = PHAsset.fetchAssets(withLocalIdentifiers: identifiers, options: nil) if (assets.count == 0) { parent.isPresented = false return } var assetArray: [PHAsset] = [] for i in 0...(assets.count - 1) { assetArray.append(assets[i]) } let options = PHVideoRequestOptions() options.version = .original for asset in assetArray { PHImageManager.default().requestAVAsset(forVideo: asset, options: options) { avAsset, avAudioMix, info in var currentVideo = Video() currentVideo.asset = avAsset self.parent.selectedVideos.append(currentVideo) } } // Set isPresented to false because picking has finished. parent.isPresented = false } I hope this helps!
Jul ’23