RTMP代理裁剪原始视频并将其发送到另一个RTMP服务器

时间:2020-09-26 11:55:20

标签: nginx ffmpeg reverse-proxy rtmp nginx-reverse-proxy

我需要从RTMP流中裁剪视频,然后将其发送到始终更改的另一台RTMP服务器。我的理解是我应该使用nginx-proxyffmpeg,有人可以帮助我进行设置吗?

我想我需要将流发送到/stream/:stream-key/:next-server-ip这样的端点,并用ffmpeg处理流,然后将其发送到:next-server-ip,为此,我应该在后端使用哪种语言?

1 个答案:

答案 0 :(得分:1)

有两种处理此类任务的策略:

  1. “拉动”

您已经发布了一些rtmp流,并使用ffmpeg将其拉出,转换并将结果发送到另一台服务器:

ffmpeg -i rtmp://source-server/stream -filter:v "crop=out_w:out_h:x:y" -vcodec h264 -acodec copy -f flv rtmp://next-server/stream
  1. “推送”

RTMP流被推送到您的服务器,该服务器对其进行处理并将结果发送到另一台服务器。对于此类任务,您可以将nginx-rtmp模块用于nginx,并使用exec_push指令设置ffmpeg命令:

application src {
    live on;
    exec_push ffmpeg -i rtmp://localhost/src/$name -filter:v "crop=out_w:out_h:x:y" -vcodec h264 -acodec copy -f flv rtmp://next-server/stream 2>>/var/log/ffmpeg-$name.log;
}

当有人开始向rtmp://your-server/src/stream_name流式传输此ffmpeg命令时,处理将开始

有关视频裁剪和相关ffmpeg参数的其他信息,请参见https://video.stackexchange.com/a/4571

相关问题