【问题标题】:Android OpenGL video captureAndroid OpenGL 视频捕获
【发布时间】:2011-04-13 11:59:31
【问题描述】:

有谁知道一些从 Android 设备上的 OpenGL 应用程序捕获视频到文件或流式传输的便捷方法?

例如,我们可以从视图、opengl 视图中捕获视频吗?

我刚刚发现了以下内容: 1)我们可以使用 glReadPixels 获取帧。 (这一步没有视频?) 2) MediaRecorder 可以对视频进行编码,但如果可能的话,我们如何提供我们的原始源? 3)ffmpeg(例如)或其他编码库的任何工作端口?有一些portng ffmpeg的教程可以在NDK中使用。那么,拥有原始帧和 ffmeg 的工作端口我们可以创建视频吗?这一步有什么问题吗?有人成功地移植了任何编码库吗?我需要 ffpmeg 的哪些组件?

首选格式是 mp4 或 flv。目标设备 > 2.1。 NDK没问题

【问题讨论】:

    标签: android video opengl-es ffmpeg android-ndk


    【解决方案1】:

    您的问题不是一个简单的答案,但这里有一些建议至少可以让您朝着正确的方向前进。

    要从通用 MediaPlayer 捕获视频帧(非 gl 视图),您需要硬件支持,我的意思是设备驱动程序。如今,大多数硬件供应商都在其芯片中提供硬件加速器,例如 DSP,以加快视频和相机用例的速度。除此之外,还有用户空间支持(媒体框架和应用程序)允许您访问设备驱动程序,因此媒体框架将是您完成视频捕获的最佳选择。我建议您研究一些开源项目,例如 Android 中的 gst-plugins (http://gitorious.org/rowboat/external-gst-plugins-android/trees/master),这肯定会让您了解事情是如何叠加的。

    对于 gl-view 案例,您需要在 GL 驱动程序中提供某种纹理流式处理支持。目前还没有标准的方法来做到这一点(即,当前的驱动程序可能通过专有扩展来支持它)。使用 glReadPixels 捕获帧效率不高,因为涉及到刷新,这会损害您的帧速率。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      • 1970-01-01
      • 2011-07-19
      • 2010-09-14
      相关资源
      最近更新 更多