解决kurento视频卡顿问题

解决kurento视频卡顿问题

kurento是目前主流的webrtc开源框架之一,有不少的企业都拿kurento来做产品。当把kurento的demo搭起来后发现画质并不是很理想,而且局域网环境(没有限制带宽)下也是如此。本文章就是解决这些问题的!!!

前提条件

搭完之后是能运行的只是觉得通讯画质比较差,如果本来都没有运行的有什么端口被墙等等各种问题的,我们就无法聊下去了本文章不是说搭建的。网络带宽没有限制,比如你租了1Mbps带宽的云服务器来跑还有想好的画质就是癞蛤蟆想吃天鹅肉,720P(100万像素)的一路视频大概就2Mbps了。

修改前端的video大小

修改用户界面的限制
本来列子是kurento-tutorial-java\kurento-group-call项目所以修改文件
kurento-tutorial-java\kurento-group-call\src\main\resources\static\js\conferenceroom.js

function onExistingParticipants(msg) {
	var constraints = {
		audio : true,
		video : {
			mandatory : {
				maxWidth : 320, /*改成分辨率,比如720*/
				maxFrameRate : 15,/*改成想要的大帧率,比如30*/
				minFrameRate : 15/*改成想要的小帧率,比如24*/
			}
		}
	};

修改WebRtcEndpoint带宽限制

修改kurento接口的限制
本来列子是kurento-tutorial-java\kurento-group-call项目所以修改文件
tutorial-java\kurento-group-call\src\main\java\org\kurento\tutorial\groupcall\UserSession.java
所有WebRtcEndpoint 创建时就设置好带宽限制

        this.outgoingMedia = new WebRtcEndpoint.Builder(pipeline).build();
        this.outgoingMedia.setMaxVideoRecvBandwidth(2000);
        this.outgoingMedia.setMinVideoRecvBandwidth(1000);
        this.outgoingMedia.setMaxVideoSendBandwidth(2000);
        this.outgoingMedia.setMinVideoSendBandwidth(1000);

** [*]输入带宽控制机制: **Kurento WebRTC允许配置接收比特率的范围。最大值在SDP中公布,而min值设置为限制REMB包的较低值。因此,min值将只有效果.

setMin/MaxVideoRecvBandwidth:设置接收视频流预期的最大/最大比特率限制。
setMin/MaxAudioRecvBandwidth:设置接收音频流预期的最大/最大比特率限制。
setMin/MaxVideoSendBandwidth:设置发送到远程对等体的视频的最小/最大比特率限制。
setMin/MaxAudioSendBandwidth:设置发送到远程对等体的音频的最小/最大比特率限制。

默认视频比特率范围在100kbps和500kbps之间。

修改ubuntu的UDP缓存

修改ubuntu系统的限制
修改/etc/sysctl.conf 在后面加上



fs.file-max=655350 

net.core.wmem_default = 8388608 
net.core.rmem_default = 8388608 
net.core.wmem_max = 20971520 
net.core.rmem_max = 8388608 
net.ipv4.tcp_mem = 1162629 1550174 2325258 
net.ipv4.tcp_wmem = 4096 16384 4194304 
net.ipv4.tcp_rmem = 4096 87380 6291456  

配置完以上几点你的kurento顺畅无阻了!!!祝你生活愉快!!!

你可能感兴趣的:(kurento)