Nginx Rtmp模块-如何在将Rtmp流重定向到另一个应用程序之前,将其推送到服务器时检查分辨率



我在使用nginx rtmp模块开发直播系统时遇到了一个问题。我咨询过一些系统,有一个功能是,当推送rtmp流时,直播系统可以识别流的分辨率->从那里,它将用相应的配置文件编码到hls。例如,流720p产生具有360p->如果流1080p将产生360p->1080p。我试过各种方法,但没有成功。因此,我如何检查分辨率并将rtmp流重定向到适当的应用程序进行编码。期待大家的建议。

您应该异步执行此操作:

Client ---RTMP--> NGINX ---Callback--> Server(Start a task to do this)

当将RTMP流发布到NGINX时,它将使用HTTP回调到您的服务器,然后您可以启动异步任务来检测解析并重定向流:

  1. 通过FFmpeg或ffprobe检测流
ffprobe -v quiet -print_format json -show_streams rtmp://ip/app1/stream1
  1. 将流重定向到另一个应用程序
ffmpeg -f flv rtmp://ip/app1/stream1 -c copy -f flv rtmp://ip/app2/stream1

最新更新