解码H.264 NALU流

时间:2015-09-28 16:19:26

标签: android video h.264 jcodec

我正试图从Android上的H.264格式的视频流中获取一个帧。我有一个回调函数接收(byte [] video,int size),其中视频由NALU数据包和' size'组成。 int似乎是视频的大小(我已经记录了它们,视频长度和大小似乎都是1024的大小)。我正在使用这个jcodec来尝试解码一个帧:

    ByteBuffer videoBuffer = ByteBuffer.wrap(video);
    H264Decoder decoder = new H264Decoder();
    Picture out = Picture.create(1920, 1088, ColorSpace.YUV420); 
    Picture real = decoder.decodeFrame(videoBuffer, out.getData());
    Bitmap outputImage = AndroidUtil.toBitmap(real);

然而,视频不是整个视频,也不是视频的数据包。我应该如何收集这些数据包以解码它们?我如何修改代码以实际获得完整的当前帧?

1 个答案:

答案 0 :(得分:0)

您需要从您收到的有效负载中解析每个nalu段。请参阅我之前的回答:

MediaCodec crash on high quality stream