如何将android Camera onPreviewFrame上的byte []数据缩放到较低的分辨率

时间:2013-11-06 00:35:43

标签: android android-camera mediacodec

Android相机有一个onPreviewFrame回调函数,可以将一个帧作为byte []数据返回。

我已将相机设置为以1280 x 720返回数据(采用NV21格式)byte []数据。

我想做什么:

我想将一些帧保持在1280 x 720分辨率(到jpeg)。

以较低的分辨率生成mp4基本流(类似于720 x 480)。

问题

如果MediaFormat.Key_Width和MediaFormat.Key_Height不等于onPreviewFrame的宽度和高度,MediaCodec会出错。

我想知道是否可以将我的byte []数据(NV21)从1280 x 720缩放到更低的分辨率(如720 x 480分辨率),然后将其输入编码器?

如果可能,将1221 x 720分辨率的NV21的byte []数据转换为较低分辨率的步骤是什么。

感谢阅读,并感谢任何建议或帮助。

1 个答案:

答案 0 :(得分:0)

是的,有可能。看看图书馆https://code.google.com/p/libyuv/。它可以缩放yuv图像,在不同颜色格式之间进行转换,也可以进行SIMD优化(速度非常快)。