我可以看到某些视频轨道的nominalFrameRate,但AVFoundation文档中没有当前帧。如何在AVPlayer中播放轨道的当前帧编号?我知道帧速率会有所不同,而且nommrameRate在.m3u8流中总是为0.0,但肯定必须有办法获得当前播放曲目的帧号而不必将nominalFrameRate乘以currentTime吗?
感谢。
答案 0 :(得分:0)
对于iOS 7+,您可以使用AVPlayerItemTrack的currentVideoFrameRate属性。它是我见过的唯一一致测量FPS的属性。在HLS流中,nominalFrameRate属性似乎已被破坏,并且如您所述,它总是返回0.0。
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;
}
}