首页 文章

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

提问于
浏览
1

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

我做了什么 :

首先我运行流:

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

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

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 ,NSLocalizedFailureReason =发生未知错误(-12782), NSLocalizedDescription =操作无法完成}

我也试试这个answers .

1 回答

  • 0

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

    imageGenerator.appliesPreferredTrackTransform = true
    

相关问题