2012-05-11 22 views
6

Voglio ottenere il frame rate per un video specifico. Ho provato a guardare le API nello AVFoundation e nello AssetsLibrary come AVURLAsset o AVAssetReader. Nessuno di loro è veramente d'aiuto. Qualcuno conosce un metodo nel framework/libreria Apple per ottenere la frequenza fotogrammiiOS ottiene frame rate video

+1

Sembra che la risposta corretta sia ora la risposta di @ AddisDev? – Crashalot

+0

Ho aggiornato la risposta accettata – vodkhang

risposta

3

Per iOS 7+ è possibile utilizzare la proprietà di currentVideoFrameRate AVPlayerItemTrack. È l'unica proprietà coerente che ho visto misurare FPS. La proprietà nominaleFrameRate sembra essere interrotta nei flussi 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

L'opzione più semplice è ottenere un AVAssetTrack e leggere la sua proprietà nominalFrameRate. Sembra che lo this ti possa aiutare.

Il frame rate nominale è il frame rate della traccia, in frame al secondo. (in sola lettura) AVAssetTrack Classe @property (nonatomic, sola lettura) galleggiante nominalFrameRate

+0

Se @AddisDev è corretto, non è più necessario considerare la risposta corretta. Qualcuno può verificare? – Crashalot

+0

@Crashalot Questa è una soluzione praticabile. –

Problemi correlati