Android MediaMuxer将Surface连接到Codec输入

好的,我已经回顾了实施Android MediaMux的Fadden’s example.我不知道如何让我的场景进入MP4多路复用编解码器的表面输入.我正在研究一种音频处理器,它会消耗音频和视频I / O,因此MediaRecord会失败,但MediaMux听起来像是一个可行的解决方案.

从编解码器创建一个inputSurface:

videoInputSurface = codec.createInputSurface();

我已经有一个实现的openGLSurfaceView.我只需通过调用即可从视图中获取表面:

myGLSurface = myGLView.getHolder().getSurface();

但这并未设定表面.它只是抓住它.有没有一种简单的方法可以让myGLSurface写入videoInputSurface.

为了进一步复杂化,我将cameraPreview添加到同一个视图组,vg,myGLView被写入:

vg.addView(mCameraPreview);

并且myGLView设置为透明,以便openGL场景覆盖在cameraPreview的顶部.

myGLView.getHolder().setFormat(PixelFormat.TRANSLUCENT);

是否有一种简单的方法获取vg的表面元素?简单地将编写的内容放在videoInputSurface上用于编解码器的vg帧?

谢谢,

解决方法:

尝试查看this.第一个example显示如何通过编解码器输入表面上的OpenGL ES命令绘制,以通过Mediamuxer将其记录到MP4文件.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...