无法通过RTP UDP在FU-A模式下打包h264流

时间:2012-05-18 01:19:18

标签: video-streaming h.264 mp4 rtp

我在使用SIP和RTP over UDP打包h.264流时遇到了麻烦。 我在mp4中使用FU-A分组模式进行视频avc音轨。 我花了一些时间来确定碎片是否正确,RTP数据包的持续时间戳,以及碎片单元上最后一个数据包的标记位。 有人可以看看我发布的链接下面的数据包,其中包含下面的mp4流。您将需要使用ssrc 0x1653检查wireshark pcap中的第一个h264 RTP流,这是我尝试打包的流。正在接收流的视频电话不显示流,我正在尝试解决原因。谢谢你的任何分析。 保罗

http://antinori.us/h264.packets.pcap

http://antinori.us/beck-videoplayback.mp4

1 个答案:

答案 0 :(得分:1)

首先,我不知道mp4文件结构,但确实知道H.264打包。 基于我的H.264 Packetization知识,似乎有两个问题。

碎片单元结构本身看起来很好。

在您的数据包文件" http://antinori.us/h264.packets.pcap" ,

  1. 可能是PPS(数据包#72)不正确。该值与SPS(数据包#71)完全相同。让我们假设PPS是正确的。 通常PPS比SPS短(在我的情况下只有4个字节 - H.264 Baseline profile甚至H.264 High Profile。)
  2. 在SDP(数据包#67)的中间,有一个字段" a"参数" profile-level-id"该值应该是NAL IDR之后的前3个字节,因此该值应为" 42C01E"
  3. 为了您的信息,我制作了一份SPS(序列参数集 - 数据包#71)

    6742c01e924405017fcb080000030008000003018078b177ffffffffffffe0

    在第一个NAL单元序列参数设置字节(67)之后,接下来的三个字节用于" profile-level-id"