qq_40425311 2024-03-07 16:56 采纳率: 50%
浏览 148
已结题

nginx搭建rtmp服务器,出现Operation not permitted

本人在windows上学习搭建rtmp服务,采用nginx+ffmpeg+vlcMediaPlayer的方式来测试,nginx已下载nginx-rtmp-module-master,nginx启动后,ffmpeg能正常推流,目前遇到的问题是,vlcMediaPlayer无法拉取rtmp的协议流.

ffmpeg推流地址:ffmpeg -re -stream_loop -1 -i .\1.mp4 -vcodec libx264 -acodec aac -f flv rtmp://127.0.0.1:1935/live/hls

img

nginx 配置如下:

**user root root;**
#user  nobody;
worker_processes  1;
..........
rtmp {
    server {
        listen 1935;

        application live {
            live on;
        allow play all;
        play /opt/vod;
        }
        
        application hls {
            live on;
            hls on;  
            hls_path temp/hls;  
            hls_fragment 8s;  
        }
    }
}

vlc media player 出错日志

img

请问一下,这是什么原因造成的,该如何解决,谢谢!

  • 写回答

3条回答 默认 最新

  • 檀越@新空间 2024-03-07 16:59
    关注

    qq_40425311 下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    根据你提供的信息,出现 "Operation not permitted" 错误可能是由于操作权限不足导致的。你可以尝试以下解决方案:

    1. 确认运行 nginx 的用户是否具有足够的权限。在配置文件中使用 user 指令指定运行 nginx 的用户,确保该用户具有读写权限

    2. 检查防火墙设置,确保 1935 端口未被阻止。你可以暂时关闭防火墙或者打开 1935 端口。

    3. 检查 SELinux 或其他安全设置,可能会阻止 nginx 访问指定的目录或端口。你可以通过临时关闭 SELinux 来验证是否与其相关。

    4. 确认 VLC Media Player 支持 RTMP 协议。你可以尝试使用其他支持 RTMP 的播放器进行测试。

    5. 更新你使用的软件版本。确保使用的 nginx-rtmp-module 版本与你的 nginx 版本兼容,并且 ffmpeg 和 VLC Media Player 的最新版本。

    综合以上解决方案,你可以尝试以以下方式修改你的 nginx 配置:

    user root;  # 使用 root 用户运行 nginx,确保具有足够的权限
    
    worker_processes 1;
    ...
    
    rtmp {
        server {
            listen 1935;
    
            application live {
                live on;
                allow play all;
            }
    
            application hls {
                live on;
                hls on;
                hls_path temp/hls;
                hls_fragment 8s;
            }
        }
    }
    

    注意:在生产环境中不建议以 root 用户运行 nginx,这只是一个示例,你可以根据实际情况选择适当的用户

    希望以上解决方案对你有帮助。如果问题仍然存在,请提供更多错误日志信息,以便更好地帮助你解决问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月23日
  • 已采纳回答 3月15日
  • 创建了问题 3月7日