You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从其他流拉取HLS数据推送到RTMP服务器的方案问询

多频道流媒体推送可行方案与技术建议

方案1:修正Nginx RTMP多推配置

你之前的Nginx配置中push语法错误,正确写法是直接指定目标RTMP地址,且支持多条push指令实现多频道推送。以下是调整后的源服务器配置:

worker_processes auto;
rtmp_auto_push on; # 开启自动重试推流
events {}
rtmp {
    server {
        listen 1935; # 监听标准RTMP端口

        application live {
            live on;
            hls on;
            hls_path /www/tmp/hls;
            hls_fragment 10s;
            hls_playlist_length 5m;

            # 推送到2-3个目标频道(替换为实际服务器地址)
            push rtmp://target-server-1/live/your-stream-key;
            push rtmp://target-server-2/live/your-stream-key;
            push rtmp://target-server-3/live/your-stream-key;
        }
    }
}

http {
    server {
        listen 8080;

        location /hls {
            types {
                application/vnd.apple.mpegurl m3u8;
                application/octet-stream ts;
            }
            root /www/tmp;
            add_header Cache-Control no-cache;
            add_header Access-Control-Allow-Origin *;
        }
    }
}

关键说明:

  • rtmp_auto_push on会在推流中断后自动重试,提升稳定性
  • 每条push对应一个目标频道,需确保目标服务器的RTMP服务正常监听1935端口

方案2:FFmpeg拉取HLS转推多频道

如果源服务器无法直接配置多推,可使用FFmpeg拉取已生成的HLS流,再推送到多个目标RTMP地址,无需修改源服务器配置:

ffmpeg -i http://source-server:8080/hls/your-stream.m3u8 \
-c:v copy -c:a copy \ # 直接复制编码,避免转码消耗资源
-f flv rtmp://target-server-1/live/stream-key \
-f flv rtmp://target-server-2/live/stream-key \
-f flv rtmp://target-server-3/live/stream-key

落地建议:

  • 将此命令封装为systemd服务,实现开机自启与异常重启
  • 可添加-re参数强制按流的实际速率推送,避免带宽过载

方案3:使用SRS流媒体服务器简化多推

SRS(Simple RTMP Server)对多推、集群场景支持更友好,配置简洁且内置重试机制,适合流媒体规模化推送需求:

listen              1935;
max_connections     1000;
srs_log_tank        file;
srs_log_file        ./objs/srs.log;

vhost __defaultVhost__ {
    live {
        enabled         on;
        hls {
            enabled         on;
            hls_path        ./objs/nginx/html/hls;
            hls_fragment    10s;
            hls_playlist_length 5m;
        }
        # 多频道推送配置
        push {
            enabled     on;
            destination rtmp://target-server-1/live/stream-key;
        }
        push {
            enabled     on;
            destination rtmp://target-server-2/live/stream-key;
        }
    }
}

优势:

  • 内置推流状态监控、自动重试、低延迟优化
  • 支持HTTP-FLV、HLS、DASH等多协议输出,适配不同终端

通用技术建议

  • 端口与防火墙:确保源服务器与目标服务器的1935(RTMP)、8080(HLS)端口开放,防火墙允许双向流量
  • 编码一致性:推流时使用统一的视频编码(如H.264)、音频编码(如AAC),避免转码导致的延迟与资源消耗
  • 状态监控:通过Nginx/SRS日志、FFmpeg输出排查推流中断问题,可添加告警脚本监控流状态
  • 跨机房优化:若目标服务器跨机房,优先选择低延迟专线,或考虑CDN中转降低传输延迟

内容的提问来源于stack exchange,提问作者Mehdi Amenein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 09:06:36