Как кодировать каждый чанк, используя MediaRecorder API?
Используя браузер я стримлю трек на websocket сервер на python, там каждый чанк отдается дальше ffmpeg. У меня есть пример рабочего стримера на python, который каждый чанк кодирует отдельно (т.е делит трек на чанки, а потом каждый чанк сохраняет отдельным файлом, используя pydub), по-другому не работает, каждый чанк по сути должен стать отдельным треком, длительностью в 1 секунду. Я должен переписать этого стримера на JS, и вот мое решение:
var socket = new WebSocket("ws://127.0.0.1:8765");
socket.binaryType = "blob";
socket.onopen = function (event) {
const video = document.querySelector('audio');
video.onplay = function() {
mediaStream = video.captureStream();
mediaRecorder = new MediaRecorder(mediaStream, {
mimeType: 'audio/webm;codecs=opus'
});
mediaRecorder.addEventListener('dataavailable', (e) => {
socket.send(e.data);
});
mediaRecorder.start(1000);
};
};
Проблема в том, что MediaRecorder просто рубит файл на куски и ffmpeg не может принять такой формат (возможно, дело в ffmpeg, необходимо ему как-то сказать, чтобы он не ждал заголовков)