【问题标题】:RTP H.264 Packet DepacketizerRTP H.264 数据包解包器
【发布时间】:2013-03-06 00:20:37
【问题描述】:

通常对于视频,RTP 数据包的标记位指示 RTP 的最后一个数据包。 那么,这样可以保证每个数据包接收 1 帧还是可以接收多个?

在解包之外的情况下,我必须制作一个解析器来分离 H.264 帧?

如果我每个 RTP 数据包可以获得多于一帧,是否有可能获得下一帧的一部分?还是 RTP 数据包中的所有帧(即使完成多个帧)?

最好的问候,

【问题讨论】:

    标签: parsing h.264 packet rtp rfc


    【解决方案1】:

    RFC 6184 "RTP Payload Format for H.264 Video" 对提出的问题有答案。它可以是两种方式:每个数据包 2+ 个 NAL 单元,以及 1 个 NAL 单元在 2+ 个数据包上分段。

    请参阅下面的报价:

    5.7.1。单次聚合包 (STAP)

    NAL 时应使用单次聚合数据包 (STAP) 单位是聚合的,它们都共享相同的 NALU 时间。

    5.8。碎片单元 (FU)

    这种有效负载类型允许将一个 NAL 单元分段为多个 RTP 数据包。在应用层这样做而不是依赖 较低层的分片(例如,通过 IP)具有以下优点:

    【讨论】:

    • 我明白了,谢谢!现在我还有其他问题,但关于音频帧。 stackoverflow.com/questions/15472788/…
    • 有一点不清楚。我收到 RTP 数据包。我将等待基于标记位的最后一个 RTP 数据包。 H264中的标记位将指示什么?最后一个RTP包是什么?相框?一个框架?不止一帧?
    • 早先在 h264 rtp 数据包中包含一个帧是没有意义的。因为一些数据包在 UDP 连接上被丢弃。你能更干净吗?最好的问候,保罗。
    • UDP 数据包可能会乱序到达,也可能会丢失。因此,轮到您尝试尽可能重建 NAL 单元,然后将它们输入解码器等。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    • 2014-10-11
    • 1970-01-01
    • 2014-02-21
    相关资源
    最近更新 更多