1

Android 相机有一个 onPreviewFrame 回调,它会返回一个帧作为 byte[] 数据。

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

我想做的事:

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

并以较低的分辨率(如 720 x 480)生成 mp4 基本流。

问题

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

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

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

感谢阅读,如果有任何建议或帮助,将不胜感激。

4

1 回答 1

0

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

于 2013-11-06T08:33:21.900 回答