我在我的项目中使用 avcodec H264 解码器。我从网络接收 NAL 单元,将来自同一帧的 NAL 粘在一起(在网络层添加了额外的 header ),然后传递给解码器。我想知道帧序列号是否被编码到 NAL 单元中 - 这将是合乎逻辑的,因为我们需要对 IDR 帧的引用。
如果存在此信息 - 我如何提取它?
现在我正在研究 ITU-T H.264 规范,我承认它非常复杂。到目前为止,我还没有找到问题的答案。
最佳答案
没有。 frame_num 是不够的(因为它对于不同的帧可能是相等的,而不是由于 MaxFrameNum 帧溢出)。例如,后续 B 帧可以具有相同的 frame_num 但不同的 pic_order_cnt_lsb。正如我所说,您需要阅读 H.264 规范中的“7.4.1.2.4 Detection of the first VCL NAL unit of a primary coded picture”,以从不同的初级编码图片中找出 NAL。要找出一张图片中 NAL 的顺序,您可以分析 first_mb_in_slice 的值。
关于c++ - x264/avcodec : Deduce frame sequence number from NAL unit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22813800/