iOS AVPlayer 变慢

标签 ios avplayer avplayerlayer

我正在使用 AVPlayer 在我的项目中播放在线视频。视频播放良好。现在我想减少/增加视频的 fps。以下是我正在使用的代码:

self.asset = [AVAsset assetWithURL:self.videoUrl];
// the video player
self.player = [AVPlayer playerWithURL:self.videoUrl];
self.player.actionAtItemEnd = AVPlayerActionAtItemEndNone;

self.playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player];
self.playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(playerItemDidReachEnd:)
                                             name:AVPlayerItemDidPlayToEndTimeNotification
                                           object:[self.player currentItem]];


self.playerLayer.frame = CGRectMake(0, 0, self.view.frame.size.width, self.myPlayerView.frame.size.height);
[self.myPlayerView.layer addSublayer:self.playerLayer];

- (void)playerItemDidReachEnd:(NSNotification *)notification {
    AVPlayerItem *p = [notification object];
    [p seekToTime:kCMTimeZero];
}

现在我应该如何降低/提高在线视频的 fps?

最佳答案

你可以这样做,

 -(float)getFrameRateFromAVPlayer
{
   float fps=0.00;
   if (self.queuePlayer.currentItem.asset) {
     AVAssetTrack * videoATrack = [[videoAsset tracksWithMediaType:AVMediaTypeVideo] lastObject];
if(videoATrack)
{
    fps = videoATrack.nominalFrameRate;
  }
   }
    return fps;
}

AVPlayerItem *item = AVPlayer.currentItem; // Your current item
float fps = 0.00;
for (AVPlayerItemTrack *track in item.tracks) {
if ([track.assetTrack.mediaType isEqualToString:AVMediaTypeVideo]) {
    fps = track.currentVideoFrameRate;
}
}

希望这会有所帮助:)

关于iOS AVPlayer 变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37249146/

相关文章:

iPhone 转义字符串不起作用

swift - UICollectionView 视频性能

objective-c - 当 UIView 框架更改时, View 内的 AVPlayer 层不会调整大小

ios - 在 iOS 上使用语音输入后视频停止

ios - 针对网络连接变化的设备的应用程序分析

ios SecKeyCopyKeyExchangeResult sharedInfo 参数

ios - 如何在ios应用程序中创建多列表

avplayer - 适用于 iOS 13+ 应用的 AVAudioPlayer AVPlayer AVQueuePlayer MPMusicPlayerController MPRemoteCommandCenter MPNowPlayingInfoCenter 之间的区别

objective-c - 无法在屏幕上获取 AVPlayerLayer 中的视频大小

iphone - 循环播放视频 +AVQueuePlayer