免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11986 | 回复: 9
打印 上一主题 下一主题

有关JRTP库的使用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-26 17:56 |只看该作者 |倒序浏览
视频会议
用JRTP库来传输视音频。
一个RTPSession可以向多个地址发送数据的
也就是说只用一个端口,发送数据与接收多路数据。
在局域网上,这样好像还可以,把对方的IP地址的加入到RTPSession就OK了

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

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

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

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

论坛徽章:
0
2 [报告]
发表于 2007-04-27 08:32 |只看该作者
如果你是做视频会议的,关于穿透NAT和防火墙可以看看这篇文章
P2Pnat Media
http://www.pacphone.com/p2pnat.html

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

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

论坛徽章:
0
3 [报告]
发表于 2007-04-27 23:42 |只看该作者
穿透NAT和防火墙
这方面我也清楚
可能是我用这个库,不大好处理穿透NAT和防火墙吧。

论坛徽章:
0
4 [报告]
发表于 2007-04-28 15:18 |只看该作者
是不是要先stun 穿透, 成功后才 RTPSession ?

论坛徽章:
0
5 [报告]
发表于 2007-04-28 16:32 |只看该作者
比如RTPSession已经在用了
还是有点难度的,
让多个socket可以邦定同一端口,比如让RTPSession和自已建立的一个socket
邦定同一端口,然后用自已建立的socket去穿透。
但是可能有这种情况的,
比如可穿透后,外网的往刚才已经穿透的端口发信息,会有可能只有自已建立的socket
收到信息。

论坛徽章:
0
6 [报告]
发表于 2007-04-28 21:39 |只看该作者
但如果在公网上呢
考虑到穿透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中,剩下的应该就是和局域网中的一样了。
这是我所认为的,如果有什么地方有错误,还请指出。

论坛徽章:
0
7 [报告]
发表于 2007-04-30 13:38 |只看该作者
怎么获取对方的公网IP地址和端口??
可以用服务器转发而得到
但也要穿透啊
怎么办?

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

论坛徽章:
0
8 [报告]
发表于 2008-02-02 09:40 |只看该作者
必须要借助于一个位于公网上的提供穿透信息的stun服务器才可以得到相干的地址端口信息

论坛徽章:
0
9 [报告]
发表于 2008-02-22 10:26 |只看该作者
在公网上架一个中转服务器,支持 symmetrical rtp ,原来SER项目中有这样一个模块,
优点:可靠,实现简单
缺点:需要提供一些资源“公网ip,服务器”
还有处理能力基本能够满足,据说每个服务器可以支持K级用户数

论坛徽章:
0
10 [报告]
发表于 2008-03-16 23:26 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP