【问题标题】:Redirect a RTMP Request重定向 RTMP 请求
【发布时间】:2017-04-25 07:06:21
【问题描述】:

是否可以向rtmp 请求发出重定向 - 类似于 http 302 重定向?
我无法修复我的内容中存在的所有 rtmp url,因此我想放置某种基本的重定向器,它将向我的新服务器发送请求。

谢谢!

【问题讨论】:

    标签: redirect streaming rtmp


    【解决方案1】:

    我还没有完全理解你,但我想我可以帮助你一点,并继续与 cmets 澄清。比如我不知道你是有不同的入口点还是只是分配1->N。

    如果我没有误解的话,你的建议是你有一个 RTMP 流量作为基本重定向器的输入,并希望发送相同的 内容到放置在例如文本文件中的 RTMP 地址列表。 你的问题是如何实现这个基本的重定向器,不是吗?

    在这种情况下,您可以使用 FFmpeg 应用程序执行此操作,就像流系统将数据发送到多个发布点(用于分发的 CDN)一样

    文件:rtmp_output_list.txt

    rtmp://001.entrypoint.your_cloud.com/live/your_name?user=your_user&pass=your_pass
    rtmp://002.entrypoint.your_cloud.com/live/your_name?user=your_user&pass=your_pass
    rtmp://003.entrypoint.your_cloud.com/live/another_name?user=another_user&pass=another_pass
    ...
    

    调用 ffmpeg 的 Bash 脚本:basic_redirector.sh

    #!/bin/bash for RTMP_OUTPUT in `cat rtmp_output_list.txt` 
    RTMP_INPUT="rtmp://192.168.0.101/test"
    METADATA="-metadata width=XXX -metadata height=XXX ... [rest of metadata]"
    do
        ffmpeg -i $RTMP_INPUT -async 1 -vcodec copy -acodec copy $METADATA -f megts -f flv $RTMP_OUTPUT 
    done
    

    如果我没有正确理解您,请发表评论,我会帮助您。 祝你好运。

    【讨论】:

    • 您的示例没有重定向任何内容,它正在代理流。我需要的是,当流媒体源尝试将流发布到 RTMP 服务器时,它会告诉流媒体源发布到不同的服务器。
    • 好的,现在我明白代理和重定向之间的区别了。在我看来这是不可能的,因为 RTMP PUSH 不依赖于你在中间实现的东西,只是在源代码中,而 RTMP PULL 不依赖于你在中间实现的东西,只是在目标中。因此,如果要重定向,则必须修改将视频摄取到系统的源。否则我不知道为什么用连接做代理对你没有用。
    • 显然这在 Flash Media Server 中是可能的,所以在某种程度上它可能是通用的:github.com/arut/nginx-rtmp-module/issues/…
    【解决方案2】:

    RTMP 中没有这个概念。您将需要客户端连接到端点以查询要广播到的 URL。

    猜你喜欢
    • 2015-06-24
    • 2014-05-19
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多