【问题标题】:60/120fps preview data on an Android device?Android 设备上的 60/120fps 预览数据?
【发布时间】:2016-05-05 08:19:08
【问题描述】:

我们希望使用 Neon 组件或 GPU 着色器处理 120 fps(或 60fps)的相机预览数据,以执行简单的图像处理操作(例如 3x3 卷积)。 我们对在屏幕上显示图像不感兴趣,因此相机数据应该直接转到 SurfaceTexture。

我们认为我们可以在 Nexus 5 上使用 CameraConstrainedHighSpeedCaptureSession 使用 Camera2 API 来做到这一点,但没有成功。

互联网上目前没有功能代码(至少我们已经抓取的部分)允许这样做,但似乎很可能存在该功能。

使用 Camera2 API 进行高速录制的最佳示例如下:https://github.com/PkmX/lcamera

为了鼓励某人发布解决方案,我在这个问题上悬赏。

【问题讨论】:

标签: android camera preview camera2 highspeed


【解决方案1】:

这是在pjsip 中完成的。将 repo 拉到你的机器上:

svn checkout -r 4687 https://svn.pjsip.org/repos/pjproject/trunk

然后打开 pjmedia/src/swig 文件夹以获取示例应用程序,该应用程序将从线路传入的视频数据直接呈现到 SurfaceTexture

我已经为你上传了两个最相关的 C 源文件(一目了然——当然还有其他的),在这里:

  1. android_dev.c
  2. android_opengl.c

当然,这些文件包含许多与您无关的代码,但希望有您正在寻找的 sn-p。

如果您不确定如何执行此操作,您可能需要首先遵循一些说明 found here 以生成处理极简 Java/C 接口的 pjmedia/src/pjmedia-videodev/android/PjCamera*.java 文件。我能够按照他们的指示使用与 NDK(使用 10d 或 10e 工作)和 openssl (1.0.2a) 完全相同的版本——并成功渲染视频并创建自定义应用程序。如果您只是修改 C 级视频捕获以通过 JNI 挂钩以与他们相同的方式使用您的 API,那么此源代码完全可以满足您的需求。

有关使用 JNI 挂钩更改 API 的示例,请查看它们在 pjmedia 中的 audiodev 文件夹。

如果您确实构建了他们的项目,请务必按照最底部的说明来构建新的 NDK 版本openssl 1.0.2a注意 ./Configure 上的大写“C”,因为执行标准的 ./configure 可能会启动错误的配置过程。我建议将他们提供的命令复制并粘贴到脚本中。出于您的目的,您可能可以完全跳过 openssl;只有在集成了 openssl 支持后,我才能让我的 Android 设备持续注册 SIP 帐户。

【讨论】:

  • 感谢您的详细回复。您是否设法从流中获得 60 或 120 fps?
  • 这取决于设备,但绝对是:在 2 个现代设备之间,我可以以最大分辨率从相机实时流式传输,(对我而言)通常上限为 30 或 60 fps(w /将完整流传输到第二个设备以进行渲染,如 pjsip 中一样)。在直接渲染到隐藏纹理的本地设备上,我看到的最大帧速率约为 200 fps。
  • 60fps 来自相机? 200 fps 是什么意思?我特别询问来自物理设备相机的帧。您使用的是哪些设备?
  • 抱歉,我的意思是 OpenGL 能够达到高帧率,同时将视频数据(以 30 或 60 fps)捕获/复制到隐藏表面。相机完全依赖于设备。我个人还没有以 120 fps 的速度拍摄,但我也没有尝试过(速度还不是我的视频项目的一个因素)。但是,我使用的 JNI 钩子很慢,但它仍然保持正常。
  • 好的,如果我理解正确,您可以以 60 fps 的速度拍摄,并且在全分辨率下处理速度更快。您使用的是什么分辨率和哪种设备?
【解决方案2】:

我们成功地修改了 camera2video 样本,以在三星 S6 上获得 120 fps 的数据速率。

代码是here

我们还没有设法提取像素,但我们会在此处更新。

【讨论】:

  • 我看到了您在上面分享的代码。关于它有两点要说:1.它不是那么稳定,并且在用于120或更高fps录制(高速录制)时存在一些问题2.代码根本不是为了实现60 fps录制.我现在正在寻找的。那么,如果设备支持 60fps 录制,你有什么对设备有帮助的吗?
猜你喜欢
  • 2015-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-01
  • 2021-10-13
  • 2020-02-08
  • 2017-03-05
相关资源
最近更新 更多