如何解决RTMP代理裁剪原始视频并将其发送到另一个RTMP服务器
我需要从RTMP流中裁剪视频,然后将其发送到始终更改的另一台RTMP服务器。我的理解是我应该使用nginx-proxy
和ffmpeg
,有人可以帮助我进行设置吗?
我想我需要将流发送到/stream/:stream-key/:next-server-ip
这样的端点,并用ffmpeg处理流,然后将其发送到:next-server-ip,为此,我应该在后端使用哪种语言?
解决方法
有两种处理此类任务的策略:
- “拉动”
您已经发布了一些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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。