如何测试/验证 RTMP 端点和/或流密钥

问题描述 投票:0回答:1

我们有一系列运行 OBS 的云服务器,我们代表我们的用户临时启动这些服务器,以便为他们制作直播流。

但是,在启动服务器之前,我们要确保他们提供给我们的 RTMP 端点和/或凭证有效。这是否可以在不实际初始化完整流的情况下完成?

RTMP 规范建议在流式传输之前有一个握手步骤和一个连接步骤,但 TCP/IP 超出了我的专业领域,我已经上下搜索了可能对此有帮助的库,但无济于事。

我曾尝试使用 ffmpeg 等 CLI 工具连接到 RTMP 端点,但这仅在我们实际上也流式传输数据时才有效,并且理想情况下希望在开始实际流之前停止。

任何提示将不胜感激。

rtmp live-streaming
1个回答
0
投票

您可以使用

rtmpdump
连接到您的 RTMP 服务器并检查响应,这是一个工作示例:

RTMP_URL="rtmp://server-url/live/stream-name"
RTMP_APP="live"
RTMP_USER="username"
RTMP_PASS="password"

# try to connect and check if the server is running
if rtmpdump -r $RTMP_URL -a $RTMP_APP -v -o /dev/null 2>&1 | grep -q "Connected..."; then
  echo "server is running"

  # check if the credentials are correct
  if rtmpdump -r $RTMP_URL -a $RTMP_APP -u $RTMP_USER -p $RTMP_PASS -v -o /dev/null 2>&1 | grep -q "Connected..."; then
    echo "credentials are valid"
  else
    echo "invalid credentials"
    exit 1
  fi
else
  echo "server is not running"
  exit 1
fi

exit 0

如果您想使用流密钥而不是用户/密码组合,您可以省略

-u
-p
参数并将密钥设置为 RTMP URL 中的路径。

© www.soinside.com 2019 - 2024. All rights reserved.