我正在开发一款应用程序,可以实时对相机图像应用效果。目前,我将MediaMuxer
类与MediaCodec
结合使用。这些课程是用Android 4.3实现的。
现在我想重新设计我的应用程序并使其兼容更多设备。我在互联网上找到的唯一的东西是FFmpeg和OpenCV的组合,但我读到如果我想使用高分辨率,帧速率不是很好。是否有可能在不使用MediaMuxer
和MediaCodec
的情况下拍摄相机图像时实时编码视频?
PS:我使用GLSurfaceView进行OpenGL片段着色器效果。所以这是必须的。
答案 0 :(得分:0)
软件编解码器不会以中等帧速率对大帧进行实时编码。
4.1中引入了 MediaCodec
,因此只要您可以处理various problems,您仍然可以利用硬件加速压缩。如果你想在最后使用.mp4文件,你还需要替代MediaMuxer
。
某些商业游戏刻录机,例如Kamcord和Everyplay,声称可以在Android 4.1+上运行。所以它在技术上是可行的,但我不知道他们是否使用非公共API将表面直接送入视频编码器。
在Jellybean之前的Android中,它只会变得更难。
(对于有兴趣在> = 4.3中录制GL的人,请参阅EncodeAndMuxTest或Grafika's"记录GL应用"。)