android sipdroid RTP 数据包类 hasMarker 函数始终返回 false。

发布于 2024-11-03 16:58:49 字数 235 浏览 10 评论 0原文

我在我的 VoIP android 应用程序中使用 android SipDroid RTP 数据包类。我将捕获的帧分成小数据包。我已经设置了序列号、时间戳和标记。 但是当我看到日志 RTP 数据包标记 hasMarker 函数总是返回 false 。即使我将其设置为 true,它也只返回 false。因此很难重新组装完整的帧,因此我暂时根据小于 1024 的数据包大小重新组装数据包,这是相应时间戳的最后一个数据包。

有什么解决办法吗?

I am using android SipDroid RTP packet class in my VoIP android application. I am fragmenting the captured frames into small packets. I have set seqno, timestamp and marker.
But when I see log RTP packet marker hasMarker function always returns false . Even I set it to true it returns only false. So very difficult to reassemble complete frame so temporarly I reassemble packet based on packet size less than 1024 which is the last packet of respective timestamp.

any solution?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清欢 2024-11-10 16:58:49

标记的使用取决于流的类型。在大多数音频流中,标记指示流中的不连续性(即音频数据包“突发”的第一个数据包)。对于视频编解码器,通常意味着帧的最后一个数据包,尽管对于大多数编解码器,这也可以通过下一个数据包中的时间戳变化来推断。然而,帧边界处的数据包丢失可能会混淆该启发式方法,因此标记可能很有用。 (某些编解码器(H.264)使用内部显式片段结束打包标记,使标记几乎无关紧要。)

至于它消失的原因 - 您需要调试代码和您正在使用的任何库,并且可能还检查 tcpdump /wireshark 捕获。

Use of Marker depends on the type of stream. In most audio streams, Marker indicates a discontinuity in the stream (i.e. the first packet of a "spurt" of audio packets). For video codecs, normally it means the last packet of a frame, though for most codecs this can also be inferred by a the timestamp changing in the next packet. However, packet loss at a frame boundary can confuse that heuristic, so Marker can be useful. (Some codecs (H.264) use internal explicit end-of-fragment packetization markers, making Marker mostly irrelevant.)

As to why it's disappearing - you need to debug your code and whatever libraries you're using, and probably also check tcpdumps/wireshark captures.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文