hls.js 在 chrome 中使用 vue 不更新 m3u8 播放列表

hls.js in chrome using vue doesnt update m3u8 playlist

我想在 mounted() 函数中部署 m3u8 格式的直播视频,使用:

if(Hls.isSupported()) {
    let video = this.$refs.videoPrueba2;
    let hls = new Hls();
    hls.loadSource('./HLS/out.m3u8');
    hls.attachMedia(video);
    hls.on(Hls.Events.MANIFEST_PARSED, function () {
        video.play();
    });
}

但是,当页面加载时,播放器会加载播放列表中包含的所有视频,直到此时停止播放。它不播放正在创建的新 ts 文件。我必须按 CTRL + SHIFT + R(删除缓存并重新加载页面)才能看到带有新 ts 文件的视频。

我使用以下 ffmpeg 命令创建了 .m3u8 文件:

ffmpeg -re -i short.mp4 -c:v h264 -flags +cgop -g 30 -vf scale=-1:360 -hls_list_size 0 ./HLS/out.m3u8

我试过:

hls.loadSource('./HLS/out.m3u8');

在 setInterval 中,但没有帮助。

会不会是vue造成的内存泄漏,loadSource不知道从哪里加载?

是浏览器缓存的问题,通过替换解决:

app.use(express.static(path.join(__dirname, 'streams'), { maxAge: 31557600000 }));

与:

app.use(express.static(path.join(__dirname, 'streams'), { maxAge: 0 }));