gpt4 book ai didi

webrtc - 如何修改仅使用 Kurento 录制音频的答案 SDP?

转载 作者:行者123 更新时间:2023-12-01 00:50:55 26 4
gpt4 key购买 nike

我可以使用 Kurento Media Server 录制视频+音频。我在录制纯音频流时遇到问题。来自 How to use kurento-media-server for audio only stream?明白必须修改答案 SDP。

目前,我正在向 PeerConnection 添加仅包含音轨的 MediaStream。在服务器端,在发回应答 SDP 之前,我对其进行了修改。我尝试删除

  • 任何低于(包括)m=video
  • 任何低于(包括)a=mid:video

  • 在这两种情况下,浏览器端 PeerConnection#signalingState 都停留在 have-local-offer .

    在媒体流将开始流动并且 Kurento 将开始录制纯音频流的答案 SDP 中有什么变化?

    这是来自 WebRtcEndpoint#processoffer 的原始答案 SDP(从中删除了内容):
    v=0
    o=- 7750769884654864002 0 IN IP4 0.0.0.0
    s=Kurento Media Server
    c=IN IP4 0.0.0.0
    t=0 0
    a=group:BUNDLE audio video
    m=audio 40192 RTP/SAVPF 111 0
    c=IN IP4 10.0.2.15
    a=rtpmap:111 opus/48000/2
    a=rtpmap:0 PCMU/8000
    a=sendrecv
    a=rtcp:40192 IN IP4 10.0.2.15
    a=rtcp-mux
    a=ssrc:4125152746 cname:user2534372120@host-b735c5b0
    a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
    a=mid:audio
    a=ice-ufrag:SEV7
    a=ice-pwd:BQyTSM0hvTJeqykFZovuBS
    a=fingerprint:sha-256 E4:A1:25:2C:53:60:28:F5:C1:94:C6:32:E0:13:81:06:A6:66:77:00:52:C2:D9:93:AF:E4:A0:B3:4D:5C:9C:C3
    a=candidate:1 1 UDP 2013266431 10.0.2.15 40192 typ host
    a=candidate:2 1 UDP 2013266431 192.168.33.10 44816 typ host
    m=video 40192 RTP/SAVPF 100
    c=IN IP4 10.0.2.15
    b=AS:500
    a=rtpmap:100 VP8/90000
    a=sendonly
    a=rtcp-fb:100 ccm fir
    a=rtcp-fb:100 nack
    a=rtcp-fb:100 nack pli
    a=rtcp-fb:100 goog-remb
    a=rtcp:40192 IN IP4 10.0.2.15
    a=rtcp-mux
    a=ssrc:1769273725 cname:user2534372120@host-b735c5b0
    a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
    a=mid:video
    a=ice-ufrag:SEV7
    a=ice-pwd:BQyTSM0hvTJeqykFZovuBS
    a=fingerprint:sha-256 E4:A1:25:2C:53:60:28:F5:C1:94:C6:32:E0:13:81:06:A6:66:77:00:52:C2:D9:93:AF:E4:A0:B3:4D:5C:9C:C3
    a=candidate:1 1 UDP 2013266431 10.0.2.15 40192 typ host
    a=candidate:2 1 UDP 2013266431 192.168.33.10 44816 typ host

    编辑:

    在 kurento google group 提出建议后,似乎不需要修改 SDP。至少在 Kurento 6 中。
    我只能使用音频(来自浏览器的纯音频 MediaStream 和来自浏览器的音频 + 视频 MediaStream)。为此(Ruby 中的示例代码):
  • 在 RecorderEndpoint 构建器中指定 MediaProfileSpecType RecorderEndpoint::Builder.new(@pipeline, location).withMediaProfile(org.kurento.client.MediaProfileSpecType::WEBM_AUDIO_ONLY).build()
  • 连接记录器端点时指定 MediaType(@source 是 WebRtcEndpoint):@source.connect(@recorder, org.kurento.client.MediaType::AUDIO)
  • 最佳答案

    你必须在这里有不同的选择。我假设你有一个 webrtcEp和一个 recoderEp

  • 从客户端发送音频和视频,但只录制视频:您将同时发送两者,但必须指示录制器仅存储音频
    RecorderEndpoint recoderEp = new RecorderEndpoint.Builder(pipeline, "URI_HERE").withMediaProfile(MediaProfileSpecType.WEBM_AUDIO_ONLY).build();
    webrtcEp.connect(recorderEp, MediaProfile.AUDIO);
  • 仅发送音频:设置 video getUserMedia 的属性(property)选项为 false 应仅发送音频。如果不是,则表示媒体服务器中的 webrtc 端点协商存在错误。我们有一个类似的场景,但只发送视频,它正在工作。如果没有,请报告,以便我们修复它。

  • 编辑 #1:在任何情况下,指定要记录的媒体类型或两个端点将通过 connect 方法交换总是很方便的,因此第一个项目符号中写的内容适用于两者。

    编辑 #2 您肯定需要指定 MediaProfileSpecType创建记录器时

    关于webrtc - 如何修改仅使用 Kurento 录制音频的答案 SDP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31438273/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com