1

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

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

谢谢你的帮助!

4

1 回答 1

1

几点注意事项:

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

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

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

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

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

于 2015-10-03T21:56:23.747 回答