处理 Nginx rtmp模块流认证的后端

・4 分钟阅读

  • 源代码名称: nginx-rtmp-auth
  • 源代码网址: https://www.github.com/Nesseref/nginx-rtmp-auth
  • nginx-rtmp-auth的文档
  • nginx-rtmp-auth的源代码下载
  • Git URL:
    git://www.github.com/Nesseref/nginx-rtmp-auth.git
  • Git Clone代码到本地:
    git clone https://www.github.com/Nesseref/nginx-rtmp-auth
  • Subversion代码到本地:
    $ svn co --depth empty https://www.github.com/Nesseref/nginx-rtmp-auth
                              Checked out revision 1.
                              $ cd repo
                              $ svn up trunk
              
  • nginx-rtmp-auth

    处理 Nginx rtmp模块流认证的后端

    PHP

    注意:PHP web内容( 例如, not auth.php)旨在作为可以构造为与身份验证后,端进行交互的前端功能的示例。 请不要在生产中使用这些脚本,因为它们不是针对实际使用而设计的。

    要求:

    服务器端配置:

    • 将 nginx.conf 设置为活动 Nginx conf ( 文件的位置取决于系统)
    • 将网页 root 设置为适当的值
    • 将worker_connections调整为平台的正常值
    • 将worker_processes设置为 1以解决nginx模块中的问题
    • 将rtmp服务器应用程序 block的名称设置为( 默认为"stream")
    • web根目录中的php/.html文件,并且调整on_publish指令url,以反映auth.php的位置
    • 在 common.php ( $host,$username, $password, $dbname, $usertablename) ) 中设置mysql相关变量
    • 在common.php中设置非MySQL相关的变量($ streamurl(流的URL减去最后的id哈希,即"rtmp://DOMAIN/stream?"),假设rtmp服务器应用程序块名称"stream"),$ baseurl(Web内容的URL,即主页是否在http://stream.frogbox.es上提供,而且每个页面都使用相同的目录级别作为索引,$baseurl将是"http://stream.frogbox.es ")),
    • 确保MySQL服务器接受来自common.php中指定的用户的连接,并且common.php中指定的用户具有从定义的用户表中读取的正确权限,
    • 配置用户表
      • 以下架构应为( 但更容易改变):
        • username VARCHAR(64 )
        • email VARCHAR(64 )
        • password VARCHAR(64 )
        • idhash VARCHAR ( 64 )
      • 可以根据需要添加其他列
    python/Flask

    要求:

    服务器端配置:

    • 将 nginx.conf 设置为活动 Nginx conf ( 文件的位置取决于系统)
    • 将网页 root 设置为适当的值
    • 将worker_processes设置为 1以解决nginx模块中的问题
    • 将rtmp服务器应用程序 block的名称设置为所需的( 默认为"stream")
    • 调整on_publish指令URL,以便反映在哪里提供身份验证脚本( 比如。 使用 Flask 开发服务器,URL将是 http://localhost:5000/auth
    • 在 config.py ( host, username, password, database, usertablename ) 中设置PostgreSQL相关变量
    • 确保PostgreSQL服务器接受 common.py 中指定的用户连接,common.py 中指定的用户具有从定义的用户表读取所需的权限。
    • 配置用户表
      • 以下架构应为( 但更容易改变):
        • username VARCHAR(64 )
        • email VARCHAR(64 )
        • password VARCHAR(64 )
        • idhash VARCHAR ( 64 )
      • 可以根据需要添加其他列
    非特定

    广播端配置( 假设 OBS ):

    • 在广播设置下,将自定义设置为流服务
    • 将服务器设置为"rtmp://DOMAIN/stream?IDHASH" ( 假定默认的rtmp服务器应用程序 block 名称"stream")
      • 这在PHP网页中被称为"Stream RTMP URL"
    • 将播放路径设置为用户名

    玩家端配置:

    • RTMP URL的格式为"rtmp://DOMAIN/stream/USERNAME" ( 假定默认的RTMP服务器应用程序 block 名称"stream)

    已知问题:

    • OBS Studio(aka OBS MultiPlatform aka OBS Linux/Mac))版本 idhash)无法通过身份验证脚本访问。
    讨论
    Fansisi profile image