【问题标题】:How to generate thumbnail from video stream?如何从视频流中生成缩略图?
【发布时间】:2017-10-15 15:36:59
【问题描述】:

我想知道如何从视频流中获取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! 进行测试,我知道我没有处理异常。

但我收到错误:

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

我也试试这个answers

【问题讨论】:

标签: ios swift avplayer


【解决方案1】:

我很确定如果你删除 requestedTimeToleranceBeforerequestedTimeToleranceAfter 你不会有任何问题。或将其属性更改为kCMTimeZero 我还建议添加以下行

imageGenerator.appliesPreferredTrackTransform = true

【讨论】:

  • 感谢您的回复。但他们对你的建议并不走运。
  • 只是为了确保您的视频可以正确加载,尽管出现了这个错误,对吧?
  • 是的,可以只播放视频。
  • 您是否遗漏了任何其他可能相关的代码?也许是线程问题?这应该是一个提供代码的打开和关闭案例。 ://
猜你喜欢
  • 2014-06-27
  • 2013-10-22
  • 2018-06-14
  • 2017-03-01
  • 2012-09-01
  • 2012-10-16
  • 2019-07-26
  • 2011-07-04
相关资源
最近更新 更多