请陆老师和各位高手帮忙。小弟谢谢了!!!!!!急啊!

haha_0_2000_2001 2004-07-31 11:00:57
陆老师,最近改写了DSNetWork那个Filter,转成了基于UDP的Filter,功能如下图:
---------------------------------
客户端A 服务器端B
------------ ------------------
|ClientVideoSender-->| |SerVideoRecv-->SerVideoSender-->|
| | | |
|ClientAudioSender-->| |SerAudioRecv-->SerAudioSender-->|
------------ ------------------

客户端C
------------------
|ClientVideoRecv-->......Render.|
| |
|ClientAudioRecv-->......Render.|
------------------
---------------------------------
问题是:先开启服务器,然后客户端A向服务器B传送音视频数据,客户端C接受由服务器传送过来的信息显示。一切正常。但是当我停止客户端C然后再运行客户端C,反复几次后就接收不到信息了,不知道问题发送在哪里?而且如果单独这样测试音频或者视频都是正常的,为什么放在一起就不能正常了呢!他们两个之间也应该没什么关联啊!请陆老师和各位高手帮忙。小弟谢谢了!!!!!!
...全文
46 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
happydeer 2004-07-31
如果问题出现得没有规律,查查是否有内存泄漏吧!
回复
haha_0_2000_2001 2004-07-31
其实具体情况是,当客户端C接收不到数据后,我将客户端C结束掉,然后重新开启客户端C就可以了,而且也是几次后又发作了。不知道为什么。
我现在正在将音频和视频分开在两个Graph里进行控制。
回复
happydeer 2004-07-31
网络通讯程序一般都比较难调试,建议你分段测试,缩小问题所在的范围。

1. 你说的客户端C反复几次后就接收不到信息了,是不是收不到数据了?那么,是不是通讯上面编程出了问题?在客户端c你可以将接收到的数据直接写文件,暂时不接到decoder和renderer。

2. 可能受网络本身的特性,数据量不稳定,因此客户端C一边接收数据一边播放可能会受影响。音视频在同一个filter graph中播放是会相互干扰的。我在《DirectShow实务精选》中的做法是,将客户端的音频和视频分开,分别为他们创建不同的filter graph。你也可以试一下!
解决网络数据不稳定问题,一般在客户端要加缓冲。
回复
haha_0_2000_2001 2004-07-31
谢谢陆老师,不过您所说的内存泄漏问题是不是申请的内存没有及时释放掉,如果真的是内存泄漏的话,在任务管理器中是否能够有所表现,还有就是您所说音视频在同一个Graph中干扰,这种干扰会有什么样的表现。谢谢
回复
发帖
多媒体/流媒体开发
创建于2007-08-27

2441

社区成员

专题开发/技术/项目 多媒体/流媒体开发
申请成为版主
帖子事件
创建了帖子
2004-07-31 11:00
社区公告
暂无公告