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 []数据转换为较低分辨率的步骤是什么。
感谢阅读,并感谢任何建议或帮助。
答案 0 :(得分:0)
是的,有可能。看看图书馆https://code.google.com/p/libyuv/。它可以缩放yuv图像,在不同颜色格式之间进行转换,也可以进行SIMD优化(速度非常快)。