如何隐藏客户端的RTMP流URL?

时间:2017-04-29 14:07:26

标签: nginx rtmp

我有一个由nginx-rtmp驱动的自定义RTMP服务器。

这是我的配置:

server {
    listen 1935;
    chunk_size 4000;
    ping 10s;
    ping_timeout 5s;

    application live {
        live on;
        wait_key on;
        play_restart on;
    }
}

当广播公司想要开始直播时,他/她会将内容发布到rtmp://myserver.com/live/someUserDefinedStreamName

当观众想要观看直播时,他/她将从API端点获取流网址,这就是问题所在。

someUserDefinedStreamName实际上是" public",这意味着每个人都可以将内容发布到此网址以假装为广播公司。

有关此问题的任何建议,以防止观众了解原始流网址吗?

例如,广播公司将内容发布到rtmp://myserver.com/live/someUserDefinedStreamName,而观看者可以使用rtmp://myserver.com/live?someHashString观看视频流,但是如何?

2 个答案:

答案 0 :(得分:0)

显然,你可以在配置文件中为php脚本添加一些回调,以便在用户发布视频时触发。

使用回调,您可以检查用户&密码。

I found this article

答案 1 :(得分:0)

您可以使用nginx-rtmp模块中的选项轻松保护您的rtmp资源, 使用on_play保护资源免受播放(通过检查自定义后端的权限)和on_publish来限制发布用户。

rtmp{ 

  application appname{

      # a url to your custom backend
      on_play http://localhost:9090/check_user;
      # backend server should return 200 for allowing otherwise return 401 or 403
      # you can also return 301 or 302 like redirection for redirecting to 
      # other stream
      on_publish http://localhost:9090/check_publish_perm;
      # same conditions as on_play
  }
}