我想要做什么:
我正在尝试获取以下附件中选择的帧的开始和结束时间:
到目前为止我做了什么:
- UIImagePickerController:实现后发现start和end时间不会从delegate返回
“didFinishPickingMediaWithInfo”,如果视频输入是从专辑中选择的。也得到了 Apple 团队的确认。
- 尝试使用“UIVideoEditorController”,最终无法获取开始和结束时间。
- 计划尝试使用“AVAssetImageGenerator”生成缩略图并以编程方式处理“stick or marker”
选择帧以及 AVPlayer 以在 IOS 电影播放器中进行即时预览。(如附件中所示)。
但它相当不安和复杂,不确定它的处理速度。
我想知道的:
- 除了以上三种技术,还有没有其他方法可以实现视频剪辑功能?
任何来自 Apple SDK 的直接 api?
- 谁能提供基于“AVAssetImageGenerator”的视频修剪器的引用链接或示例代码?
Best Answer-推荐答案 strong>
如果您使用 AVPlayer ,您可以使用 获取播放器 Assets 的开始和结束时间
self.player.currentItem.asset.duration;
然后使用自定义 slider 选择开始帧和结束帧,并转换相对于总持续时间和 slider 长度的值以及来自 slider 的值。
一旦您有了大致的开始和结束时间框架,请按以下步骤进行操作
AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:player.currentItem.asset];
CGImageRef cgIm = [generator copyCGImageAtTime:player.currentTime
actualTime:&actualTime
error:&error];
UIImage *image = [UIImage imageWithCGImage:cgIm];
关于ios - 如何使用 iOS sdk 从视频中获取所选帧的开始和结束时间?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/25138559/
|