通常对于视频,RTP 数据包的标记位指示 RTP 的最后一个数据包。那么,这样可以保证每个数据包接收 1 帧还是可以接收多个?
在解包之外的情况下,我必须制作一个解析器来分离 H.264 帧?
如果我每个 RTP 数据包可以获得超过一帧,是否有可能获得下一帧的一部分?还是 RTP 数据包中的所有帧(即使完成了多个帧)?
最好的祝福,
RFC 6184“H.264 视频的 RTP 有效负载格式”对提出的问题提供了答案。它可以是两种方式:每个数据包 2+ 个 NAL 单元,以及 1 个 NAL 单元在 2+ 个数据包上分段。
请参阅下面的报价:
5.7.1。单次聚合包 (STAP)
每当聚合所有共享相同 NALU 时间的NAL 单元时,都应该使用单次聚合数据包 (STAP) 。
和
5.8. 碎片单元 (FU)
这种有效载荷类型允许将一个 NAL 单元分成几个 RTP 数据包。在应用层这样做而不是依赖较低层的分片(例如,通过 IP)具有以下优点: