【问题标题】:nginx-rtmp-module HLS with DVR带 DVR 的 nginx-rtmp-module HLS
【发布时间】:2015-07-24 11:28:20
【问题描述】:

我已经使用 HLS 设置了 nginx-rtmp-module,我想知道是否有一种方法可以设置像 Wowza 的 nDVR 功能这样的 DVR,它可以让你倒带直播流,甚至是流的最开始。现在我只得到最近的 40 秒左右。谢谢!

(我从这里的 cmets 收集到它是可能的:http://nginx-rtmp.blogspot.ca/2013/02/multiple-locations-for-vod-in-098.html

【问题讨论】:

    标签: nginx streaming


    【解决方案1】:

    完全有可能,您只需要在应用配置部分增加 HLS 播放列表长度即可。我自己一直在用这个,效果很好!

    例如,如果您想要一个 30 分钟长的 DVR 播放列表,您可以将其放在您的应用部分:

    hls_playlist_length 30m;
    

    请参阅nginx-rtmp-module hls directives 了解更多信息。

    注意

    您使用的 HLS 播放器需要支持此功能。例如 Flowplayer/JWplayer 将然而 Safari (Mac/iOS) 将只播放实时流。

    【讨论】:

    • 行得通!您是否尝试将 hls_playlist_length 设置为非常大的值,例如 4 小时?它如何影响性能?例如。我认为 Wowza 将其 DVR 存储在内存中,因此较长的流可能会导致它填满堆空间。 nginx-rtmp-module 是否也将 DVR 存储在内存中,还是所有内容都包含在这些 .ts 块和 .m3u8 播放列表中?
    • 有过使用 Wowza 的经验,我可以告诉你它也将它的 DVR 块存储在磁盘上。正如您可以想象的那样,让数百个客户访问这些细分市场对于性能来说是非常糟糕的。 Nginx 也是如此。解决方案是创建一个 RAM Disk,并通过更改 HLS 段路径将它们存储在“内存”中。 mount -t tmpfs -o size=512m tmpfs /mnt/ramdisk 然后指向您的 nginx 配置,以便它将 HLS 存储在 /mnt/ramdisk。您会发现您的服务器以这种方式为大量客户端提供服务不会有任何问题(前提是您有足够的 RAM 来存储这些段!)
    • 这也取决于播放器。我曾经在使用 JW Player 的 Android 版本(Windows 版本没问题)寻找实时视频(VOD 没问题)时遇到问题,但更新版本,例如jwplayer-8.1.4,已修复此问题并在 Android 上运行良好。
    猜你喜欢
    • 1970-01-01
    • 2013-10-22
    • 2020-08-20
    • 2021-03-06
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多