本文主要是介绍jrtplib接收数据视频花屏问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
项目场景:
基于jrtplib实现视频码流接收,并使用VLC播放器播放H264视频
问题描述:
使用jrtplib接收视频码流并写入文件保存,当播放时,出现画面下半部分花屏问题。
原因分析:
当使用jrtplib接收码流时,默认的接收缓存太小,大小为32K,默认接收缓存参数如下:
RTPUDPv4TransmissionParams():RTPTransmissionParams(RTPTransmitter::IPv4UDPProto) { portbase = RTPUDPV4TRANS_DEFAULTPORTBASE; bindIP = 0; multicastTTL = 1; mcastifaceIP = 0; rtpsendbuf = RTPUDPV4TRANS_RTPTRANSMITBUFFER; rtprecvbuf= RTPUDPV4TRANS_RTPRECEIVEBUFFER; rtcpsendbuf = RTPUDPV4TRANS_RTCPTRANSMITBUFFER; rtcprecvbuf = RTPUDPV4TRANS_RTCPRECEIVEBUFFER; }
解决方案:
经过测试当把接收缓存设置大一些(如2M)就可以完美解决问题。
jrtplib::RTPUDPv4TransmissionParams m_trans_params;
m_trans_params.SetRTPReceiveBuffer(2 * 1024 * 1024);
参考博客:https://blog.csdn.net/heibao111728/article/details/104739973/
这篇关于jrtplib接收数据视频花屏问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!