2012-05-11 140 views
6

我想獲取特定視頻的幀速率。我試圖查看AVFoundationAssetsLibrary中的API,例如AVURLAsset或AVAssetReader。他們都沒有真正的幫助。是否有人知道蘋果框架/庫中的方法來獲得幀速率iOS獲取視頻幀速率

+1

看來正確的答案是現在@ AddisDev的答案? – Crashalot

+0

我更新了接受的答案 – vodkhang

回答

3

對於iOS 7+你可以使用AVPlayerItemTrack的currentVideoFrameRate財產。它是我見過的唯一一致的財產衡量FPS。 nominalFrameRate屬性似乎在HLS流中被破壞。

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; 
    } 
} 
7

更簡單的選擇是獲取AVAssetTrack並讀取其nominalFrameRate屬性。 看起來像this可以幫助你。

標稱幀速率是軌道的幀速率,以每秒幀數爲單位。(只讀) AVAssetTrack類 @屬性(非原子,只讀)浮nominalFrameRate

+0

如果@AddisDev正確,則不再應該將其視爲正確的答案。有人可以驗證嗎? – Crashalot

+0

@Crashalot這是一個可行的解決方案。 –