【问题标题】:Pushing RTMP Stream to multiple dynamic destination将 RTMP 流推送到多个动态目的地
【发布时间】:2022-01-21 08:40:55
【问题描述】:

我有一个像 RTMP 代理服务器一样工作的应用程序。

rtmp {
    server{
         listen 1935;
         chunk_size 4096;
    
         application live {
             live on;
             record off;
        
             push rtmp://server1/live/{key1}
             push rtmp://server2/live/{key2}
         }
    }
}

来自 PHP 文件的 key1key2。 如何将 PHP 文件中的密钥替换为 nginx 配置文件?

【问题讨论】:

    标签: php nginx rtmp


    【解决方案1】:

    为了处理流,使用 FFmpeg 作为不同的流来拉取和推送是一种强大的模式:

    ffmpeg -f flv -i rtmp://localhost:1935/app/bbbb \
      -c copy -f flv rtmp://localhost:1935/app/aaaaaa \
      -c copy -f flv rtmp://localhost:1935/app/cccccc
    

    注意:您可以使用on_publish 挂钩来启动您的FFmpeg 进程,或者exec 也应该可以工作。但是引入 FFmpeg 有点复杂。

    如果你想使用push功能,它是一个复杂而动态的forwarding,我认为它很难支持,因为它取决于我们的使用场景,这是非常不同的,并不是每个人都通用的。

    注意:但是,我认为最好的解决方案是 http hooks forwarding,即调用您的后端并获取要转发的流。这是一个discuss,关于通过 http 钩子进行动态转发。

    【讨论】:

    • 我阅读了整个讨论但没有理解任何内容。
    • 还有forward { backend http://127.0.0.1:8085/api/v1/forward; } 抛出错误。 Failed, code=1023 : check config : check normal : illegal vhost.forward.backend of __defaultVhost__
    • 我可以在 Nginx 中使用插件之类的东西吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-25
    • 2022-08-22
    • 2013-05-22
    • 1970-01-01
    相关资源
    最近更新 更多