FU-A每帧多片NALU RTP打包

时间:2015-03-11 22:01:28

标签: networking video-streaming rtp

我们使用我们的编解码器每帧编码2个切片,并且在VLC播放器上播放时我们获得了良好的H264文件输出。
但是当我们将RTP打包成编码数据并流式传输到VLC时,它会显示伪像。如果我们每帧使用一个切片,我们的打包就可以了,VLC上的流也看起来不错。
我们正在使用FU-A碎片和我的编码文件配置:

resolution: 640x480
framerate: 30fps
bitrate: 800 Kbps

我们的编码器配置为每10帧使用High Profile,CBR,IDR。

我们的编码器输出比特流如下所示:

00 00 00 01 67 [DATA] 00 00 00 01 68 [DATA] 00 00 00 01 65 [DATA] 00 00 00 01 65 [DATA] 00 00 00 01 41 [DATA]

所以这里我们有两个连续的切片NALU(0x65)。 在我们的RTP pcap中,一切看起来都很好 - FU-A碎片,标记位等,但VLC和ffplay都显示了类似的伪像,就像帧的上半部分被拉伸(垂直)一样。
我的pcap文件链接:
http://www.filedropper.com/rtp

所以我将测试用例缩减为一个小的,低比特率(50 Kbps)的QCIF流,没有碎片,我仍然看到同样的问题。
我的pcap文件链接:
http://www.filedropper.com/rtpqcif


任何专家都可以查看pcap文件,看看可能导致VLC播放流的问题是什么?

谢谢你,
Harshal Patel

1 个答案:

答案 0 :(得分:1)

虽然这是一个非常古老的问题,但是当使用相同的时间戳聚合多个NAL-U时(如示例所示),分组器应使用STAP-A模式而不是FU-A。 FU-A用于单个时间戳NAL-U,不适合RTP数据包。

你需要解决打包器问题,一切都会顺利进行。