使用解码字节数组解码h264视频帧始终返回null

时间:2018-12-02 18:03:24

标签: android h.264

我想将h264帧字节数据转换为Bitmap数组,以便可以将其提供给其他来源,我尝试过:

@Override
public ARCONTROLLER_ERROR_ENUM onFrameReceived(ARDeviceController 
deviceController, 
ARFrame frame) {
byte[] data = frame.getByteData();
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
 if(bitmap != null){
   // do something
 }
return ARCONTROLLER_ERROR_ENUM.ARCONTROLLER_OK;
}

但是它不起作用,decodeByteArray无法解码帧返回的字节数据,并且始终返回null。
有什么建议么?

1 个答案:

答案 0 :(得分:2)

BitmapFactory.decodeByteArray()根本无法做到这一点。这是不受支持的格式。

由于P帧,B帧和I帧之类的复杂性,需要一个状态多一些的类才能解码任意H.264帧:

MediaCodec

Here是一个相当不错的代码示例。还有更多。