如何在iOS SDK中获得视频的FPS。我已经尝试了下面的代码行,但它似乎并不完美。
AVAssetTrack *videoAssetTrack = [myAsset tracksWithMediaType:AVMediaTypeVideo].firstObject; NSLog(@"FPS is : %f ",videoAssetTrack.nominalFrameRate);
任何帮助都将不胜感激。
xxslljrj1#
我得到了正确的FPS与下面的代码行:
AVAsset * myAsset = [[AVURLAsset alloc] initWithURL: _videoUrl options: nil]; AVAssetTrack * videoAssetTrack = [myAsset tracksWithMediaType: AVMediaTypeVideo].firstObject; NSLog(@"FPS is : %f ", videoAssetTrack.nominalFrameRate);
rseugnpd2#
extension AVAsset { /** * Get FPS from AVAsset */ var fps: Float? { self.tracks(withMediaType: .video).first?.nominalFrameRate } }
6kkfgxo03#
通过异步使用Load属性,您可以从Swift并发开发中获益,以检索FPS、size or dimension和duration。
FPS
size or dimension
duration
var asset: AVAsset? = AVAsset(url: filePath) if let asset = asset, let videoTrack = try? await asset.loadTracks(withMediaType: .video).first { let size = try? await videoTrack.load(.naturalSize) let fps = try? await videoTrack.load(.nominalFrameRate) let duration = try? await asset.load(.duration) }
3条答案
按热度按时间xxslljrj1#
我得到了正确的FPS与下面的代码行:
rseugnpd2#
Swift 5的AVAsset扩展
6kkfgxo03#
通过异步使用Load属性,您可以从Swift并发开发中获益,以检索
FPS
、size or dimension
和duration
。