使用H264Decoder,我想将已解码的YUV420数据作为Java字节数组获取.我搜索了所有内容,但没有找到合适的示例.
Using an H264Decoder I would like to obtain the decoded YUV420 data as a Java byte array. I have searched all over and I don't see any examples that fit.
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编码字节的数组.
The "h264EncodedByteArray" would be an array of h264 encoded bytes from a stream or file.
推荐答案据我所知,解码时必须提供buf和avcC框.在开始任何解码之前,您必须提供avcC数据.
As far as I can tell the buf and avcC box must be supplied when doing the decode. Before any decoding can commence, you must provide avcC data.
AvcCBox avcCBox = new AvcCBox(); avcCBox.parse(buf);创建avcC之后,您可以使用以下行获取图片.
After the avcC is created, you can use the following line to get the Picture.
decoder.decodeFrame(H264Utils.splitMOVPacket(buf, avcCBox), out.getData());在上面的代码中,buf可能包含或可能不包含多个NAL元素.
In the code above the buf may or may not contain multiple NAL elements.
更多推荐
从JCodec图片获取YUV420字节
发布评论