【问题标题】:How to get the start and end time for the selected frames from the video using iOS sdk?如何使用 iOS sdk 从视频中获取所选帧的开始和结束时间?
【发布时间】:2014-09-28 02:24:19
【问题描述】:

我想要做什么:

我正在尝试获取所选帧的开始和结束时间,如下面的附件所示:

到目前为止我做了什么:

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

我想知道的:

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

【问题讨论】:

  • “UIImagePickerController”之类的缩略图滑块是否可以通过编程方式实现?

标签: ios uiimagepickercontroller uivideoeditorcontroller avassetimagegenerator


【解决方案1】:

如果您使用 AVPlayer ,您可以使用

获取播放器资产的开始和结束时间
self.player.currentItem.asset.duration;

然后使用自定义滑块选择开始帧和结束帧,并转换相对于总持续时间和滑块长度的值以及来自滑块的值。

一旦您有了大致的开始和结束时间框架,请按以下步骤进行操作

AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:player.currentItem.asset];



    CGImageRef cgIm = [generator copyCGImageAtTime:player.currentTime 
                                        actualTime:&actualTime 
                                             error:&error];
    UIImage *image = [UIImage imageWithCGImage:cgIm];

【讨论】:

  • 感谢您的回答。没错,我要试试这个选项。持续时间会以这种方式准确吗?自定义滑块不会像默认的 UIImagePickerController(例如:当您按住帧时,缩略图将被提取以在所选区域中显示更多图像)。这就是我寻找“UIImagePickerController”的原因之一功能。
  • 我认为准确度会足够好。您可以通过为滑块设置更高的范围来改进它。我没有用 UIImagePickerController 尝试过。
  • 我想从图库中选择最长 30 秒的视频,如有任何建议,请提供快速代码@JIthin
猜你喜欢
  • 1970-01-01
  • 2021-09-06
  • 2023-01-05
  • 2021-04-29
  • 1970-01-01
  • 1970-01-01
  • 2019-01-25
  • 1970-01-01
  • 2020-11-09
相关资源
最近更新 更多