我在直播环境中使用 videojs 并使用 nginx 安全 URL 来保护流。请参阅此处了解详细信息 - https://www.nginx.com/blog/secure-urls-secure-link-module-nginx-plus/
该算法运行良好,播放器能够检测 live.m3u8 文件何时可用。然而,当播放流时,我只是得到一个旋转的轮子。在 JS 控制台上,我看到子播放列表(例如 live_109.m3u8 URL)没有所需的 md5 哈希值和过期时间戳,因此 nginx 返回 403。
流 URL 格式为 -
https://example.com/video/live.m3u8?md5=xznbbmbbbbbxncb&expire=123456788
Run Code Online (Sandbox Code Playgroud)
当我播放流时,控制台提示播放器现在正在尝试调用
https://example.com/video/live_109.m3u8
Run Code Online (Sandbox Code Playgroud)
由于没有 md5 和过期参数,nginx 将发送 403,我明白了。
添加?md5=xznbbmbbbbbxncb&expire=123456788
也可以与 live_109.m3u8 完美配合。
我确信各个段(.ts 文件)也会出现同样的问题
我的问题是如何附加?md5=xznbbmbbbbbxncb&expire=123456788
到从页面调用的每个 .m3u8 和 .ts 文件。