Oli*_*ryn 4 video video-processing mpmovieplayercontroller ios swift
如果我在Swift中有一个MPMoviePlayerController:
MPMoviePlayerController mp = MPMoviePlayerController(contentURL: url)
Run Code Online (Sandbox Code Playgroud)
有没有办法可以获得视频中的帧数url?如果没有,还有其他方法来确定帧数吗?
我认为MPMoviePlayerController不能帮到你.
使用AVAssetReader并计算CMSampleBuffer它返回给你的数量.您可以将其配置为甚至不解码帧,有效地解析文件,因此它应该快速且内存有效.
就像是
var asset = AVURLAsset(URL: url, options: nil)
var reader = AVAssetReader(asset: asset, error: nil)
var videoTrack = asset.tracksWithMediaType(AVMediaTypeVideo)[0] as! AVAssetTrack
var readerOutput = AVAssetReaderTrackOutput(track: videoTrack, outputSettings: nil) // NB: nil, should give you raw frames
reader.addOutput(readerOutput)
reader.startReading()
var nFrames = 0
while true {
var sampleBuffer = readerOutput.copyNextSampleBuffer()
if sampleBuffer == nil {
break
}
nFrames++
}
println("Num frames: \(nFrames)")
Run Code Online (Sandbox Code Playgroud)
对不起,如果这不是惯用语,我不知道很快.
| 归档时间: |
|
| 查看次数: |
1278 次 |
| 最近记录: |