【问题标题】:Grafika and OpenGL to record a video on android in square shapeGrafika 和 OpenGL 在 android 上以方形录制视频
【发布时间】:2015-12-31 18:48:57
【问题描述】:

我目前正在尝试以方形录制视频并将输出创建为 .mp4。似乎真的很有挑战性。我尝试了不同的方法,包括:OnPreviewFrame 和 FFMpeg。但一直没有得到满意的结果。今天我找到了Grafika。这似乎是正确的方法。但是由于代码的复杂性,我现在被困住了。使用示例:CameraCaptureActivity.java 我设法录制了视频。但它的形状是长方形而不是正方形。此外,相机旋转了 90 度。我已经在尝试操纵某些参数,但从来没有得到一个好的视频。一些被挤压的地方等等。

有人知道我需要在 Grafikas 示例中更改哪些参数才能获得正确的结果吗? 最后,我的 Android 手机的摄像头应该会录制 Vine 或 Instagram 等视频。

感谢您的帮助!

【问题讨论】:

    标签: android video opengl-es android-camera grafika


    【解决方案1】:

    一些注意事项:

    1. CameraCaptureActivity 很复杂,因为它试图使用 GLSurfaceView(最初是为了回答 this question)。 ContinuousCaptureActivity 是更好的选择。

    2. 您通常无法通过设置相机参数将相机预览限制为任意形状。您必须接受它提供给您的图像或视频帧,然后修改它们以使其看起来像您想要的那样。在您的情况下,这意味着剥离顶部/底部或左/右边缘。

    3. 我很确定 Instagram 不再是严格的正方形。所以你可能落后于时代。 :-)

    Grafika 代码通过将相机输入 SurfaceTexture 来工作,这会将相机帧转换为 GLES 纹理。然后,您可以随心所欲地渲染纹理。选择正方形,修改纹理坐标,就可以得到正方形视频了。

    最好的起点是“来自相机的纹理”活动。特别注意“缩放”功能,它调整纹理坐标以选择图像的内部部分。您可以修改ScaledDrawable2d#getTexCoordArray() 以映射框架的内部,并修改渲染代码以使用方形四边形。将其输入视频编码器。

    【讨论】:

    • 我试图找出新的方法来进行方形视频录制。然而,似乎很难获得一个好的和干净的工作解决方案。每种方法都有其缺点和限制。即使使用 OpenCv,似乎也很难得到令人满意的东西。主要问题是:足够的FPS,压缩的分辨率。您知道创建带有方形格式预览的视频的好方法吗?谢谢
    猜你喜欢
    • 2015-04-28
    • 1970-01-01
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 2014-06-12
    • 1970-01-01
    • 2012-02-19
    相关资源
    最近更新 更多