Android Camera onPreviewFrame帧率不一致

时间:2013-11-12 02:27:44

标签: android android-camera mediacodec

我正在尝试使用MediaCodec通过Camera的PreviewCall返回(onPreviewFrame)来编码每秒30帧的视频。我编码的视频总是播放得非常快(这是不可取的)。 所以,我试图通过设置一个int frameCount变量来检查进入我相机预览的帧数,以记住它的计数。我期待的是每秒30帧,因为我将相机的预览设置为30 fps预览(如下所示)。我回来的结果是不一样的。 我调用onPreviewFrame回调10秒钟,我得到的帧数量只有大约100帧。这很糟糕,因为我期待300帧。我的相机参数设置正确吗?这是Android的Camera预览回拨的限制吗?如果这是对Android相机预览回调的限制,那么还有其他相机回调能够以每秒30帧的速度返回相机的图像数据(nv21,yuv,yv12)吗?

感谢阅读并花时间去帮忙。我将不胜感激任何评论和意见。

以下是使用Camera的onPreviewFrame编码视频的示例:

http://www.youtube.com/watch?v=I1Eg2bvrHLM&feature=youtu.be

                Camera.Parameters parameters = mCamera.getParameters();
                parameters.setPreviewFormat(ImageFormat.NV21);
                parameters.setPictureSize(previewWidth,previewHeight);
                parameters.setPreviewSize(previewWidth, previewHeight);
//              parameters.setPreviewFpsRange(30000,30000);

                parameters.setPreviewFrameRate(30);
                mCamera.setParameters(parameters);

                mCamera.setPreviewCallback(previewCallback);
                mCamera.setPreviewDisplay(holder);

0 个答案:

没有答案