如何从视频流生成缩略图?

时间:2017-05-16 13:51:43

标签: ios swift avplayer

我想知道如何从视频流中获取UIImage

我做了什么:

首先我运行流:

let player = AVPlayer(url: sourceURL)
player.play()

然后我会检查asset中的AVPlayer是否为空。

if let asset = player.currentItem?.asset {
   let imageGenerator = AVAssetImageGenerator(asset: asset)
   imageGenerator.requestedTimeToleranceBefore = CMTimeMake(1, 15)
   imageGenerator.requestedTimeToleranceAfter = CMTimeMake(1, 15)
   let time = CMTimeMake(1, 1)
   let imageRef = try! imageGenerator.copyCGImage(at: time, actualTime: nil)
   return UIImage(cgImage:imageRef)
}

我正在使用try!进行测试,我知道我没有处理异常。

但我收到错误:

  

错误域= AVFoundationErrorDomain代码= -11800“操作可以   未完成“UserInfo = {NSUnderlyingError = 0x170654250 {错误   Domain = NSOSStatusErrorDomain Code = -12782“(null)”},   NSLocalizedFailureReason =发生未知错误(-12782),   NSLocalizedDescription =无法完成操作}

我也试试answers

1 个答案:

答案 0 :(得分:0)

我很确定你是否删除了  requestedTimeToleranceBeforerequestedTimeToleranceAfter您将没有任何问题。或者将其属性更改为kCMTimeZero 我还建议添加以下行

imageGenerator.appliesPreferredTrackTransform = true