如何将 kurento-media-server 用于纯音频流?

How to use kurento-media-server for audio only stream?

我只想在点之间进行音频流通信,我将 kurento.utils.js 的部分更改为通过 getusermedia 仅获取音频流 但它不起作用
我用这个例子 node-hello-world 例子

WebRtcPeer.prototype.userMediaConstraints = {
    audio : true,
    video : {
        mandatory : {
            maxWidth : 640,
            maxFrameRate : 15,
            minFrameRate : 15
        }
    }
};

WebRtcPeer.prototype.userMediaConstraints = {
    audio : true,
    video : false
};

是否可以仅对音频流使用 kurento 服务?

Kurento 确实可以做到这一点。根据所需的修改范围,有两种方法可以做到这一点:

  1. 每个 webrtc 端点:当您处理客户端发送的 SDP 提议时,您会从 KMS 获得一个 SDP 应答,您必须发回该应答。在调用 processOffer 方法调用后,您可以篡改 SDP 以删除所有视频部分。这样,您的客户端将只发回音频。
  2. 全局:您可以编辑 /etc/kurento/sdp_pattern.txt 文件删除所有与视频相关的部分,这将强制 SdpEndpoints(WebrtcEndpoint 的父级 class)仅使用音频。

编辑 1

文件 sdp_pattern.txt 在 KMS 6.1.0 中已弃用,因此不应使用方法 2。


编辑 2

kurento-utils 库存在问题,客户端未正确设置 OfferToReceiveAudio。它在前一段时间已修复,您现在不需要篡改 SDP。

git 来源:https://github.com/Kurento/kurento-tutorial-js.git git 分支:6.6.0

我的解决方案只是在 kurento-utils.js 文件的 generateOffer 函数中将 var offerVideo = true; 更改为 var offerVideo = false;

我的方法是修改传递给 WebRtcPeer 的选项。

var options = {  
  onicecandidate: onIceCandidate,  
  iceServers: iceServers,  
  mediaConstraints: {  
    audio:true,  
    video:false  
  }  
}  

此外,在 kurento-utils.js 中,mediaContraints 被这一行覆盖:

constraints.unshift(MEDIA_CONSTRAINTS);

所以评论吧。