我想使用以下方式在mount()函数中部署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也不知道从哪里加载?
答案 0 :(得分:0)
这是与浏览器缓存相关的问题,它通过替换:
解决了app.use(express.static(path.join(__dirname, 'streams'), { maxAge: 0 }));
使用:
{{1}}