Grafika和OpenGL在方形的Android上录制视频

时间:2015-10-03 18:41:28

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

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

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

一些注意事项:

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

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

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

  4. Grafika代码的工作原理是将相机送入SurfaceTexture,将相机框架转换为GLES纹理。然后,您可以随意渲染纹理。通过选择方形形状并修改纹理坐标,您可以使用方形视频。

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