最近在做基于海思编解码平台对接Live555实现多路同屏播放项目,实现live555 做RTSP流媒体服务器转发,海思平台输入,实现多路视频同步输出。其中对live555网络传输部分优化,以实现高清画面输出。
通常情况下,live555在处理低分辨率和码流,帧率情况下占用的网络带宽较小,以至于程序运行开销的内存也较少,当有高清视频输入源信号时(1080p或4k),系统开销较大。所以优化网络缓存区,和调度处理机制是首要。
第一部分,优化live555 sink 接收source实时数据缓存若干项:
修改MultiFramedRTPsource.cpp,increaseRecieveBufferTo(env,RTPgs-> socketNUm(), 2000000);
修改StreamParser.cpp ,BANK_SIZE to 300000 or 600000;
修改MediaSink.cpp,增加最大MAXSIZ 至于600000;
修改playCommon.cpp,增加最大MAXSIZ 至于600000;
设置const unsigned estimatedSessionBandwidth 的值,需要把它调到一个合适大小的值。
第二部分,RTP 发送优化,主要调整live555的缓冲区大小和每次发送的数据大小。
修改MultiFramedRTPSink.cpp: +50 setPacketSizes(1000, 8192);
修改RTPInterface.cpp 129行:increaseSendBufferTo(envir(), fGS->socketNum(), 512*1024);
RTPInterface.cpp</