live555使用过程中遇到一个问题,发送低分辨率的码流OK,发送高分辨率的码流会丢包,而且丢的大部分都是 I 帧;
两台设备网线直连测试是OK的;
开始怀疑是交换机的限制,但是个人对交换机原理并不是很了解,如果说大包进行过滤的话,到交换机的MTU应该都是一样的,不会说有I帧的包特别大,只是会拆包比较多而已,暂时排除交换机问题;
如果不是交换机问题,那么猜想只能是socket缓冲问题了;
live555中有很多缓冲,比如说读取码流数据缓冲,rtp缓冲,socket sendbuf缓冲等等;
查看源码后发现socket sndbuf缓冲 默认只有50K, 修改为sndbuf 为512K后 问题解决;
修改方法:在源码中 关键字 sndbuf,找到相应的位置修改bufsize就可以了。
本文介绍了一个live555在发送高分辨率码流时出现的丢包问题,尤其是I帧丢失的情况。通过分析,确定问题源于socket缓冲区大小限制,并给出了具体的解决方案。
6180

被折叠的 条评论
为什么被折叠?



