我目前正在通过网络发送单个NAL单元。这些NAL单元是由x264生成的。现在有可能将这些NAL单元单独馈送到avcodec_decode_video2吗?
或者我必须将所有的单位连接起来,直到它们表示相同的帧?如果是这样,那该怎么做呢?
我也读到我可能能够收到SPS和PPS数据包。然后等待至少一个数据包,并尝试解码。这是正确的吗?
如能提供任何建议将不胜感激
是的,我们可以将NAL单元单独传递给解码器。H264能够将每个帧分成多个NAL单元的多个片。请参阅教程,其中提供了使用ffmpeg解码的步骤。http://dranger.com/ffmpeg/tutorial01.html。
还要检查av_read_frame调用的输出,以了解帧数据是如何传入的。建议您参考下面的堆栈溢出链接,该链接也解释了NAL解码的问题H264:用ffmpeg
我有一个类似的问题-设置数据包上的key_frame解决了任何NAL问题。还要确保在编解码器上下文中设置了额外的数据。