我正在尝试从 Android 上 H.264 格式的 videoStream 中获取帧。我有一个接收 (byte[] video, int size) 的回调函数,其中视频由 NALU 数据包组成,'size' int 似乎是视频的大小(我一直在记录它们以及 video.length 和大小似乎是 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);
但是,视频不是整个视频,它是视频的数据包。我应该如何收集这些数据包以便对其进行解码?我如何需要修改代码才能真正获得完整的当前帧?