客户端无法收到RTSP流媒体的UDP数据

everything_at_once 2016-07-29 02:03:01
具体情况是:有两个RTSP流1和流2,程序和RTSP流Describe,setup,play都受到服务器返回的200 ok,但就是收不到流1的UDP音视频数据。
测试还发现有下面几个很奇怪的问题。
1,同样的代码,连接流2的流媒体地址,就可以正常的收到UDP数据。
2,在另外一台电脑上运行,流1和流2的流媒体地址都可以收到UDP数据。

通过对不能收到流1UDP数据的客户端电脑进行抓包,发现客户端setup收到服务器返回的source是127.0.0.2,并不是describe阶段返回的IP,通过代码将127.0.0.2替换成describe阶段返回的IP还是收不到UDP数据。

找了很多资料,发现如果是访问外网RTSP,UDP数据无法到达内网,需要穿透和打洞。但是另外一台电脑两个流都是可以收到UDP数据的,是其他硬件上设置不一样导致的么?
跪求大侠指点迷津。

下面附上部分抓包数据:(收不到流1UDP数据包的setup信息)

SETUP rtsp://123.147.112.180:1554/285.rsc/5813_Uni.sdp/trackID=2 RTSP/1.0
CSeq: 4
Transport: MP2T/RTP/UDP;unicast;destination=192.168.1.7;client_port=58632-58633,MP2T/UDP;unicast;destination=192.168.1.7;client_port=58632-58633,MP2T/RTP/TCP;unicast;destination=192.168.1.7;interleaved=0-1,MP2T/TCP;destination=192.168.1.7;interleaved=0-1;
Accept: application/sdp
User-Agent: CTC RTSP 1.0 ZTE Ltd RTSP Client V2.0

RTSP/1.0 200 OK
Server: ZMSS_ChinaTelcom2.2/ZXMSSV3.00.23.13U08P05T01
CSeq: 4
x-KeepAliveInterval: 60000
Session: 1692097354928662503
Date: Wed, 27 Jul 2016 10:25:18 GMT
Expires: Wed, 27 Jul 2016 10:25:18 GMT
Transport: MP2T/RTP/UDP;unicast;destination=192.168.1.7;source=127.0.0.2;client_port=58632-58633;server_port=6480-6481


能正常收到UDP数据的setup信息

SETUP rtsp://123.147.112.184:1554/220.rsc/5751_Uni.sdp/trackID=2 RTSP/1.0
CSeq: 4
Transport: MP2T/RTP/UDP;unicast;destination=192.168.1.7;client_port=54328-54329,MP2T/UDP;unicast;destination=192.168.1.7;client_port=54328-54329,MP2T/RTP/TCP;unicast;destination=192.168.1.7;interleaved=0-1,MP2T/TCP;destination=192.168.1.7;interleaved=0-1;
Accept: application/sdp
User-Agent: CTC RTSP 1.0 ZTE Ltd RTSP Client V2.0

RTSP/1.0 200 OK
Server: ZMSS_ChinaTelcom2.2/ZXMSSV3.00.23.13U08P05T01
CSeq: 4
x-KeepAliveInterval: 60000
Session: 6490700062545984986
Date: Wed, 27 Jul 2016 10:18:15 GMT
Expires: Wed, 27 Jul 2016 10:18:15 GMT
Transport: MP2T/RTP/UDP;unicast;destination=192.168.1.7;source=123.147.112.184;client_port=54328-54329;server_port=11916-11917



...全文
931 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
everything_at_once 2016-08-11
  • 打赏
  • 举报
回复
问题解决了,在此谢谢大家的帮助。 UDP方式传输数据经过测试确实在某些电脑上无法收到数据,具体的原因后面有时间在查吧。 所以采用TCP方式接收数据。
rightorwrong 2016-08-10
  • 打赏
  • 举报
回复
应该不会发到另个网卡吧,你再找个只有一个网卡的机器试
everything_at_once 2016-08-09
  • 打赏
  • 举报
回复
难道和各个网卡的优先级有关么?
everything_at_once 2016-08-09
  • 打赏
  • 举报
回复
引用 5 楼 sharkka 的回复:
[quote=引用 3 楼 everything_at_once 的回复:] [quote=引用 2 楼 sharkka 的回复:] 你确定收不到UDP数据的那台机器是一个网卡吗
两个网卡。[/quote] 发到另一个网卡上去了[/quote] 程序已经绑定了两个网卡中其中一个的IP地址,但是就是收不到数据,需要做什么特殊设置么?
百灵工作室 2016-08-01
  • 打赏
  • 举报
回复
引用 3 楼 everything_at_once 的回复:
[quote=引用 2 楼 sharkka 的回复:] 你确定收不到UDP数据的那台机器是一个网卡吗
两个网卡。[/quote] 发到另一个网卡上去了
everything_at_once 2016-08-01
  • 打赏
  • 举报
回复
引用 1 楼 rightorwrong 的回复:
服务端代码是自己写的吗 服务端能否抓包,看看不能收到流时,数据发送到哪儿了
服务器端不是自己写的,只有流媒体地址。
everything_at_once 2016-08-01
  • 打赏
  • 举报
回复
引用 2 楼 sharkka 的回复:
你确定收不到UDP数据的那台机器是一个网卡吗
两个网卡。
百灵工作室 2016-07-29
  • 打赏
  • 举报
回复
你确定收不到UDP数据的那台机器是一个网卡吗
rightorwrong 2016-07-29
  • 打赏
  • 举报
回复
服务端代码是自己写的吗 服务端能否抓包,看看不能收到流时,数据发送到哪儿了

2,553

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧