ios - 我需要逐帧编辑视频,并将这些帧再次转换为视频
问题描述
我需要逐帧编辑视频。如果我在帧中提取视频(使用图像方法),应用程序由于内存而崩溃。
3 分钟的视频超过了 1GB 的限制。
func getAllFrames() -> [UIImage] {
let duration: Float64 = CMTimeGetSeconds(asset.duration)
self.generator = AVAssetImageGenerator(asset: asset)
self.generator.appliesPreferredTrackTransform = true
self.images = []
let generator = AVAssetImageGenerator(asset: asset)
for index: Int in 0 ..< Int(duration) * 24 {
let time = NSValue(time: CMTime(seconds: Double(index), preferredTimescale: 60))
imageTime.append(time)
}
generator.generateCGImagesAsynchronously(forTimes: imageTime, completionHandler: { (_, cgImage, _, _, _) in
if let cgImage = cgImage {
self.images.append(UIImage(cgImage: cgImage))
print("Image size is ", UIImage(cgImage: cgImage).getImageSize())
}
})
self.generator = nil
return self.images
}
解决方案
推荐阅读
- html -
线高和高度子像素差
- mysql-8.0 - 如何为子查询设置每行主键
- reactjs - 如何在 DraftJS 中使光标位置跟踪 SelectionState?
- r - ggplot2 vs base-r 绘图及其冗长的性质
- python - Python、Selenium、SyntaxError:表达式不是合法表达式。路径
- mysql - 如何将具有 1000 多列和数百万行的巨大 CSV 文件导入 MySQL Workbench (FAST)?
- powerbi - 在未安装 PowerBI 的情况下在组织外部共享 POWER BI 报告
- discord.js - 为什么我在cmd中使用node main.js不起作用?
- angular - Angular 应用程序未在托管的 apache 服务器中加载图像
- rust - 你如何获得 Substrate 中的当前区块号?