nginx rtmp 搭建直播服务

nginx rtmp 模块搭建直播服务,方便在 Linux 系统里实现,使用包管理命令安装 nginx 和 nginx rtmp 模块。Windows 里,无法简单下载 nginx 官网加 rtmp 模块搭建,需要下载编译好的包。

参考

How to set up your own private RTMP server using nginx | OBS Forums

https://obsproject.com/forum/resources/how-to-set-up-your-own-private-rtmp-server-using-nginx.50/

使用 OBS 推流的自定义设置。推流的 URL 是固定的, key 是任意自定义内容。

也参考

Enabling Video Streaming for Remote Learning with NGINX and NGINX Plus - NGINX

https://www.nginx.com/blog/video-streaming-for-remote-learning-with-nginx/

它的内容有误,直播推流路径是固定的 /live ,key 随意写;直播目录不是 /live,而是 /hls 和 /dash。直播路径结尾,和 key 一样。

以及参考

https://github.com/arut/nginx-rtmp-module/

官网给出的配置例子。也包括 VOD 按需点播。

 

具体 nginx-rtmp 模块一些详细配置,参考官网 wiki:

https://github.com/arut/nginx-rtmp-module/wiki

 

可以限定,允许推流、播放的 IP 地址范围;

可以配置 nginx-rtmp 中继转发推流内容到其他服务器,如哔哩哔哩;

可以配置主动拉取其他播放地址的内容,取代推流,作为直播来源;

可以设置 HLS 格式直播加密,使用 AES 加密,每若干时长更换秘钥,这样播放前需要用 AES 秘钥解密;

可以设置保存直播内容,到视频文件。

 

关于推流权限限制,可以配置 on_publish,使用追加的密码参数,不过 rtmp 推流在互联网是明文传输的,参数可以被中间人截获到。

 

推流可以使用 OBS 直播软件,或者使用 ffmpeg 命令。ffmpeg 也可以获取摄像头内容发送到直播服务器。

播放,可以使用 rtmp、hls、dash 协议。

 

HLS 和 DASH 格式直播,都有几十秒的延迟,难以避免。

 

另外,局域网里也可以使用 udp 广播、多播,实现视频直播。具体 OBS 软件和 VLC 播放器也支持。

 

上一篇:Nginx+OBS+rtmp+VLC实现视频直播


下一篇:SRS RTMP流媒体服务器搭建