小编Mic*_*hel的帖子

在iPhone应用程序中捕获60fps

我正在开发一个项目,我们将使用iPhone作为捕捉场景的摄像头.录制时我们需要录制@ 60fps而不是30fps(原生支持).所以我正在开发一个应用来做这个,因为iPhone 4S硬件支持720p @ 60fps(如果你越狱你的手机,你可以实现这一点).

有没有人知道如何在iOS上的Objective-C中做到这一点?今天我看到一个应用程序(slopro)可以在非越狱手机上录制60fps.任何建议或提示非常感谢.

iphone recording ios avcapturesession

16
推荐指数
2
解决办法
1万
查看次数

在objective-c(iOS)中转码视频的最佳方法是什么?

我想,根据我的应用程序中的设备和设置,将视频转码为特定的视频格式.例如,如果用户有iPhone 4S并在我的应用程序中选择中等设置,我想在开始处理之前将视频转换为540p.如果他选择高,那么我想转码为720p.

我可以逐帧读取视频,调整大小并保存到光盘,但这似乎不是很有效.什么是最简单,最快速的方式来转换我可以提供给我的视频处理库的视频?

我已尝试在我的UIImagePickerController上使用videoQuality设置,但似乎它不起作用,即使我将其设置为UIImagePickerControllerQualityTypeIFrame960x540我的视频出现为720p(640x480正在工作,但我需要更细粒度).

objective-c video-processing

6
推荐指数
1
解决办法
5979
查看次数

在 Apples Metal 框架中定义结构

我正在用 iOS 版 Metal 制作一个小游戏。在我的一个内核着色器中(在我的 .metal 文件中)。我正在定义一个结构来保存游戏部分的一些元数据。

该结构如下所示:

struct ColorSetup {
    float4 color;
    float4 degradationColor;
    float degradationRate;
};
Run Code Online (Sandbox Code Playgroud)

这工作得很好,但是当我尝试向结构中添加更多字段时,例如:

struct ColorSetup {
    float4 color;
    float4 degradationColor;
    float4 threshholdColor;
    float degradationRate;
};
Run Code Online (Sandbox Code Playgroud)

该代码行为不当,似乎无法使用某些字段。此时新字段尚未被使用。我的第一个想法是它与结构的内存对齐有关。我的印象是编译器会添加正确的填充,但仍然继续尝试自己正确调整结构的大小(按降序排列字段并将结构对齐到 48 和 64 字节),但没有任何成功。我还尝试使用打包数据类型来避免对齐问题,但仍然没有成功。

我知道逻辑是正确的,因为我在不使用结构的情况下编写了相同的逻辑,然后将其移植到使用结构来保存具有完全相同行为的数据。但此时添加任何字段都会破坏它。此外,保留原始结构但使用打包数据类型也会以类似的方式破坏它。

struct ColorSetup {
    packed_float4 color;
    packed_float4 degradationColor;
    float degradationRate;
};
Run Code Online (Sandbox Code Playgroud)

所以这看起来肯定是一个内存布局问题,但我不清楚如何在不解决该问题的情况下解决它。

我可以尝试什么想法或想法吗?

编辑:

数据不会通过 MTLBuffer 传递到我的计算着色器中,而是简单地在 .metal 文件中内联的常量内存空间中定义,如下所示:

constant ColorSetup redColor = {
    .color = red,
    .degradationColor = white,
    .degradationRate = 0.0035
};
Run Code Online (Sandbox Code Playgroud)

编辑2:

尝试描述更多发现以及代码实际执行的操作。

所讨论的中断函数是一种根据该结构中提供的值来淡化颜色的方法。

float4 degrade(float4 color, ColorSetup colorSetup, ColorLimit colorLimit) …
Run Code Online (Sandbox Code Playgroud)

memory-layout compute-shader ios c++11 metal

5
推荐指数
0
解决办法
879
查看次数