在用 FFmpeg RTP 传输 H.264 ,本来想着发一个帧就能收到一个帧,但测试老是反馈延迟高,我就自己测试了一下。
结果发现要接收 n 个帧,必须发送 n + 2 个帧,难顶。下面的例子之所以能收到两个是因为第二个超时了,我也不懂为什么超时就能收到第二个包。
看来得参考 RTP 自己造轮子了。
10-20 16:27:34.582 I sdp: v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 239.0.0.1
t=0 0
a=tool:libavformat 61.1.100
m=video 16384 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z2QAHqzZQKAv+XARAAADAAEAAAMAMg8WLZY=,aOvjyyLA; profile-level-id=64001E
10-20 16:27:34.583 I send packet, pts: 0
10-20 16:27:34.600 I send packet, pts: 16666
10-20 16:27:34.617 I send packet, pts: 33332
10-20 16:27:34.617 I pkt pts: -9223372036854775808
10-20 16:27:44.629 I pkt pts: 1500
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.