AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-611131

Rogerwilcos's questions

Martin Hope
Rogerwilcos
Asked: 2021-01-22 16:20:50 +0800 CST

NGINX rtmp 到 hls 设置与 video.js 缓冲

  • 1

我正在尝试为在本地网络上运行的本地学校设置流媒体服务器。我在虚拟机上设置了 Ubuntu 18.04,并在服务器上为其提供了自己的专用 1 Gigabit 连接。它有 4 个处理核心和 8GB 内存。学校所有的交换机都是1G的。我使用 GoPro 通过 RTMP 向服务器发送 480p 视频(运行 NGINX 和 rtmp 模块)。在同一台服务器上,我将 video.js 配置为查看流。

当我们运行 5 到 10 个浏览器时,它看起来还不错。今天他们开了 50-60,这大约是我们将看到的最大值。当我们这样做时,慢慢地一些浏览器开始“缓冲”并且会一遍又一遍地做。它几乎看起来每 2 秒执行一次非常快。

我检查了服务器,发现 CPU、内存、磁盘甚至网络都没有受到限制。尽管 VMware 确实显示服务器达到约 120mbps 并达到峰值。

这就是我的 nginx.conf 的样子。我该怎么做才能让它发挥作用。我无法弄清楚这是否只是带宽过多,或者是否是新玩家正在尝试从播放列表播放并阻止 RTMP 到 HLS 转换的过程。希望这种思路是有道理的。

server {
        listen 8080;

        location / {
            # Disable cache
            add_header 'Cache-Control' 'no-cache';

            # CORS setup
            add_header 'Access-Control-Allow-Origin' '*' always;
            add_header 'Access-Control-Expose-Headers' 'Content-Length';

            # allow CORS preflight requests
            if ($request_method = 'OPTIONS') {
                add_header 'Access-Control-Allow-Origin' '*';
                add_header 'Access-Control-Max-Age' 1728000;
                add_header 'Content-Type' 'text/plain charset=UTF-8';
                add_header 'Content-Length' 0;
                return 204;
            }

            types {
                application/dash+xml mpd;
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }

            root /var/stream;
        }
}
rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {

                        record off;
                        live on;
                        # Turn on HLS
                        hls on;
                        hls_path /var/stream/hls/;
                        hls_fragment 3;
                        hls_playlist_length 60;
                        # disable consuming the stream from nginx as rtmp
                        deny play all;

                   }
        }

}

这是播放器的html:

<video-js id="live_stream" class="video-js vjs-fluid vjs-default-skin vjs-big-play-centered" controls preload="auto" autoplay="true" width="auto" height="auto" poster="http://192.168.5.8/poster.jpg">
<source src="http://192.168.5.8:8080/hls/.m3u8" type="application/x-mpegURL">
    <p class='vjs-no-js'>
      To view this video please enable JavaScript, and consider upgrading to a web browser that
      <a href='https://videojs.com/html5-video-support/' target='_blank'>supports HTML5 video</a>
    </p>
</video-js>
linux ubuntu nginx rtmp
  • 1 个回答
  • 1839 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve