有关JRTP库的使用

发布于 2022-07-29 01:31:40 字数 492 浏览 21 评论 9

视频会议
用JRTP库来传输视音频。
一个RTPSession可以向多个地址发送数据的
也就是说只用一个端口,发送数据与接收多路数据。
在局域网上,这样好像还可以,把对方的IP地址的加入到RTPSession就OK了

但如果在公网上呢
考虑到穿透NAT问题, 怎么样得对方IP地址呢
双方视频传输都是用RTPSession来传输的
所以要用RTPSession所用的(IP,Port)地址来互相穿透啊

但比如,某一方已经在视频会议中了。
那它们之间又是怎么用RTPSession所用的(IP,Port)地址来互相穿透呢??

另一种方法
有几路视频就用几个RTPSession
这样的话,比较好解决穿透NAT问题,一个RTP/RTCP就用了两个端口,
如果有n路视频就得开2*n端口了哦。
好像这样不好吧。

请教各位了,大家一起讨论讨论。

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

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

发布评论

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

评论(9

清君侧 2022-07-30 14:31:22

滿滿的愛 2022-07-30 14:28:54

在公网上架一个中转服务器,支持 symmetrical rtp ,原来SER项目中有这样一个模块,
优点:可靠,实现简单
缺点:需要提供一些资源“公网ip,服务器”
还有处理能力基本能够满足,据说每个服务器可以支持K级用户数

深海不蓝 2022-07-30 14:26:53

必须要借助于一个位于公网上的提供穿透信息的stun服务器才可以得到相干的地址端口信息

欢烬 2022-07-30 14:18:38

怎么获取对方的公网IP地址和端口??
可以用服务器转发而得到
但也要穿透啊
怎么办?

而对方公网IP地址和端口也就是对方RTPSession所用的公网IP地址和端口啊
怎么穿透??

︶ ̄淡然 2022-07-30 14:09:43

但如果在公网上呢
考虑到穿透NAT问题, 怎么样得对方IP地址呢

目前比较有效和实用的方法是采用 STUN协议来获取对方真实的公网IP地址和端口。而且我发现大多说的穿透方案都是采用这种。比如RadVision公司的,有专门的STUN协议栈出售。当然网上也有开源的STUN实现。比如OpenH323协议栈里就包含。

但比如,某一方已经在视频会议中了。
那它们之间又是怎么用RTPSession所用的(IP,Port)地址来互相穿透呢??

对于JRTPLib应该不关心是否有NAT的问题,我找了它的源代码以及changlog,没有发现任何和穿透相关的(我对JRTPLib库不熟悉,如果有错)。它所关心的就是发送方的IP地址和端口。至于怎么获取对方真实的公网IP地址和端口,应该采用其它方法,比如我上面说的STUN协议。

另一种方法
有几路视频就用几个RTPSession
这样的话,比较好解决穿透NAT问题,一个RTP/RTCP就用了两个端口,
如果有n路视频就得开2*n端口了哦。
好像这样不好吧。

为什么不行呢?只要能满足需求,就可以。只不过要考虑是否有这个必要?有没有更简单的方法。

比如RTPSession已经在用了
还是有点难度的,
让多个socket可以邦定同一端口,比如让RTPSession和自已建立的一个socket
邦定同一端口,然后用自已建立的socket去穿透。
但是可能有这种情况的,
比如可穿透后,外网的往刚才已经穿透的端口发信息,会有可能只有自已建立的socket
收到信息。

不是很理解你这句用自己的socket去穿透 的意思?JRTPLib中RTP是承载在UDP上的,而UDP是无连接的,只要往对方的IP地址和端口发送就可以。
我认为归根结底的问题是怎么获取对方的公网IP地址和端口。只要获取了这个IP地址,然后把它填入RTPSession中,剩下的应该就是和局域网中的一样了。
这是我所认为的,如果有什么地方有错误,还请指出。

世俗缘 2022-07-30 13:59:29

比如RTPSession已经在用了
还是有点难度的,
让多个socket可以邦定同一端口,比如让RTPSession和自已建立的一个socket
邦定同一端口,然后用自已建立的socket去穿透。
但是可能有这种情况的,
比如可穿透后,外网的往刚才已经穿透的端口发信息,会有可能只有自已建立的socket
收到信息。

梅倚清风 2022-07-30 13:49:55

是不是要先stun 穿透, 成功后才 RTPSession ?

随风而去 2022-07-30 13:09:43

穿透NAT和防火墙
这方面我也清楚
可能是我用这个库,不大好处理穿透NAT和防火墙吧。

仅此而已 2022-07-30 07:31:46

如果你是做视频会议的,关于穿透NAT和防火墙可以看看这篇文章
P2Pnat Media
http://www.pacphone.com/p2pnat.html

怎么获取真实的IP地址,可以采用STUN协议。

[ 本帖最后由 matthew6868 于 2007-4-27 08:36 编辑 ]

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