当前位置: 首页 > 知识库问答 >
问题:

OpenGL surface(GLSURFACEVIEW)的Android视频录制

赵华彩
2023-03-14

我正在做一个项目,我们需要记录渲染的OpenGL曲面。(例如,如果我们使用GLSURFACHEVIEW,我们需要将曲面与麦克风的音频一起录制)

目前,我正在使用MediaRecorderAPI,将视频源设置为VIDEO_SOURCE_GRALLOC_BUFFER

我使用以下示例作为基本代码

我想知道。。。。

  1. 这条路对吗。有更好的替代品吗
  2. 链接中给出的示例测试正在录制EGL表面的音频和视频,但未正确显示

原因可能是什么?
任何帮助/指针都非常感谢。

谢谢,萨蒂什

共有1个答案

墨财
2023-03-14

您引用的代码不是示例,而是执行非公共接口的内部测试代码SurfaceMediaSource可能会在将来的版本中更改或消失,并破坏您的代码。

更新:Android 4.3(API 18)允许对MediaCodec进行表面输入。EncodeAndMuxTest示例演示如何将OpenGL ES帧记录到一个文件中。mp4文件。

MediaRecorder类不接受表面输入,因此您需要单独录制音频,然后将其与新的MediaMuxer类组合。

更新2:Android 5.0(API 21)允许对MediaRecorder进行表面输入,这通常比MediaCodec方便得多。如果您需要使用MediaCodec,在Grafika的“record GL activity”(记录GL活动)中有一个示例显示了三种记录OpenGL ES输出的不同方法。

MediaProjection类也可用于屏幕录制。

 类似资料:
  • 我正在尝试将过滤器(如Instagram的过滤器)应用于现有视频。 我使用GLSURFACHEVIEW显示视频帧,并希望通过对传入帧应用特定过滤器,使用onDrawFrame()渲染每个帧。 但是在onDrawFrame()中,如何获取传入帧? 谢谢

  • 我正在尝试开发一个应用程序,允许我在录制视频时绘制视频,然后将录制的视频和视频保存在一个mp4文件中供以后使用。另外,我想使用camera2库,特别是我需要我的应用程序在高于API 21的设备上运行,我总是避免使用不推荐的库。 我尝试了很多方法,包括FFmpeg,其中我放置了TextureView的覆盖层。getBitmap()(来自摄影机)和从画布获取的位图。它工作正常,但由于它的功能很慢,视频

  • 本文向大家介绍Android自定义录制视频功能,包括了Android自定义录制视频功能的使用技巧和注意事项,需要的朋友参考一下 Android录制视频MediaRecorder+SurfaceView的使用方法,供大家参考,具体内容如下 先看效果图: <1>将视频动画显示到SurfaceView控件上 <2>使用MediaRecorder类进行视频的录制 常用的方法: 下面看代码: 以上就是本文的

  • 我在Android中使用新的库CameraX和Firebase ML工具包,并检测设备可以检测的每一帧人脸。 我知道这个库仍然在阿尔法,但我想有一种方法可以做到这一点。 即使没有jet,用Firebase ML录制视频时,还有什么方法可以实现人脸检测呢?

  • 请,有人能提供一个使用CameraX库和GLSURFACHEVIEW的好例子吗?找不到任何信息。

  • 在遵循类似的教程之后,我正在使用MediaRecorder类用相机录制视频 http://androidcookbook.com/Recipe.seam;jsessionid=40151FCD26222877E151C3EEFB406EED?recipeId=1375 我希望在录音时能够使麦克风静音/取消静音。怎么可能呢? 我正在开始设置音频源 但是如果我想在某个时候录制没有声音的音乐呢?