【问题标题】:How to find the start and end duration of "Selected frames" from Video using didFinishPickingMediaWithInfo?如何使用 didFinishPickingMediaWithInfo 从视频中找到“选定帧”的开始和结束持续时间?
【发布时间】:2013-07-17 10:55:28
【问题描述】:

我正在使用 AVFoundation(用于视频)和 Dirac(音频)在音频和视频中制作慢动作。 作为其中的一部分,我将视频显示为帧,用户将在其中选择帧进行慢动作。例如:5-6 分钟的 10 分钟视频。

我必须向用户展示两种视频 1. 通过我的应用程序本身的录像机。 2. 来自画廊。

案例1:没问题 现在,我可以通过我的录像机录制视频,并将视频显示为帧供用户选择。一旦用户选择了一些帧(例如:10 分钟录制的视频中的 5 到 6 分钟), 使用下面的代码,我可以找到所选帧或视频的 开始/结束持续时间

NSNumber *start = [info objectForKey:@"_UIImagePickerControllerVideoEditingStart"];
NSNumber *end = [info objectForKey:@"_UIImagePickerControllerVideoEditingEnd"];

int startMilliseconds = ([start doubleValue] * 1000);
int endMilliseconds = ([end doubleValue] * 1000);

案例2: 在这种情况下,我可以从图库中挑选视频并以帧的形式显示给用户以供选择。但是,当我尝试查找视频的开始/结束持续时间时,我在案例 1 中使用相同的代码,它不起作用。对于开始/结束持续时间,我总是得到 "0"

【问题讨论】:

  • 有什么建议可以告诉我吗?
  • 所以您是说: 1. 如果您从自己的录像机中获取视频,则可以访问开始/结束持续时间。 2. 如果您从用户的图库中获取视频,它返回 0 的开始/结束时长?在情况 2 中,您是否启用编辑? (videoRecorder.allowsEditing = YES;)
  • 是的,我启用了编辑功能。请在此处查看我的输出:pastebin.com/wiHiuPXZ。在这里,我无法使用用户的照片库获取属性“_UIImagePickerControllerVideoEditingEnd”和“_UIImagePickerControllerVideoEditingStart”,但对于自己的视频录制,它会返回输出。
  • 除非您从用户的图库中获取视频的方式有问题,否则这种方法应该可以正常工作。您是否按照此处所述获取视频和修剪? stackoverflow.com/questions/4439707/…
  • 是的,@Chris Truman 提供的链接/上面的链接对我来说工作正常,不完全是你的要求。 2vision2 请检查一次..

标签: iphone ios objective-c uiimagepickercontroller avfoundation


【解决方案1】:

看看 iOS 7 中 AVFoundation 的新增功能,因为它现在原生支持慢动作视频和音频自动时间拉伸。这可能会改变您的方法,并提供更好的解决方案。

【讨论】:

    猜你喜欢
    • 2014-09-28
    • 1970-01-01
    • 2017-01-05
    • 1970-01-01
    • 2016-01-21
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    相关资源
    最近更新 更多