什么是 nginx 的 RTMP URL

Posted

技术标签:

【中文标题】什么是 nginx 的 RTMP URL【英文标题】:What will be RTMP URL for nginx 【发布时间】:2017-09-12 13:33:41 【问题描述】:

如果我在 nginx.conf 中使用以下代码,你能告诉我流 URL 是什么

rtmp 
    server 
        listen 1935; # Listen on standard RTMP port
        chunk_size 4000;

        application show 
            live on;
            pull rtmp://THIS_IS_SOME_STREAM live=1;

            hls on;
            hls_path /mnt/hls/;
            hls_fragment 3;
            hls_playlist_length 60;
        
    

我试过了,但没用: rtmp://My_Server_Ip/show

编辑

rtmp   
        server   
                listen 1935;  
                chunk_size 4000;  
                application live2   
                        live on;  
                        pull rtmp://Stream_IP app=vod/demo.mp4  name=okstr live=1;  
                  
          

rtmp   
        server   
                listen 1935;  
                chunk_size 4000;  
                application live2   
                        live on;  
                        pull rtmp://Stream_IP/vod/demo.mp4  name=okstr live=1;  
                  
          
 

然后我尝试在 VLC 中跟踪 URL,但它没有任何显示视频或任何错误。

http://My_IP/live2/okstr

【问题讨论】:

【参考方案1】:

一般格式为:[rtmp://]host[:port][/app[/playpath]]

pull 的情况下,如果播放路径 为空,则使用当前流名称。

您要么没有设置播放路径,要么拉取不起作用,要么防火墙阻止了 RTMP。检查日志。

【讨论】:

您对我没有定义的“播放”路径是正确的。我尝试了几个设置,但没有播放流。它在 VLC 中没有显示任何错误,只是无法播放。我觉得我已经接近解决这个问题了,所以请看一下。我已经更新了上面的新代码。【参考方案2】:

第二个配置

pull rtmp://Stream_IP/vod/demo.mp4  name=okstr live=1;

是正确的。或者你可以这样编辑:

pull rtmp://Stream_IP app=vod playPath=demo.mp4 name=okstr live=1;

播放 url 为 rtmp://yourserverip/live2/okstr。 但是我有类似的问题,拉设置不能以奇怪的方式工作。它确实服务于前 4 个连接,但并非都跟随它们。在播放流 rtmp 命令后立即断开连接。 ffplay 确实说“处理输入时发现无效数据”。 我不得不使用额外的 ffmpeg 实例进行中继,单独运行或在 exec_static 中运行。这个推送方案没问题。 还要确保 worker_processes 为 1;并且 rtmp_auto_push 关闭或被评论;因为 multiworker 配置有问题。

【讨论】:

以上是关于什么是 nginx 的 RTMP URL的主要内容,如果未能解决你的问题,请参考以下文章

nginx RTMP 与 MPEG-TS

nginx rtmp

使用nginx+nginx-rtmp-module+ffmpeg搭建流媒体server笔记

nginx-rtmp-module

Windows使用Nginx+ffmpeg搭建RTMP服务器

windows下搭建nginx-rtmp服务器