• 通过 nginx-rtmp 模块搭建直播服务


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

    Windows 下集成 rtmp 模块的编译好的 nginx 包的下载   http://nginx-win.ecsds.eu/

    参考

    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,root 值写作 /tmp 。直播路径结尾,内容要和 key 一样。

    以及参考

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

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

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

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

    可以使用 allow、deny 指令配置限定、允许推流、播放的 IP 地址(范围);

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

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

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

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

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

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

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

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

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

    考虑服务器带宽限制,会需要将单一推流服务器内容推送或被动拉取到多个播放服务器,或推送到大型直播网站平台,其中可以使用 ffmpeg 处理加上水印。

    有基于 SSL 加密传输的 RTMPS 协议,nginx-rtmp 模块不支持它。但可以嵌入 ffmpeg 实现 RTMPS 加密协议推流。

  • 相关阅读:
    后端程序员写的前端js代码模板
    setTimeOut传參数
    IP地址的分类——a,b,c 类是怎样划分的
    适配高分辨率的图片High DPI Images for Variable Pixel Densities
    atitit.提升软件开发效率大的总结O5
    Android Binder总结
    Enable Notepad++ 666 support both SCLEX_FORTRAN and SCLEX_F77
    client怎样调用IBinder接口对象
    文件系统损耗平衡算法
    u-boot支持yaffs映像烧写的补丁
  • 原文地址:https://www.cnblogs.com/silvestris/p/15115947.html
Copyright © 2020-2023  润新知