使用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编码字节数组。
答案 0 :(得分:0)
据我所知,在进行解码时必须提供buf和avcC框。在开始任何解码之前,您必须提供avcC数据。
AvcCBox avcCBox = new AvcCBox(); avcCBox.parse(buf);
创建avcC后,您可以使用以下行获取图片。
decoder.decodeFrame(H264Utils.splitMOVPacket(buf, avcCBox), out.getData());
在上面的代码中,buf可能包含也可能不包含多个NAL元素。