确定 H.264 帧的持续时间

Determine the duration of H.264 frame

单个 RTMP 视频消息通常携带一个 H.264 帧和时间戳增量。通常时间戳增量表示单个视频帧的持续时间,例如。 25FPS 视频为 40 毫秒。这允许通过计算流中 RTMP 视频增量的总和来计算流的持续时间。

但是,对于某些编码器(例如 Wirecast),偶尔会有仅包含一个 H.264 帧的 RTMP 视频消息,但时间戳增量是单个视频帧持续时间(例如 120 毫秒、160 毫秒等)的倍数。

这是否意味着在某些情况下单个 H.264 帧可以代表多个视频帧?哪个 H.264 帧元信息(字段)表示这个?如何区分所选帧的时间戳增量应该不同于单个视频帧的持续时间?我想正确计算单个 H.264 帧的演示时间戳。

这些可能是丢帧。对于 RTMP,您应该始终假设可变帧率(无论 onMetadata 说什么)