【问题标题】:Adaptive bit rate streaming not working in nginx-vod-module in NGINX server自适应比特率流在 NGINX 服务器的 nginx-vod-module 中不起作用
【发布时间】:2015-10-15 11:47:04
【问题描述】:

我已经安装了 Nginx 并使用 nginx-vod-module 为 adaprive 流式传输配置了 VOD。在请求 master.m3u8 文件时,我得到了为不同网络带宽提供的相同 ts 文件。

master.m3u8文件内容如下:

 #EXTM3U
 #EXT-X-STREAM-INF:PROGRAMID=1,BANDWIDTH=1914317,RESOLUTION=1280x544,CODECS="avc1.64001f,mp4a.40.2"
  http://localhost/content/Input.mp4/index-v1-a1.m3u8

Nginx 配置为:

   location /content {
        vod hls;
        vod_mode local;

        root /usr/share/nginx/html;

        gzip on;
        gzip_types application/vnd.apple.mpegurl;

        expires 100d;
        add_header Last-Modified "Sun, 19 Nov 2000 08:52:00 GMT";
    }

如何使用 nginx-vod-module 启用自适应比特率,验证它的最佳方法是什么?

【问题讨论】:

    标签: nginx streaming winginx


    【解决方案1】:
    1. 您使用不同的分辨率/比特率对 Input.mp4 的多个版本进行编码。纵横比应该相同。例如:Input_high.mp4Input_low.mp4

    2. 您编辑主 m3u8 播放列表并添加每个演绎版及其特定比特率和分辨率:

      #EXTM3U
      #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=...,RESOLUTION=...,CODECS="..."
      /content/Input_low.mp4.m3u8
      #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=...,RESOLUTION=...,CODECS="..."
      /content/Input_high.mp4.m3u8
      
    3. nginx-vod-module 收到filename.mp4.m3u8 的请求时,它会自动将filename.mp4 分段为HLS,并为您创建播放列表。例如:/content/Input_low.mp4.m3u8 代表/content/Input_low.mp4

    【讨论】:

    • master m3u8 是动态提供和生成的。我不想预先创建任何播放列表和分段文件。我只保留了一个 mp4 文件。
    • @RachitGupta 您必须手动创建主播放列表,也就是保存流信息的播放列表。为每个文件自动创建媒体播放列表。而且您必须将您的文件编码为多个mp4 变体。见:nginx.com/wp-content/uploads/2015/06/…
    • 这是什么意思? “将您的文件编码为多个 mp4 变体”。我需要放多个不同质量的mp4吗?
    • @RachitGupta 是的,模块不会对其进行编码,只是在HLS中重新打包
    • 我们期待动态自适应比特率 HLS 是否在 nginX-Plus 中可用?
    猜你喜欢
    • 1970-01-01
    • 2015-04-14
    • 1970-01-01
    • 2011-11-04
    • 2021-03-03
    • 2018-06-09
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多