【问题标题】:Unable to record mediasoup producer using FFmpeg on real server无法在真实服务器上使用 FFmpeg 记录 mediasoup 生产者
【发布时间】:2020-11-27 14:21:37
【问题描述】:

我已经为音频呼叫构建了一个不错的应用程序,非常感谢 MediaSoup!

为了更上一层楼,我需要记录我的一些通话。 我使用本教程作为参考: mediasoup recording demo

我遵循了 FFmpeg 的方式,并且已经达到了创建一个 plainTransport 的地步

    router.createPlainTransport({
        // No RTP will be received from the remote side
        comedia: false,
        // FFmpeg and GStreamer don't support RTP/RTCP multiplexing ("a=rtcp-mux" in SDP)
        rtcpMux: false,
        listenIp: {ip:"0.0.0.0", announcedIp:"MY_PUBLIC_IP"},
    });

然后我连接到这个传输:

    rtpPlainTransport.connect({
        ip: 127.0.0.1,
        port: "port1",
        rtcpPort: "port2",
    });

我的第一个疑问:上面提供的 .connect({}) 参数中的 ip 地址是否正确?

其次,FFMPEG 命令需要一个 SDP 标头。这是我的:

    v=0
    o=- 0 0 IN IP4 127.0.0.1
    s=-
    c=IN IP4 127.0.0.1
    t=0 0
    m=audio port1 RTP/AVPF 111
    a=rtcp:port2
    a=rtpmap:111 opus/48000/2
    a=fmtp:111 minptime=10;useinbandfec=1

当我开始录制时,FFMPEG 进程没有收到任何数据。 此外,在停止时,我收到以下消息

输出文件为空,没有编码(检查 -ss / -t / -frames 参数如使用)正常退出,收到信号 2.录音 进程退出,代码:255,信号:null

当服务器本身在本地主机上运行时,我能够使用 127.0.0.1 将录音保存在本地主机上。

但是,我的实际服务器使用 Nginx 托管,我无法弄清楚出了什么问题。

我可以看到正在我的音频端口上发送的数据:

1 0.000000000    127.0.0.1 → 127.0.0.1    UDP 117 10183 → 5004 Len=75
2 0.020787740    127.0.0.1 → 127.0.0.1    UDP 108 10183 → 5004 Len=66
3 0.043201757    127.0.0.1 → 127.0.0.1    UDP 118 10183 → 5004 Len=76

我该如何处理 FFmpeg 才能开始录制!?

有人可以帮忙吗?

【问题讨论】:

    标签: node.js ffmpeg mediasoup


    【解决方案1】:

    解决了错误。我没有设置 mediaCodecs 中的“preferredPayloadType”值将音频设置为 111,这是 FFmpeg 要求的。

    100 不起作用。虽然我不完全明白为什么。应该是111。 如果有人可以解释这一点,那就太好了。不过不管怎样,我现在可以录音了!

    所以媒体编解码器必须是:

            {
              kind: "audio",
              mimeType: "audio/opus",
              preferredPayloadType: 111,
              clockRate: 48000,
              channels: 2,
              parameters: {
                minptime: 10,
                useinbandfec: 1,
              },
            },
    

    而 sdp 应该是:

    v=0
    o=- 0 0 IN IP4 127.0.0.1
    s=-
    c=IN IP4 127.0.0.1
    t=0 0
    m=audio 5004 RTP/AVPF 111
    a=rtcp:5005
    a=rtpmap:111 opus/48000/2
    a=fmtp:111 minptime=10;useinbandfec=1
    

    【讨论】:

      猜你喜欢
      • 2019-06-28
      • 2021-09-02
      • 2019-05-08
      • 1970-01-01
      • 1970-01-01
      • 2014-12-28
      • 1970-01-01
      • 1970-01-01
      • 2016-03-03
      相关资源
      最近更新 更多