我需要从RTMP流中裁剪视频,然后将其发送到始终更改的另一台RTMP服务器。我的理解是我应该使用nginx-proxy
和ffmpeg
,有人可以帮助我进行设置吗?
我想我需要将流发送到/stream/:stream-key/:next-server-ip
这样的端点,并用ffmpeg处理流,然后将其发送到:next-server-ip,为此,我应该在后端使用哪种语言?
答案 0 :(得分: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
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