0

我正在尝试从 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);

但是,视频不是整个视频,它是视频的数据包。我应该如何收集这些数据包以便对其进行解码?我如何需要修改代码才能真正获得完整的当前帧?

4

1 回答 1

0

您需要从您收到的有效负载中解析我们的每个 nalu-segment。请看我之前的回答:

MediaCodec 在高质量流上崩溃

于 2015-09-29T13:36:01.280 回答