首先借鉴了网上的调优经验,如下:
// live/liveMedia/MultiFramedRTPsource.cpp
increaseReceiveBufferTo(env, RTPgs->socketNum(), 2000000);
// live/liveMedia/StreamParser.cpp
const int BANK_SIZE = 1920*1080 ; //网上这里有提到设置为 600,000
// live/liveMedia/MediaSink.cpp
unsigned OutPacketBuffer::maxSize = 600000;
- 参考自:live555 调优总结
// live/liveMedia/MultiFramedRTPSink.cpp
setPacketSizes((RTP_PAYLOAD_PREFERRED_SIZE), 8192);
// live/liveMedia/RTPInterface.cpp
increaseSendBufferTo(envir(), fGS->socketNum(), 512 * 1024);
// live/liveMedia/RTPInterface.cpp 此处需要先把下面两行注释掉
//if (!sendDataOverTCP(socketNum, framingHeader, 4, False)) break;
//if (!sendDataOverTCP(socketNum, packet, packetSize, True)) break;
struct iovec iov[2];
iov[0].iov_base = framingHeader;
iov[0].iov_len = 4;
iov[1].iov_base = packet;
iov[1].iov_len = packetSize;
writev(socketNum, iov, 2);
该参考资料中的调度优化未采用。
- Live555性能优化实践中的两种优化方法暂未采用。
// liveliveMedia/GenericMediaServer.cpp
increaseSendBufferTo(envir(), clientSocket, 512*1024);