【发布时间】:2012-11-05 06:24:42
【问题描述】:
我想使用MediaCodec 对来自摄像头的数据进行编码(原因:它的级别更低,因此希望比使用MediaRecorder 更快)。使用Camera.PreviewCallBack,我将摄像头中的数据捕获到字节缓冲区中,以便将其传递给 MediaCodec 对象。
为此,我需要填写一个MediaFormat-object,如果我知道来自相机的数据的 MIME 代码,这将相当容易。我可以使用setPreviewFormat() 来选择这种格式,选择在ImageFormat-class 中声明的常量之一。
因此我的问题是:鉴于 ImageFormat 类提供了不同的选项来设置相机预览格式,相应的 MIME 类型代码是什么?
非常感谢。
【问题讨论】:
-
这在 Android 4.3 中变得更容易了。见bigflake.com/mediacodec/#CameraToMpegTest
-
顺便说一句,使用较低级别的 API 可以提供更好的性能是一种迷信。相反的情况很可能是正确的:您可以使用 MediaRecorder 将相机硬件“短路”到编码器硬件,而不是发送像素。
-
如果我错了,请纠正我。 Aegonis 提到:“我想使用 MediaCodec 对来自相机的数据进行编码(原因:它更底层,因此希望比使用 MediaRecorder 更快)。”但我的印象是 Camera Preview 的 fps 比原始相机输出原始数据。
-
这个性能最后是不是更好了?您是否设法实现了良好的帧速率(即 >15fps)?
标签: android video android-camera mime