我从Grafika开始了一个项目并修改了它。我有一个框架(与原始框架没有太大区别),它从Camera捕获预览并同时以不同的分辨率连续将其编码为视频。MediaCodec(用于编码)配置为使用COLOR_FormatSurface,以便我们能够呈现到使用getInputSurface()查询的Surface>使用GLES。媒体格式设置为MIME类型video/avc对于大多数手机,此设置非常有效。但对于一些手机,编码视频的色度值略有偏差,底部有绿色条。目前编码器表面的分辨率为640x360。选择渲染到表面的EGLConfig支持32位RGBA格式。所有手机的预览都很完美。所以我假设应用程
我想在我的ExtendedGLSurfaceView(从GLSurfaceView扩展)中使用eglPresentationTimeANDROID。方法出现在:EGLExt.eglPresentationTimeANDROID(android.opengl.EGLDisplaydisplay,android.opengl.EGLSurfacesurface,longtime);我的主要问题是GLSurfaceView使用javax.microedition中的EGLDisplay、EGLContext和EGLSurface.khronos.egl。但是,eglPresentationT
该应用基于Grafika的相机捕捉Activity(https://github.com/google/grafika/tree/master/src/com/android/grafika)。用户点击一个按钮来录制视频。Nexus5x发生随机崩溃。下面发布了2个日志,说明它何时工作,何时不工作。请告诉我这次崩溃的可能原因是什么,以及您是否需要我发布代码的任何部分。工作:11-2115:55:22.30126556-27085/com.testvideoI/OMXClient:MuxOMXctor11-2115:55:22.50526556-27085/com.testvideoE/A
我对MoviePlayer.java进行了一些简单的计时在Grafika在Nexus5上运行的MediaCodec示例代码。我在这些位置放置了一条日志语句:在第203行之前decoder.queueInputBuffer在第244行之后decoder.dequeueOutputBuffer我使用presentationTimeUs关联了日志语句。这是logcat的摘录:01-2910:56:43.295:I/Grafika(21286):queueInputBufferindex/pts,2,001-2910:56:43.305:I/Grafika(21286):queueInputB
我正在努力使用MediaExtractor的seekTo()进行精确搜索。虽然我可以毫无问题地寻求同步帧,但我想寻求特定时间。This问题使我想到了如何执行此操作的一些想法,但我不确定它们是否有效。基本上,我必须寻找最接近的先前同步帧,然后advance()提取器,直到达到目标时间。过程中的每一帧都将被馈送到解码器,即第一个I帧和其余的P帧。这是相关的代码fragment(基于google/grafika的MoviePlayer):extractor.seekTo((long)seekTarget[threadNr],MediaExtractor.SEEK_TO_PREVIOUS_SY
我用opengles播放视频,我用的是grafika的ContinuousCaptureActivity的方式,我的数据源是MediaPlayer而不是Camera,这没什么区别。MediaPlayer连续生成视频帧,我在onFrameAvailable回调中将每个帧绘制到屏幕上。代码如下,运行良好:mVideoTexture.updateTexImage();mVideoTexture.getTransformMatrix(mTmpMatrix);mDisplaySurface.makeCurrent();intviewWidth=getWidth();intviewHeight=g
我使用ContinuousCaptureActivity.java实现视频录制。它工作完美。现在我想在此视频中添加音频。我知道使用MediaMuxer可以在视频中添加音频。但问题是我不知道如何使用MediaMuxer。此外,如果您有任何其他没有MediaMuxer的解决方案,请与我分享任何链接或文档。我也有演示AudioVideoRecordingSample。但我不明白如何将其与我的代码合并。有知道的请给我解释一下。提前致谢。 最佳答案 合并音频文件和视频文件privatevoidmuxing(){StringoutputFile
最近我正在学习grafika的androidCamera和OpenglES(感谢fadden)。它在大多数设备上都很好,但我在某些设备上遇到了错误,特别是MTK设备(例如MT6580、MT8163...)。例如,当“CameraCaptureActivity”在MTK中运行时。我收到此错误:java.lang.NullPointerException:Attempttoinvokevirtualmethod'voidandroid.hardware.Camera.setPreviewTexture(android.graphics.SurfaceTexture)'onanullobje
CameraLive滤镜的最佳方式是什么。我最近使用链接中的GPUImage库:https://github.com/CyberAgent/android-gpuimagelibrary.比我发现的SurfaceView和GLSurfaceView。问题是:如何使用SurfaceView或GLSurfaceView将实时滤镜应用于相机。提前致谢。 最佳答案 此链接使用纹理Viewhttps://github.com/google/grafika/blob/master/app/src/main/java/com/android/gr
我正在学习Grafika的“ContinuousCapture”Activity,它是关于使用MediaCodec录制视频。Activity源代码位于https://github.com/google/grafika/blob/master/src/com/android/grafika/ContinuousCaptureActivity.java该程序使用一个SurfaceTextureobj从相机接收数据,并使用此SurfaceTextureobj创建2个EGLSurfaceobj,一个EGLSurfaceobj将数据提供给MediaCodec,另一个将数据提供给SurfaceVi