Итак, я создал экспресс-сервер, который получает файл mp3 (который хранится локально прямо сейчас, но позже будет взят из mongo db) и использует ffmpeg для создания файлов .m3u8 и .ts.Файлы успешно отправлены клиенту, и при воспроизведении на клиенте ошибок нет.Я использовал hls.js для воспроизведения этих файлов в Chrome.Но на сервере все еще хранятся эти файлы локально.Есть ли способ узнать, когда сервер может удалить эти файлы, которые он хранит локально?Ffmpeg генерирует много файлов, поэтому я не могу просто позволить им оставаться там навсегда.
Я использовал часть кода ffmpeg из hls-server github repo .
файл моего сервера
index.js
// just used to run ffmpeg for conversion
var command = ffmpeg('inp.mp3')
.on('start', function (commandLine) {
console.log('command', commandLine);
}).addOptions([
'-c:a aac',
'-b:a 64k',
'-vn',
'-hls_list_size 0',
'-segment_time 10',
]).output('files\\output.m3u8');
var express = require('express');
var app = express();
// express middleware to serve individual .ts and .m3u8 files when requested
app.use(express.static('./files/'));
app.get('/', function (req, res) {
command.on('end', function () {
console.log('done');
res.write(`
<script src="https://cdn.jsdelivr.net/hls.js/latest/hls.min.js"></script>
<script>
function onLevelLoaded (event, data) {
var level_duration = data.details.totalduration;
console.log(level_duration, data);
}
if(Hls.isSupported()) {
var audio = new Audio();
var hls = new Hls();
// requesting files from here
hls.loadSource('http://localhost:8000/output.m3u8');
hls.attachMedia(audio);
hls.on(Hls.Events.LEVEL_LOADED, onLevelLoaded);
hls.on(Hls.Events.FRAG_BUFFERED, (e, d) => {
console.log(e, d);
});
}
</script>
`);
res.end();
}).run();
});
app.listen(8000);