how to decode h264 byte[] to BufferedImage [Java]

549 views Asked by At

I am receiving a byte[] for every frame of a video stream and want to decode it to a BufferedImage using JCodec library.
This is my code:

private H264Decoder decoder = new H264Decoder();
private ByteBuffer bb = null;
private Picture out = Picture.create(960, 720, ColorSpace.YUV420);
private void decode(byte[] data) {
    System.out.println("decoding");
    bb = ByteBuffer.wrap(data);
    Picture real = decoder.decodeFrame(bb, out.getData());
    BufferedImage bi = AWTUtil.toBufferedImage(real);
}

But this is the error message I get when I call the decode() method:

Exception in thread "Thread-1" java.lang.NullPointerException
at org.jcodec.scale.AWTUtil.toBufferedImage(AWTUtil.java:28)
at TelloCameraThread.decode(TelloCameraThread.java:88)
at TelloCameraThread.run(TelloCameraThread.java:62)

Does anyone see the mistake I'm making or have alternative ideas to achieve my goal?

Help appreciated.

nvplus

0

There are 0 answers