OStack程序员社区-中国程序员成长平台

标题: ios - 如何使用 iOS sdk 从视频中获取所选帧的开始和结束时间? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 00:20
标题: ios - 如何使用 iOS sdk 从视频中获取所选帧的开始和结束时间?

我想要做什么:

我正在尝试获取以下附件中选择的帧的开始和结束时间: enter image description here

到目前为止我做了什么:

  1. UIImagePickerController:实现后发现startend时间不会从delegate返回 “didFinishPickingMediaWithInfo”,如果视频输入是从专辑中选择的。也得到了 Apple 团队的确认。
  2. 尝试使用“UIVideoEditorController”,最终无法获取开始和结束时间。
  3. 计划尝试使用“AVAssetImageGenerator”生成缩略图并以编程方式处理“stick or marker” 选择帧以及 AVPlayer 以在 IOS 电影播放器​​中进行即时预览。(如附件中所示)。 但它相当不安和复杂,不确定它的处理速度。

我想知道的:

  1. 除了以上三种技术,还有没有其他方法可以实现视频剪辑功能? 任何来自 Apple SDK 的直接 api?
  2. 谁能提供基于“AVAssetImageGenerator”的视频修剪器的引用链接或示例代码?



Best Answer-推荐答案


如果您使用 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/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4