在原生webrtc视频通话中,通常默认的设置视频质量比较模糊,看上去是360,或者480P的质量。网上搜索的教程几乎没几个可用的,全是在分析底层代码毫无参考价值,可以在客户端侧设定视频分辨率。
以android为例
VideoSource videoSource = peerConnectionFactory.createVideoSource(false);
/* 设置输出视频分辨率,也可以设置为1920*1080*/
videoSource.adaptOutputFormat(1280,720,30);
设置SDP的参数,适用所有客户端,注意重点是使用参数名称和值。 设置最小为720P 最大为1080P
mandatory.add(new MediaConstraints.KeyValuePair("maxWidth", "1080"));
mandatory.add(new MediaConstraints.KeyValuePair("maxHeight", "1920"));
mandatory.add(new MediaConstraints.KeyValuePair("maxFrameRate", "30"));
mandatory.add(new MediaConstraints.KeyValuePair("minWidth", "720"));
mandatory.add(new MediaConstraints.KeyValuePair("minHeight", "1280"));
mandatory.add(new MediaConstraints.KeyValuePair("minFrameRate", "24"));
这样设置视频通话中视频质量就会清晰很多