这是我的代码:我想要获取我的视频并将帧数据获取到 SceneKit SCNSphere。
//NSString videoPath=NSBundle.mainBundle().l
var videoURL=NSBundle.mainBundle().URLForResource("video", withExtension: "mp4")
var assetOptions = [AVURLAssetPreferPreciseDurationAndTimingKey : 1]
videoAsset=AVURLAsset(URL: videoURL, options: assetOptions)
var error:NSError?
var videoAssetReader=AVAssetReader(asset: videoAsset, error: &error)
//var duration = CMTimeGetSeconds(videoAsset.duration)
//println(videoAsset.duration)
// println(duration)
if error != nil
{
println(error)
}
var tracksArray=videoAsset?.tracksWithMediaType(AVMediaTypeVideo)
var audio=videoAsset?.tracksWithMediaType(AVMediaTypeAudio)
println(tracksArray?)
var videotrack = tracksArray?[0] as AVAssetTrack
//println(videotrack?.size)
fps = videotrack.nominalFrameRate
var videoSetting = [kCVPixelBufferPixelFormatTypeKey : kCVPixelFormatType_32RGBA]
var videoTrackOutput=AVAssetReaderTrackOutput(track:videotrack as AVAssetTrack , outputSettings:videoSetting)
// videoTrackOutput.outputSettings=
if videoAssetReader.canAddOutput(videoTrackOutput)
{
println(videoTrackOutput)
videoAssetReader.addOutput(videoTrackOutput)
videoAssetReader.startReading()
}
var image=GeneralPreview()
var uiImage=UIImage(CGImage: image)
if videoAssetReader.status == AVAssetReaderStatus.Reading{
var sampleBuffer = videoTrackOutput.copyNextSampleBuffer()
println(sampleBuffer)
//var imageData: NSData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(sampleBuffer?)
//var image: UIImage = UIImage(data: imageData)
}
我刚从 oc 学到这个。在我的代码中,我无法获取最后一个对象样本缓冲区为零!
我不知道为什么?我只想知道我的方法对吗?希望得到帮助!
尝试将 kCVPixelFormatType_32RGBA 更改为 kCVPixelFormatType_32BGRA。这就是对我有用的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)