live555服务端无故停止发送

yong_hen 2014-12-18 11:09:30
前一段时间根据live555的testOnDemandRTSPServer做了一个服务端程序发送流媒体数据的程序,如果选择UDP传输的话,程序运行很好。选择TCP的话,服务端总是无故停止发送。主要情况如下:
1、发送640x480视频没有问题。分辨率越大,越容易出问题,并且出问题的时候越早。
2、如果开启RTPIntelface中的DEBUG_ _SEND宏,则不论发什么分辨率都不出问题。(注:有consol窗口)
3、live555类库使用debug版观察,发现服务端一直有sending report, sending packet,doGetNextFrame()也总是调用,即使客户端已经收不到数据了(WirkShark也显示服务端未发送数据)。直到65秒以后超时,服务端处理超时流程之后才会停止sending report, sendping packet.
4、用live555的MediaServer测试,表现情况也是一样的。
...全文
448 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
smilestone322 2015-01-08
  • 打赏
  • 举报
回复
引用 4 楼 yong_hen 的回复:
注:此情况只在TCP模式下产生,UDP模式不会产生。 另外,我就此情况询问了live555官方。官方的意思是说这种情况是固有存在的,暂无法妥善解决。而我的这种解决方式,他们并不推荐。
我在rtp over tcp时,发现有时数据包解析不出来,改成rtp over udp 就ok
yong_hen 2015-01-06
  • 打赏
  • 举报
回复
注:此情况只在TCP模式下产生,UDP模式不会产生。 另外,我就此情况询问了live555官方。官方的意思是说这种情况是固有存在的,暂无法妥善解决。而我的这种解决方式,他们并不推荐。
yong_hen 2015-01-06
  • 打赏
  • 举报
回复
引用 2 楼 smilestone322 的回复:
修改live555的源码,将socket 的发送缓冲改大,另外将服务端的缓冲区也改大看看,看下我的博客,有个live555 专栏
不是这个问题的。我的缓存足够大。并且在缓存较小时,会有warning信息输出的。 现在问题暂时已经解决。 我是修改了RTPInterface里面的源代码。Line328行由 if (!sendDataOverTCP(socketNum, framingHeader, 4, False)) break; 改为 if (!sendDataOverTCP(socketNum, framingHeader, 4, True)) break;
smilestone322 2014-12-29
  • 打赏
  • 举报
回复
修改live555的源码,将socket 的发送缓冲改大,另外将服务端的缓冲区也改大看看,看下我的博客,有个live555 专栏
yong_hen 2014-12-19
  • 打赏
  • 举报
回复
没有人回答么???顶。

2,552

社区成员

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

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