nginx - 连接失败时强制ffmpeg忽略错误

标签 nginx ffmpeg rtmp live-streaming

我正在尝试使用 nginx 和 nginx-rtmp-module 部署实时流传输系统。

对于我系统中的每个节点,我希望它可以将接收到的实时流“转发”到下游节点。我尝试通过在我的 nginx.conf 中的配置来实现它:
exec_push ffmpeg -i rtmp://localhost/src/test -vcodec copy -strict -2 -ar 44100 -ac 1 -f flv rtmp://<downstreaming A>/src/test -f flv rtmp://<downstreaming B>/src/test
它在一切运行良好时工作,但如果下游节点关闭,则此命令将退出,并且下游节点都无法接收实时流。

我怎么能强制 ffmpeg 忽略 connetion refused ,或者我的实现有更好的选择吗?

最佳答案

你不能忽视 connection refused因为 RTMP 使用需要连接的 TCP。

如果我理解正确,您正在尝试对 RTMP 源进行转码并将其发送到多个服务器。

  • 您可以复制您的命令以发送到每个下游节点
    单独,但您将进行两次转码。
  • 另一种方法是使用转码和发布转码流ffserver在同一台机器上,然后在每个下游服务器上推送/拉取
  • 关于nginx - 连接失败时强制ffmpeg忽略错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29384815/

    相关文章:

    session 开始() : Session callback expects true/false return value in

    python - 可选择在 Django 或 nginx 中限制上传和下载速度

    android - FFmpeg 音视频合并命令

    ios - 从 ios 设备流式传输视频

    在 nginx 中记录代理事件

    php - Node JS - 等待完整响应

    macos - 构建后的二进制文件在哪里(对于 ffmpeg)?

    ffmpeg - 突出显示的部分代表什么?

    nginx - 如何在调用 on_publish 后更改 nginx rtmp 流名称

    android - RTMP 是视频聊天应用程序的更好方法吗?