从JCodec Picture获取YUV420字节

时间:2014-08-12 19:39:41

标签: java h.264 jcodec

使用H264Decoder我想将解码的YUV420数据作为Java字节数组获取。我到处搜索过,但我没有看到任何合适的例子。

ByteBuffer buf = ByteBuffer.wrap(h264EncodedByteArray);
H264Decoder decoder = new H264Decoder();
// assume that sps and pps are set on the decoder
Picture out = Picture.create(320, 240, ColorSpace.YUV420); 
Picture real = decoder.decodeFrame(buf, out.getData());

" h264EncodedByteArray"将是来自流或文件的h264编码字节数组。

1 个答案:

答案 0 :(得分:0)

据我所知,在进行解码时必须提供buf和avcC框。在开始任何解码之前,您必须提供avcC数据。

AvcCBox avcCBox = new AvcCBox();
avcCBox.parse(buf);

创建avcC后,您可以使用以下行获取图片。

decoder.decodeFrame(H264Utils.splitMOVPacket(buf, avcCBox), out.getData());

在上面的代码中,buf可能包含也可能不包含多个NAL元素。